Điều đó có nghĩa là gì nếu tôi có rất nhiều bộ nhớ Không hoạt động vào cuối ngày làm việc?


21

Sau một ngày làm việc tại MacBook Pro của tôi chạy Mac OS X 10.6.5, Activity Monitor cho thấy phần lớn bộ nhớ 8 GB của máy tính của tôi là "Không hoạt động" và chỉ một phần nhỏ của biểu đồ hình tròn là "Miễn phí". Điều này là ngay cả khi tôi đã đóng tất cả các ứng dụng, chỉ với Finder đang chạy.

Điều đó nghĩa là gì? Bộ nhớ "Không hoạt động" có bị chiếm bởi thứ gì không? Hoặc nó thực sự vẫn có sẵn cho các ứng dụng để sử dụng? Cảm ơn.


Câu trả lời:


27

OS X, giống như hầu hết các hệ điều hành hiện đại, sử dụng hệ thống bộ nhớ ảo để quản lý bộ nhớ. Trong số các mục đích khác, điều này cho phép hệ điều hành coi máy tính có bộ nhớ không giới hạn. Để đạt được điều này, HĐH sẽ đưa các phần RAM chưa sử dụng ra một cửa hàng đĩa được gọi là tệp hoán đổi .

Tất nhiên, RAM không phải là không giới hạn, vì vậy OS X nhóm RAM thành bốn loại: có dây, hoạt động, không hoạt động và miễn phí. Bộ nhớ có dây được yêu cầu bởi hệ điều hành và không bao giờ có thể thoát ra khỏi bộ nhớ. Bộ nhớ hoạt động là bộ nhớ được sử dụng bởi các chương trình hiện đang chạy. Bộ nhớ không hoạt động đã được sử dụng gần đây bởi các chương trình hiện đã bị chấm dứt (hoặc không được sử dụng trong một thời gian dài). Miễn phí bộ nhớ là, như tên cho thấy, RAM mà không được sử dụng.

Khi bạn khởi chạy một chương trình, nó sẽ được tải vào bộ nhớ hoạt động. Tuy nhiên, khi bạn thoát khỏi một chương trình, nó sẽ không bị xóa khỏi RAM; thay vào đó, nó bị va vào bộ nhớ không hoạt động. Đây là lý do tại sao việc khởi chạy lại một chương trình thường nhanh hơn - nó vẫn còn trong RAM (hãy thử điều này với một chương trình lớn như Firefox).

Khi tất cả bộ nhớ của bạn được sử dụng (bộ nhớ trống là 0), HĐH sẽ ghi bộ nhớ không hoạt động vào bộ trao đổi để tạo thêm không gian trong bộ nhớ hoạt động.

Nếu một chương trình được phân trang ra tệp hoán đổi và bạn khởi chạy lại chương trình đó, chương trình sẽ được kéo từ tệp hoán đổi vào bộ nhớ hoạt động.

Vì vậy, trong ngắn hạn, bạn thực sự không nên quan tâm nếu bộ nhớ trống của bạn thấp. Trên thực tế, bạn muốn nó ở mức thấp - bộ nhớ trống bị lãng phí bộ nhớ (vì HĐH không sử dụng nó cho bất cứ điều gì).

Khi kiểm tra dung lượng bộ nhớ mà máy tính của bạn đang sử dụng, bạn thực sự muốn chú ý chủ yếu đến Hoán đổi được sử dụng , nó cho bạn biết kích thước của bộ trao đổi bộ nhớ ảo và Trang in , cho bạn biết tần suất hệ điều hành phải kéo bộ nhớ từ bộ đệm vào bộ nhớ hoạt động.


2
Tôi thấy Trang ngoài là một chỉ báo sử dụng trao đổi tốt hơn so với Trang, bởi vì Trang bao gồm các chương trình tải cũng như tải từ tệp hoán đổi.
Gordon Davisson

1
Trong Activity Monitor, Kích thước VM của tôi là hơn 160 GB! Có một số loại hoán đổi trên máy tính của tôi thực sự lớn đến vậy không?!
hpy

1
@penyuan: Không. Về mặt lý thuyết, hoán đổi có thể lớn đến mức nào, nhưng kích thước thực tế của hoán đổi được dán nhãn Hoán đổi được sử dụng trong Trình giám sát hoạt động.
mipadi

1
Bộ nhớ không hoạt động là một phần như bạn nói, mặc dù cụ thể là bộ đệm của hệ thống tệp hoặc thư viện có thể được truy cập lại bởi một ứng dụng, nhưng cũng là khối bộ nhớ từ các ứng dụng hiện đang chạy nhưng không được truy cập trong một khoảng thời gian (không chắc chắn của thời gian chính xác). Hạt nhân đánh dấu những cái đó là Không hoạt động để ưu tiên chúng phân trang ra đĩa nếu dung lượng bộ nhớ trống giảm quá thấp.
drfrogsplat

2
@deceze: Bộ nhớ không hoạt động được phân trang. Bộ nhớ hoạt động được chuyển sang không hoạt động khi không còn cần thiết. Tôi cho rằng nếu bạn có rất ít bộ nhớ mà không có chỗ cho bộ nhớ không hoạt động, bộ nhớ hoạt động sẽ được phân trang trực tiếp vào đĩa, nhưng đó là một trường hợp đặc biệt. Thật vậy, hoán đổi thực tế về mặt lý thuyết tăng trưởng vô hạn (cho đến khi không còn dung lượng đĩa nữa), nhưng điều đó cũng là một điều cực kỳ hiếm khi xảy ra.
mipadi

9

Điều này rất có thể không phải là một vấn đề, và trên thực tế có khả năng tăng tốc máy tính của bạn.

Tất cả (hầu hết?) Hệ điều hành đều sử dụng Disk Cache, lưu trữ một số tệp được truy cập gần đây trong bộ nhớ để có thể tăng tốc truy cập lặp lại của các tệp đó. Bộ đệm đĩa trên OS X có kích thước thay đổi và sẽ xuất hiện dưới dạng "Bộ nhớ không hoạt động" đang được sử dụng.

Nếu bất kỳ chương trình nào cần thêm bộ nhớ, OS X sẽ xóa một số bộ đệm đĩa (các tệp ít được sử dụng gần đây nhất) để cho phép không gian cho chương trình chạy / mở rộng.

Tôi thấy rằng nếu tôi thực hiện nhiều thao tác biên dịch hoặc sắp xếp ảnh (tức là truy cập hàng ngàn tệp liên tiếp) thì bộ đệm đĩa sẽ mở rộng và sử dụng nhiều Bộ nhớ không hoạt động. Chỉ cần bộ đệm đĩa này, không có gì phải lo lắng.

Nếu đó là một quá trình hoặc ứng dụng nền đang mở rộng trong việc sử dụng bộ nhớ của nó (nhưng các trang của nó đang bị đánh dấu là không hoạt động) thì bạn sẽ có thể biết bằng cách kiểm tra bất kỳ chương trình nào có mức sử dụng "Bộ nhớ thực" rất cao trong Trình giám sát hoạt động. Nếu không có gì rõ ràng lớn ở đó (tức là tổng cộng là một khoảng cách ngắn 8GB) thì đó sẽ là bộ đệm tệp.

Bạn sẽ thấy rằng có rất ít nếu sử dụng Hoán đổi và nếu bạn mở một chương trình sử dụng nhiều bộ nhớ, lượng bộ nhớ không hoạt động sẽ giảm mà không phải trao đổi vào đĩa.

.


Bộ nhớ không hoạt động thực sự là RAM, không phải bộ nhớ đã được phân trang ra đĩa.
mipadi

3

Bộ nhớ "không hoạt động" có sẵn để sử dụng bởi các chương trình khác - đó chỉ là bộ nhớ cache chương trình hoặc dữ liệu mà bạn đã sử dụng gần đây, trong trường hợp bạn cần lại chúng. Nếu bạn khởi chạy các chương trình khác nhau hoặc cần dữ liệu khác nhau, bộ nhớ đệm sẽ bị xóa và cung cấp cho khối lượng công việc mới của bạn khi cần.

Dù sao đi nữa, đó là lý thuyết và tôi tin đó là âm thanh. Tuy nhiên, tôi đã tìm thấy tài liệu tham khảo này cho một tiện ích "thanh lọc" mà ai đó đã viết vì họ không nghĩ rằng bộ nhớ không hoạt động đã được phát hành đủ nhanh.

Để có tài liệu chính thức về chủ đề này, hãy đọc phần này (và tìm kiếm "không hoạt động").


Đối với bản ghi, MBP của tôi hiện cho biết: 58 MB miễn phí, có dây 239 MB, hoạt động 1,84 GB, 900 MB không hoạt động - và hệ thống đang hoạt động khá độc đáo.
Michael H.

1
Tôi tìm thấy lệnh thanh trừng một công cụ gửi thần. Có Photoshop + Firefox + Illustrator + Netbean + SmartGit có thể dễ dàng khiến iMac 4Gb bò đến chết. Tất nhiên, Firefox là thủ phạm chính, nhưng nếu bạn muốn tăng tốc mọi thứ lên một chút, hãy thoát khỏi Firefox và phát hành "thanh lọc &" Tốt như mới một lần nữa
Antony

2
Trang man của Purge thực sự nói rằng nó chỉ được viết để xóa bộ đệm đĩa (không phải là mem ẩn danh: stack, heap hoặc sao chép khi ghi) để phân tích hiệu suất (chính xác là vì bộ đệm đĩa tăng tốc hệ thống). Nó không được viết để phát hành nhanh hơn, vì thực thi nó chậm hơn kernel tự động lấy lại bộ nhớ khi cần. Đóng một ứng dụng sẽ loại bỏ hoàn toàn tất cả các mem được phân bổ và nếu bạn thanh lọc sau đó, nó sẽ khiến ứng dụng tải chậm hơn, hãy xem linuxHRyram.com/play.html . Tôi đoán có một cái gì đó tâm lý về thanh trừng, giống như bắt buộc đổ rác.
Jano

1

Bắt đầu với OS X 10.5 có các vấn đề quản lý bộ nhớ rõ ràng trong MAC OS X.

Cuối cùng tôi đã xoay sở để tái tạo kịch bản có vấn đề, vì vậy tôi chạy thử nghiệm và ghi lại màn hình, thành video.

Vấn đề về hiệu năng MAC OS X Lion - quản lý bộ nhớ bị hỏng

Tôi chạy lệnh tar + bzip, là công cụ unix cơ bản, với số lượng lớn tệp ảnh, trong thư mục Ảnh / của tôi. Ngay trước khi bắt đầu, tôi chạy lệnh "thanh lọc", để xóa dữ liệu chương trình không hoạt động / lưu trữ.

Bạn có thể thấy trên video rằng bộ nhớ trống bắt đầu giảm rất nhanh và không hoạt động liên tục tăng. Nếu bạn xem lệnh "bsdtar", nó chỉ mất một đoạn RAM, vì vậy vấn đề không nằm ở quy trình này. Bạn không thể nói rằng đó là rò rỉ bộ nhớ chương trình, vì khi đó vấn đề sẽ không nằm ở ram không hoạt động, thay vào đó là hoạt động / có dây.

Khi bộ nhớ trống giảm xuống dưới 100mb, tôi đã khởi động một số ứng dụng, như Safari, iPhoto và MS Word, và bạn có thể thấy trong video, phải mất vài phút để khởi động một ứng dụng, khi bình thường (khi có RAM miễn phí), nó sẽ mất khoảng 3-5 giây để tải.

Tôi chạy cùng một kịch bản và các lệnh tương tự trên hộp Linux Centos 6 của tôi, không có vấn đề gì cả! Sử dụng bộ nhớ là khoảng 10-20mb, không có vấn đề với bộ đệm / bộ đệm.

Việc quản lý bộ nhớ phải rất bị hỏng trong Mac OS X!


1
Một số điều bạn mô tả có thể tạo thành nền tảng của một câu hỏi khác, nhưng nó không phải là câu trả lời cho câu hỏi này.
Graham Perrin

2
Tôi muốn nói rằng mô tả của bạn về bộ nhớ trống giảm nhanh đến điểm đặt và hệ thống tích lũy tất cả phần còn lại của RAM không hoạt động và có dây vì không hoạt động là một dấu hiệu cho thấy hệ thống đang hoạt động chính xác như thiết kế. Chỉ vì quản lý bộ nhớ khác nhau trên một HĐH so với hệ điều hành khác không có nghĩa là nó bị hỏng cả. Lựa chọn tối ưu hóa luôn có một mặt trái.
bmike

0

Thảo luận này chỉ có ý nghĩa nếu tuyên bố rằng "máy tính của bạn sẽ chạy nhanh hơn khi bộ nhớ trống thấp" - là đúng. Trừ khi Máy tính để bàn của tôi có dây kỳ lạ, ngay khi bộ nhớ miễn phí (được theo dõi) của tôi bắt đầu xuống thấp, bất cứ chương trình nào tôi đang chạy vào thời điểm đó đều bị sa lầy đến mức tôi không thể làm gì cho đến khi nó tự di chuyển trở lại hoặc bởi sự can thiệp bộ nhớ miễn phí của tôi. Tôi có một iMac 2118 (2006 trở lên) đạt tối đa 3 GB RAM vì vậy tôi cố gắng quản lý nó khi tôi có thể nhưng điều này rất bực bội. Có suy nghĩ gì không?

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.