内存扩展算法 linux,Linux下内存的使用率正确的算法
Linux下各種內存的使用率的算法
版本一:
先引用百度知道的提問:
回答的答案是:
free -m | sed -n '2p' | awk '{print "used mem is "$3"M,total mem is "$2"M,used percent is "$3/$2*100"%"}'
used mem is 2796M,total mem is 3829M,used percent is 73.0217%
以下圖截圖為準:
這種算法其實就是直接用Mem中的used除以total得到的百分比:
(2810 / 3829) *100= 73.4%
-----------------------------------------------------------華麗的分割-----------------------------------------------------------------------------------------------------
版本二:
這里有個51.1%,樓主算了半天沒有明白這個是怎么得到的:
用 2029 / 3990 = 50.85%
3906 / 3990 = 97.89%
回頭去看的時候發現他先不換算成M,直接用k做單位,即free(沒有 -m)
51.1% = (2090108 / (1996388 + 2090108) ) * 100%
公式為:可用內存=free + buffer + cache
已用內存=used - buffer - cache
-----------------------------------------------------------華麗的分割-----------------------------------------------------------------------------------------------------
版本三:
Walk in Mindfields
===================================華麗的分隔符===========================================================
1,通過以上的整合,我們有幾個公式如下:(換算成M的時候有四舍五入,所以以下的計算存在1以內的誤差)
①系統可用內存:MemFree = MemTotal - MemUsed
1018 ? ?= ?3829 ?- ?2810
②系統已用內存:MemUsed = MemTotal - MemFree
2810 = 3829 ? ?- ?1018
①物理可用內存:-/+Free = MemFree + MemBuffers + MemCache
2068 ? = ?1018 ?+ ?171 ?+ ?879
②物理已用內存:-/+Used = MemTotal - MemFree - MemBuffers - MemCache
1760 ?= ?3829 ?- ?1018 ?- ? 171 ? ?- ?879
2,有幾種算法如下:
①計算系統已用內存的百分比:
free -m | sed -n '2p' | awk '{print "used mem is "$3"M,total mem is "$2"M,used percent is "$3/$2*100"%"}'
或者
(MemUsed / MemTotal)/MemTotal * 100%
②計算物理內存的使用
(-/+Used / MemTotal) * 100%
3,總結如下:
多數的linux系統在free命令后會發現free(剩余)的內存很少,而自己又沒有開過多的程序或服務。 對于上述的情況,正確的解釋是: linux的內存管理機制與windows的有所不同。具體的機制我們無需知道,我們需要知道的是,linux的內存管理機制的思想包括(不敢說就是)內存利用率最大化。內核會把剩余的內存申請為cached,而cached不屬于free范疇。當系統運行時間較久,會發現cached很大,對于有頻繁文件讀寫操作的系統,這種現象會更加明顯。
總結
以上是生活随笔為你收集整理的内存扩展算法 linux,Linux下内存的使用率正确的算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux禁止线程网络,linux –
- 下一篇: linux 非登录shell自动,Lin