2013-08-30 63 views
11

什麼是活動內存和非活動內存?我是一個Linux機器上執行命令vmstat -a,我得到以下的輸出:什麼是活動內存和非活動內存

vmstat -a 
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ 
r b swpd free inact active si so bi bo in cs us sy id wa st 
1 0 249900 4801880 2649428 8246152 0 0 42 31 0 0 4 0 95 0 0 

但我沒有得到究竟活躍和不活躍的內存...能否請你解釋一下?

+3

我不認爲這是一個編程問題,真的。 – unwind

+2

真的嗎?嘗試在8GB的生產系統上運行SOLR並負責生產服務器。然後,您將需要了解活動/非活動內存的行爲及其可能導致的情況(在SOLR情況下,內存不足例外)。瞭解操作系統基礎知識是軟件開發的關鍵部分。你可以掌握軟件模式,缺乏特定平臺的知識將會讓你變得初級初級,而沒有任何成功解決方案的機會。 – OSP

回答

22

「已使用」內存有兩種狀態,「不活動」和「活動」。

活動內存是特定進程正在使用的內存。
非活動內存是分配給不再運行的進程的內存。

看到內存使用/proc/meminfo而非vmstat -a

cat /proc/meminfo 

,你需要不清除這個無效的記憶,當系統重新啓動該內存自動成爲消失,還是如果你有大量的非活動內存,你可以使用以下命令。

free && sync && echo 3 > /proc/sys/vm/drop_caches && echo "" && free 
+1

你救了我一天的男人。我一直在尋找這個解決方案好幾個星期。我嘗試了所有關於如何優化我的服務器的問題,這是導致我頭痛的無效內存。非常感謝您關於如何釋放不活動內存的命令。現在我恢復了大部分不活動的內存。 – jaypabs

+0

@jaypabs不客氣。 – Gangadhar

+2

無效內存可能導致哪些問題?操作系統是否不會根據需要將它們分配給需要它們的進程,從而將非活動內存有效地與可用內存相同? – justhalf

0

無效內存 - 未映射到高速緩存或物理內存和主動是反之亦然

的vmstat報告虛擬內存統計