我正在尋找機器上的內存使用情況的解釋,尤其是根據下面的屏幕截圖中的示例:
我了解什麼是 Free
和 Active
的意思是
但是 Wired
和 Inactive
的含義是什麼?
特別是 inactive
,為什麼它為我們不使用的東西使用瞭如此多的內存?
我正在尋找機器上的內存使用情況的解釋,尤其是根據下面的屏幕截圖中的示例:
我了解什麼是 Free
和 Active
的意思是
但是 Wired
和 Inactive
的含義是什麼?
特別是 inactive
,為什麼它為我們不使用的東西使用瞭如此多的內存?
由於名稱不正確,無效的記憶引起了可怕的說唱。它應該被稱為“使Mac在第二,第三和第四次執行相同任務時真正快”內存,不過這也是一個糟糕的名字。
Apple在引入一些新功能並添加了壓縮內存時重新編寫了活動監視器,因此其中一些不再適用於未顯示“非活動內存”的macOS,但仍適用於Mac OS針對此版本的活動監視器記錄的X內存管理: https://support.apple.com/zh-cn/HT201538
以下是我向新手解釋的內容OS X上虛擬內存的概念:
當Free + Inactive較少時,就會出現問題超過總數的1/3,那麼事情真的會變慢。
不活動的內存是額外的速度/雙重任務RAM。在RAM中,您將再次執行。它比交換內存快,因為它已經加載到RAM中,並且在虛擬內存系統做出很好的猜測時可以加快速度。
如果您想知道RAM是否有問題,而不是查看4個類別中的每個類別(如果算上活動交換,則為5個類別),則可以將W + A與減慢新程序/任務的速度結合起來,將F + I減慢加快新程序/任務的速度。您擁有的F + I越多,在RAM需要依靠交換來處理已分配的內存之前,您可以啟動的新程序越多。
您真的不需要知道交換的工作原理。因為我在上面提到過基本上,當程序處於空閒狀態並且沒有使用數天(或數小時)時,系統會將該RAM寫入硬盤驅動器,而不是終止程序。這樣一來,系統就可以改組和處理與內存管理有關的各種事情,並使每個程序都無需相互討論,以同意在系統用盡時誰將使用更少的內存。
這是真實世界如何使用非活動RAM的示例。
您當系統學習將這兩個應用程序需要運行的內容保持在不活動的RAM中時,應該在第二次/第三次啟動時看到極大的加速。
在您的情況下-有線和活動的總數意味著可能會發生某些磁盤交換,並且Mac的運行速度不如預期,因為您的非活動RAM不足以存儲您可能需要的所有內容需要重用。如果您有一個快速的SSD驅動器,則此RAM分配是可以的,並且可以在F + I的RAM小於1/2的情況下開始減慢速度,而不是開始減慢速度+ I在看到明顯的緩慢之前。這些準則是一般性準則,您需要觀看 vm_stat 15
或類似間隔,以確保連續和中等容量的交換不會使Mac變慢。
在確定您的Mac是否正在“緊張”內存時,最重要的數字是“頁面輸出”數字。在Mavericks的“活動監視器”中,不再顯示此信息,它們現在在“已使用的交換:”中顯示信息。
缺頁表示操作系統已確定沒有足夠的可用RAM來運行所有應用程序&進程已被要求。然後,它執行的操作是將其“分頁”到其未確定正在使用的內存的磁盤部分。這意味著RAM存儲器(快速)更改為HDD存儲器(慢速)。如果由於正在運行大量應用程序而導致發生這種情況的次數很多,並且用戶正在應用程序之間切換,那麼將會有很多頁面輸出和頁面輸入。那麼您應該採取行動。
在Mac上的問題是,除非我在命令窗口中進行手動清除,否則似乎永遠不會清除“非活動”內存。它會不斷累積,直到出現一個彈出窗口告訴我殺死應用程序為止。即使殺死了我所有的應用程序,我仍然有太多的非活動內存來運行任何東西。因此,在運行最新版本Mountain Mountain Lion的Mac上,當可用內存不足時,非活動內存會被回收是不正確的。我在某個地方的某個應用程序已鎖定了一塊永遠不會釋放的不活動內存,或者iOS中存在一個錯誤。 (我有8GB的物理內存...應該足夠了!)
感謝所有張貼者和評論者,這對我來說是一個很有啟發性和有用的話題。我最近的經驗可能對某人有用。我將Mac Mini與OS X10.8.1和16G RAM完全結合使用,以製作將在其他地方運行的原型軟件。我可以向您保證,我不會“幾分鐘後返回Facebook或退出它後重新啟動Word”,而是在Macbook上執行。
我的任務是整理大量數據,I / O非常耗時,所以我們的想法是一次讀取盡可能多的數據,然後在那裡進行處理,然後將其寫回到磁盤,然後重複該過程直到完成,這需要幾個小時。我看到的是,每次讀取新的數據塊時,不活動的內存都會跳躍-我假設系統AI假設我可能想再次使用舊的塊,而我不希望使用-而免費的內存下降。
在此過程中進行了幾次迭代後,可用內存減少到只有幾MB,不活動的內存將釋放更多的MB,然後最終在空閒和不活動之間退回了幾分鐘的&forth內存,不活動的內存將立即釋放幾GB。全部都是@bmike所描述的,並且vm_stat 15和“活動”監視器都顯示0個頁面調出。
除了可能不太一樣。有好幾次事情一直在暢快地進行著,我下班去喝咖啡或晚餐,並且沒有監視該過程,不應該發生的事情突然發生了,該過程突然中斷了頁面輸出並減慢了速度。指出可能是我糟糕的代碼導致了這個問題,但我希望我可以關閉不活動的內存只是為了消除這種可變性源。我完全不會這麼說,但我想我想我的用例並未對內存管理進行優化。
非活動內存。如果用戶想再次打開該程序,則OS X會將其保留。碰巧的是,OS X不需要重新定位內存以加快性能。如果您不重新打開程序,則一段時間後,不活動的內存將被釋放或重新定位。(c)
當您有大量RAM時,此功能很酷,但如果不是,那會很煩人。實際上,這全都與蘋果相關。當您擁有功能強大的小工具或Mac時,一切都會變得很酷,但是當設備變舊時,所有功能都會使其變慢。
因此,您必須使用特殊的技巧來進行管理。
對於不活動的內存,有一個 purge
命令可以釋放它。
基本上壞了。當可用RAM較低時,應該自動“清除”不活動的RAM。為以前打開的應用程序保留RAM的目的是什麼,希望用戶再次打開它?可用RAM不足的事實表明現有的ACTIVE應用程序可能沒有足夠的RAM,並且正在交換。為封閉的應用程序保留GB RAM只是愚蠢的。根據Apple自己的描述,閒置RAM不足時應自動清除或借用不活動RAM。顯然不是這種情況。
實質上,非活動內存使打開以前關閉的進程的速度更快。如果您發現Mac OS佔用了過多的內存,則不需要真正使用,例如在Safari或Chrome上打開的數十個選項卡中,只需在終端中使用“清除”命令即可。在OS X Mavericks中,只需使用“ sudo purge”(您需要輸入密碼)即可。當您需要再次打開某些東西時,它節省了寶貴的時間,但是如果您想玩RAM密集型遊戲或打開RAM飢餓的應用程序,我絕對建議您使用purge命令。