Bộ nhớ không hoạt động có gây lãng phí tài nguyên không?


87

Tôi đang tìm kiếm lời giải thích về việc sử dụng bộ nhớ trên máy của mình, đặc biệt là trong ví dụ về ảnh chụp màn hình bên dưới:

Sử dụng bộ nhớ

Tôi hiểu những gì FreeActivecó nghĩa là
gì Nhưng ý nghĩa của Wiredvà là Inactivegì?

Đặc biệt inactive, tại sao nó sử dụng quá nhiều bộ nhớ cho một thứ mà chúng ta không sử dụng?

Câu trả lời:


142

Bộ nhớ không hoạt động có một đoạn rap khủng khiếp do một cái tên nhảm nhí. Nó nên được gọi là một cái gì đó như "làm cho máy Mac của bạn thực sự nhanh chóng lần thứ hai, thứ ba và thứ tư, nó thực hiện cùng một nhiệm vụ" ngoại trừ đó cũng là một cái tên khủng khiếp.

Apple đã viết lại trình giám sát hoạt động khi giới thiệu một số tính năng mới và thêm bộ nhớ nén, do đó, một số tính năng này không còn áp dụng cho macOS không hiển thị Bộ nhớ không hoạt động của Hồi quy nhưng điều này vẫn áp dụng cho quản lý bộ nhớ Mac OS X như tài liệu này phiên bản của Trình giám sát hoạt động: https://support.apple.com/en-us/HT201538

Dưới đây là cách tôi giải thích mọi thứ với người mới về khái niệm bộ nhớ ảo trên OS X:

  • Có dây : Hệ thống không thể chạy nếu không có lượng RAM này (không bao giờ bị tráo đổi)
  • Hoạt động: Các chương trình đang thực sự sử dụng bộ nhớ này ngay bây giờ hoặc trong vài giây qua
  • Không hoạt động: Những thứ mà các chương trình đã đọc từ đĩa chậm hoặc ở nơi khác và nói rằng chúng không bao giờ cần nữa. Các kỹ sư biết rõ hơn, bạn sẽ quay lại Facebook sau vài phút hoặc khởi chạy lại Word sau khi thoát khỏi nó. Những điều tương tự xảy ra lặp đi lặp lại trên máy tính.
  • Miễn phí: RAM hoàn toàn bị lãng phí - hệ thống chỉ cần một hoặc hai MB miễn phí để đáp ứng các yêu cầu phân bổ ngắn hạn. Để phân bổ lớn nhất, nó chỉ cần sử dụng một số RAM không hoạt động bằng cách phân bổ nó cho hoạt động / có dây và xóa thông tin về những gì nó được sử dụng để giữ.

Vấn đề phát sinh khi Free + Không hoạt động ít hơn khoảng 1/3 tổng số và sau đó mọi thứ thực sự có thể trở nên chậm chạp.

Bộ nhớ không hoạt động là tốc độ thưởng / RAM kép. Nó phục vụ miễn phí tại một thời điểm, nhưng cũng thực hiện các tác vụ lặp đi lặp lại nhiều, nhanh hơn nhiều nếu hệ thống đoán đúng và giữ một cái gì đó trong RAM mà bạn sẽ làm lại. Nó nhanh hơn bộ nhớ tráo đổi vì nó đã được tải trong RAM và tăng tốc mọi thứ khi hệ thống bộ nhớ ảo đưa ra dự đoán tốt.

Khi bạn tự hỏi liệu RAM có phải là vấn đề không, thay vì xem xét cả 4 loại (5 nếu bạn tính trao đổi hoạt động), bạn có thể ghép đôi W + A khi làm chậm chương trình / tác vụ mới và F + I khi tăng tốc chương trình / nhiệm vụ mới. Bạn càng có nhiều F + I, bạn càng có thể khởi chạy nhiều chương trình mới trước khi RAM cần dựa vào trao đổi để thay đổi bộ nhớ đã được phân bổ.

Bạn không thực sự cần phải biết cách trao đổi hoạt động kể từ khi tôi đề cập ở trên. Về cơ bản, khi một chương trình không hoạt động và không được sử dụng trong nhiều ngày (hoặc nhiều giờ), hệ thống sẽ ghi RAM đó vào ổ cứng thay vì giết chương trình. Điều này cho phép hệ thống xáo trộn và xử lý tất cả các loại liên quan đến quản lý bộ nhớ và giữ cho mỗi chương trình không cần phải nói chuyện với nhau để đồng ý ai sẽ sử dụng ít bộ nhớ hơn khi hệ thống hết.

Dưới đây là một ví dụ thực tế về cách sử dụng RAM không hoạt động.

  1. Thoát khỏi tất cả các ứng dụng và đảm bảo hai Ứng dụng chúng tôi đang kiểm tra không được đặt thành tự động bắt đầu khi bạn đăng nhập
  2. Khởi động lại máy Mac của bạn
  3. Bật màn hình hoạt động của bạn và xem RAM trong suốt
  4. Mất bao lâu để bắt đầu Ứng dụng A (MS Word sẽ là một lựa chọn tốt)
  5. Thoát khỏi A
  6. Mất bao lâu để bắt đầu Ứng dụng B (Adobe một cái gì đó cũng sẽ tốt)
  7. Thoát khỏi B
  8. Thời gian ra mắt lần thứ hai của A mất bao lâu
  9. Thoát khỏi A
  10. Lần ra mắt thứ hai của B.
  11. Thời gian A bắt đầu lần thứ ba với B đang chạy.

Bạn sẽ thấy tốc độ tăng tốc đáng kể cho lần ra mắt thứ hai / thứ ba khi hệ thống học cách duy trì RAM không hoạt động, những thứ mà hai ứng dụng này cần chạy.


Trong trường hợp của bạn - tổng số Wired và Active có nghĩa là một số lần hoán đổi vào đĩa có khả năng xảy ra và máy Mac của bạn không nhanh như có thể vì RAM không hoạt động của bạn không đủ lớn để lưu trữ tất cả những thứ bạn có thể cần sử dụng lại . Nếu bạn có ổ SSD nhanh, việc phân bổ RAM này vẫn ổn và thay vì bắt đầu chậm lại một khi ít hơn 1/2 RAM của bạn là F + I, bạn có thể cắt mọi thứ gần bằng 1/4 tổng RAM cho F + Tôi trước khi thấy sự chậm chạp đáng chú ý. Các nguyên tắc này là chung và bạn sẽ muốn xem vm_stat 15hoặc một số khoảng thời gian tương tự để đảm bảo hoán đổi âm lượng trung bình và liên tục không làm cho máy Mac của bạn chậm.


9
Wow câu trả lời rất đầy đủ cho người mới như tôi. Cảm ơn bạn rất nhiều, rất cảm kích :)
GusDeCooL

6
Yup - Tôi có thể trả lời cho tất cả mọi người - một lần và mãi mãi, mọi người có thể chỉnh sửa nó để làm cho nó tốt hơn và bạn nhận được câu trả lời của mình. Ý tưởng khá tuyệt vời cho một trang web nơi mọi người có thể đến và đặt câu hỏi thú vị. :-)
bmike

3
Ồ Câu trả lời đẹp!
duci9y

3
Tôi ước họ giải thích nó như thế này trong lớp OS của tôi.
styfle

2
@cvsguimaraes thanh lọc không phải là ngay lập tức; chat.stackexchange.com/transcript/message/12107920#12107920
Graham Perrin

6

Con số quan trọng nhất trong việc xác định xem máy Mac của bạn có bị bộ nhớ 'nhấn mạnh' hay không là con số 'Trang ngoài'. Trong Activity Monitor trong Mavericks, phần này không còn hiển thị nữa, giờ đây chúng hiển thị thông tin trong 'Hoán đổi được sử dụng:'.

Trang ngoài có nghĩa là HĐH đã xác định không có đủ RAM để chạy tất cả các ứng dụng & quy trình đã được yêu cầu. Những gì nó làm là 'các trang' ra các phần bộ nhớ mà nó xác định không được sử dụng tích cực. Điều này có nghĩa là bộ nhớ RAM (nhanh) được thay đổi thành bộ nhớ HDD (chậm). Nếu điều này xảy ra rất nhiều vì có rất nhiều ứng dụng đang chạy và người dùng đang đi giữa các ứng dụng, thì sẽ có rất nhiều trang bên ngoài và trang in.

Nếu bạn thấy trang bên ngoài tăng lên thì bạn nên hành động.


4

Vấn đề trên máy Mac của tôi là bộ nhớ "không hoạt động" dường như không bao giờ bị xóa trừ khi tôi thực hiện thanh lọc thủ công trong cửa sổ lệnh. Nó tích hợp và tích hợp cho đến khi tôi nhận được một cửa sổ bật lên bảo tôi tắt ứng dụng. Ngay cả sau khi giết tất cả các ứng dụng của mình, tôi vẫn có quá nhiều bộ nhớ không hoạt động để chạy bất cứ thứ gì. Vì vậy, trên máy Mac của tôi chạy phiên bản Mountain Lion mới nhất, không đúng khi bộ nhớ không hoạt động được lấy lại khi bộ nhớ trống bị yếu. Hoặc là tôi có một ứng dụng ở đâu đó đã khóa một đoạn bộ nhớ không hoạt động mà không bao giờ được giải phóng hoặc iOS có lỗi trong đó. (Tôi có 8GB bộ nhớ vật lý ... điều đó là đủ!)


2
Tôi với bạn, Ernie ... trong Mac OS 10.6 và 10.7 trên MacBook Pro và Mac Pro, bộ nhớ không hoạt động sẽ tăng lên và HĐH sẽ bắt đầu hoán đổi (theo "Page Ins" và "Page Outs") và hệ thống sẽ bò đến điểm dừng. Bộ nhớ không hoạt động dường như không bao giờ được thu hồi. Tôi phải sử dụng "thanh lọc" để lấy lại bộ nhớ không hoạt động và để hệ thống của tôi hoạt động trở lại.
Eric

2
Cửa sổ bật lên này đến từ đâu? Tình hình bộ nhớ như được báo cáo vm_statkhi nó xảy ra là gì? Điều gì khiến bạn chắc chắn rằng có thể có "quá nhiều" bộ nhớ không hoạt động "để chạy bất cứ thứ gì"? Theo như tôi quan tâm, đây là tất cả các tin đồn không có sự hỗ trợ trong mã mà bạn biết, thực sự chạy trong kernel.
Kuba Ober

2
Phân bổ bộ nhớ của bạn trông giống như những gì Gus đã trình bày? Ở đây chúng ta đang nói về một gigabyte có dây và một gigabyte và một nửa hoạt động. Khẩu phần không hoạt động / miễn phí có vẻ tốt cho tôi trong tình huống này. Có lẽ bạn sẽ hỏi một câu hỏi thứ hai chi tiết về tình huống bạn gặp phải khi mọi thứ đang đổ vỡ?
bmike

2

Cảm ơn tất cả các áp phích và bình luận, đây đã là một chủ đề hướng dẫn và hữu ích cho tôi. Kinh nghiệm gần đây của tôi có thể hữu ích cho ai đó. Tôi sử dụng Mac Mini của mình với OS X10.8.1 và với RAM 16G hoàn toàn cho phần mềm tạo mẫu sẽ được chạy ở nơi khác. Tôi có thể đảm bảo với bạn rằng tôi sẽ không "quay lại Facebook sau vài phút hoặc khởi chạy lại Word sau khi thoát" - thay vào đó tôi làm điều đó trên macbook của mình.

Nhiệm vụ của tôi là thu thập một đống dữ liệu lớn, tôi rất tốn thời gian, vì vậy khái niệm là đọc một khối dữ liệu lớn nhất có thể trong một lần quét, xử lý nó ở đó và sau đó ghi lại vào đĩa , sau đó lặp lại quá trình cho đến khi hoàn thành, mất vài giờ. Những gì tôi thấy là mỗi khi tôi đọc một đoạn dữ liệu mới, bộ nhớ không hoạt động sẽ nhảy lên - tôi cho rằng hệ thống AI giả định rằng tôi có thể muốn sử dụng đoạn dữ liệu cũ mà tôi không muốn - và miễn phí trí nhớ giảm.

Sau một vài lần lặp lại của quá trình này, bộ nhớ trống chỉ còn vài MB, bộ nhớ không hoạt động sẽ giải phóng thêm vài MB, và cuối cùng sau vài phút phân tách qua lại giữa bộ nhớ trống và không hoạt động, bộ nhớ không hoạt động sẽ giải phóng tăng vài GB cùng một lúc. Tất cả là như @bmike mô tả và cả vm_stat 15 và Trình giám sát hoạt động hiển thị 0 trang.

Ngoại trừ có thể không hoàn toàn. Nhiều lần mọi thứ đang diễn ra sôi nổi, tôi đi uống cà phê hoặc ăn tối và không theo dõi quá trình, và những gì không nên xảy ra và quá trình đột nhiên ném ra một lượng lớn trang giấy và chậm lại. Quy định rằng đó có thể là mã ngu ngốc của tôi gây ra sự cố nhưng tôi ước tôi có thể tắt bộ nhớ không hoạt động chỉ để loại bỏ nguồn biến đổi đó. Có bị hỏng không? Tôi sẽ không nói như vậy, nhưng tôi sẽ nói rằng tôi đoán việc quản lý bộ nhớ không được tối ưu hóa cho trường hợp sử dụng của tôi.


0

Bộ nhớ không hoạt động được sử dụng bởi các ứng dụng hoạt động gần đây và thoát. OS X giữ cho nó được bảo lưu trong trường hợp người dùng muốn mở lại chương trình. Trong đó, OS X không cần phải di chuyển bộ nhớ giúp tăng tốc độ hiệu năng. Nếu bạn không mở lại chương trình, sau một thời gian, bộ nhớ không hoạt động sẽ được giải phóng hoặc di chuyển. (C)

Tính năng này rất tuyệt khi bạn có nhiều RAM, nhưng khi nó không quá khó chịu. Trên thực tế đó là tất cả về công cụ táo. Khi bạn có tiện ích mạnh mẽ hoặc Mac, mọi thứ đều tuyệt, nhưng khi thiết bị của bạn trở nên cũ hơn, tất cả các tính năng sẽ làm chậm nó.

Vì vậy, bạn phải sử dụng các thủ thuật đặc biệt để quản lý nó.

Đối với bộ nhớ không hoạt động, có một lệnh purgeđể giải phóng nó.


-3

Về cơ bản nó bị hỏng. RAM không hoạt động sẽ tự động được "thanh lọc" khi RAM miễn phí thấp. Điểm giữ RAM cho các ứng dụng đã mở trước đó hy vọng rằng người dùng sẽ mở lại? Thực tế là RAM miễn phí thấp cho thấy các ứng dụng ACTIVE hiện tại có thể không có đủ RAM và đang hoán đổi NGAY BÂY GIỜ. Giữ GB RAM cho các ứng dụng đóng chỉ là ngu ngốc. Theo mô tả của chính Apple, RAM không hoạt động nên được tự động thanh lọc hoặc mượn khi RAM miễn phí thấp. Đây rõ ràng không phải là trường hợp.


3
Hệ thống bộ nhớ ảo làm cho một lượng lớn RAM miễn phí trở thành một sự lãng phí. Khi một chương trình yêu cầu cấp phát bộ nhớ, kernel tạo ra nhiều bộ nhớ ảo hơn và đưa nó ra như kẹo. Chỉ khi một chương trình lấp đầy bộ nhớ đó với dữ liệu thực tế, hệ thống mới cần có chỗ trong RAM cho hoạt động đó. "Phòng làm" đó lấy từ bộ nhớ trống và sau đó không hoạt động - và độ trễ để giải phóng bộ nhớ không hoạt động là vô cùng nhỏ. Việc thanh lọc mà bạn mô tả là chính xác những gì xảy ra - chỉ là bạn ngụ ý hệ thống nên thực hiện công việc thanh lọc trước khi hệ thống lười biếng và chỉ thực hiện công việc đó nếu cần.
bmike

@bmike Nhưng không phải mũ có nghĩa là khi không còn RAM miễn phí và tôi khởi động Ứng dụng mới, phần RAM không hoạt động sẽ giảm và hoạt động sẽ tăng? Đó rõ ràng không phải là trường hợp và theo kinh nghiệm của tôi, hệ thống trở nên cực kỳ chậm bất cứ khi nào không còn ram miễn phí, mặc dù có hàng gigabyte ram không hoạt động. Hệ thống dường như thích trao đổi đĩa trước khi xem xét sử dụng lại ram không hoạt động.
mã hóaFriend1

4
@ mã hóaFriend1 Hãy chính xác - bạn nghĩ có bao nhiêu trang miễn phí trong vm_stat"không còn RAM miễn phí"? Khi máy Mac "chậm", trang trong và trang được tính để làm vm_stat 1gì? Bất cứ khi nào tôi xem điều này trên một hệ thống có vấn đề, tôi muốn vm_stat 15chạy trong cửa sổ terminal (hoặc đăng nhập vào hệ thống tập tin) để tôi có thể biết chính xác hoạt động phân trang là gì khi quyết định nếu / khi tôi điều chỉnh những thứ như máy nhắn tin Ví dụ này có 100 MB RAM miễn phí, do đó, nó thậm chí không chịu áp lực phân trang.
bmike

-4

Bộ nhớ không hoạt động về bản chất, làm cho việc mở các quy trình đã đóng trước đó nhanh hơn. Nếu bạn thấy rằng Mac OS đang chiếm quá nhiều bộ nhớ mà bạn không thực sự cần từ hàng tá tab bạn đã mở trên Safari hoặc Chrome, chỉ cần sử dụng lệnh 'thanh lọc' trong Terminal. Trong OS X Mavericks chỉ cần sử dụng 'sudo purge' (bạn sẽ cần nhập mật khẩu của mình). Nó tắt các giây quý giá khi bạn cần mở lại thứ gì đó, nhưng nếu bạn muốn chơi một trò chơi chuyên sâu về RAM hoặc mở một ứng dụng ngốn RAM, tôi chắc chắn khuyên bạn nên sử dụng lệnh thanh lọc.


2
Điều này khác với những câu trả lời khác như thế nào?
dùng151019
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.