通常我們看到linux用top命令檢視系統執行狀況。普遍看到used memory佔到了將近總記憶體的90%,然後非常多人以為系統記憶體已經不足。事實上,這僅僅是linux的為了提高檔案讀取的效能的記憶體使用機制罷了。不同於windows,windows程式執行完後。會立即釋放掉記憶體,把memory降下來。而對於linux,假設你的server記憶體還有足夠多的空間的話,linux會把程式執行的資料快取起來,新增到cache中,所以記憶體會不斷新增。直到一定的限度為止.當超過這限度後,核心必須將髒頁寫回磁碟,以便釋放記憶體。也就是說,當空暇記憶體低於乙個特定的閾值時。核心的守護程序就會進行記憶體塊**.
怎樣檢視linux記憶體使用情況呢,一般的我們能夠用top命令。
我們能夠看到free 的mem僅僅有763704k(700多m), 已經使用量達到:3160424k(大概3g)。而快取的記憶體達到:2127220k 幾乎相同2g.
看起來好像記憶體的確不夠了,可是我們還有約2g+700m的空間可用。
我們用free -m 命令檢視下記憶體的使用情況:
以上各引數的解釋:
total:總物理記憶體的大小。
used:已使用記憶體。
free:可用記憶體。
shared:多個程序共享的記憶體總額。
buffers/cached:磁碟快取的大小。
第二行:memory使用情況。
第三行(-/+ buffers/cache)。
第四行交換分割槽使用情況。
差別:第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的差別。
第三行所指的是從應用程式角度來看。對於應用程式來說。buffers/cached 是等於可用的,由於buffer/cached是為了提高檔案讀取的效能,當應用程式需在用到記憶體的時候,buffer/cached會非常快地被**。
所以從應用程式的角度來說。可用記憶體=系統free memory+buffers+cached。
如上例:
可用記憶體的計算為:2942m=746m+118m+2077m
所以,我們通過free命令檢視機器空暇記憶體時,會發現free的值非常小。這主要是由於。在linux中有這麼一種思想,記憶體不用白不用,因此它盡可能的cache和buffer一些資料,提高檔案讀取的效能,以方便下次使用。但實際上這些記憶體,假設須要的話,也是能夠立馬拿來使用的。
所以計算 可用記憶體=free+buffers+cached=total(3832)-used(889)
linux環境使用計算器功能
linux環境下如何使用計算器功能 輸入bc 然後就進入了計算器模式。退出則輸入quit。使用示例 示例一 命令列方式使用bc root localhost centos39 bc bc 1.06 1994 1997 1998 2000 free software foundation,inc.th...
linux系統記憶體實際使用率
通過定期採集 proc檔案系統內的meminfo檔案來獲取當前記憶體使用情況。proc檔案系統是乙個偽檔案系統,它只存在記憶體當中,而不占用外存空間。它以檔案系統的方式為訪問系統核心資料的操作提供介面。使用者和應用程式可以通過proc得到系統的資訊,並可以改變核心的某些引數。由於系統的資訊,如程序,...
mysql 記憶體計算 MYSQL使用記憶體計算
mysql記憶體占用計算 global buffer all thread buffer global buffer innodb buffer pool size 快取表資料和索引資料,加速查詢,並且使查詢結果集儲存在內以供重用,一般設定到主機記憶體的70 以下 innodb additional...