HP-UNIX下爲什麼top 出來的 memory 遠比實際物理內存小

解釋HP-UNIX下爲什麼top 出來的 memory 遠比實際物理內存小

工作需要查看到HP-UNIX服務器的cpu以及內存信息,使用了基本的命令top顯示結果如下:

System:test1 Thu Mar 31 12:49:14 2011

Loadaverages: 0.27, 0.27, 0.28

766processes: 666 sleeping, 84 running, 15 stopped, 1 zombie

Cpustates:

CPU  LOAD   USER   NICE    SYS  IDLE  BLOCK  SWAIT   INTR   SSYS

0   0.44  24.2%   0.2%  22.2%  53.5%  0.0%   0.0%   0.0%   0.0%

1   0.24   4.2%   0.6%   8.6%  86.7%  0.0%   0.0%   0.0%   0.0%

2   0.19   2.8%   0.0%   6.8%  90.4%  0.0%   0.0%   0.0%   0.0%

3   0.31   8.6%   0.0%   6.6%  84.9%  0.0%   0.0%   0.0%   0.0%

4   0.21   4.4%   0.0%  11.2%  84.5%  0.0%   0.0%   0.0%   0.0%

5   0.25   5.2%   0.6%   9.0%  85.3%  0.0%   0.0%   0.0%   0.0%

6   0.25  10.0%   0.0%  12.0%  78.1%  0.0%   0.0%   0.0%   0.0%

7   0.31  36.5%   0.0%  21.7%  41.8%  0.0%   0.0%   0.0%   0.0%

---  ----  -----  -----  -----  -----  ----- -----  -----  -----

avg  0.27  12.0%   0.0%  12.2%  75.8%  0.0%   0.0%   0.0%   0.0%

Memory:1240336K (994056K) real, 4532396K (4210200K) virtual, 950280Kfree  Page# 1/15

CPUTTY     PID USERNAME PRI NI  SIZE    RES STATE    TIME %WCPU  %CPUCOMMAND

3pts/11 29138 cmstst   241 20  2844K   356Krun   19807:33 99.01 98.84 ksh

注意紅色部分,按照這樣算下來內存總大小應該爲:使用內存:1240336K  +  剩餘內存:950280K= 2190616K

大小爲2G 但是該臺服務器的實際內存大小爲8G,還有的6G內存哪裏去了???

看這段解釋:

top 只能看到進程所使用的內存量,所以你看到的 1240336K (994056K) real就是所有進程所使用的內存總和,這個內存是指物理內存,括號前那個值是Total Real Memory,括號內是Active Real Memory, 這兩者的區別就在於Active Real Memory的值只是分配給那些已經在run queue或者正在運行的進程的Real Memory,Total Real Memory 包括所有的進程。

對於後一項值4532396K (4210200K)virtual的解釋也是同樣的,不過這個值代表了Virtual Memory(一般爲建在Disk上的Swap空間,當然你要問了,我的Swap空間可不止這麼些啊 by executing ‘swapinfo‘沒錯,Swap空間是大於這裏的Total Vitual Memory的,但我前面說了,這裏的值只是計算的分配給進程的),最後一項950280K free  到確確實實是Free Memory,它等於Physical Mem - kernel used - user used - buffer cache

看到這裏我還是不很明白其他的內存那裏去了,繼續。。。

HP-UX是使用虛擬內存管理一個進程的內存使用空間的,虛擬內存(Virtual memory= 實際物理內存(physical memory+ SWAP交換區(swap space)。

swap區一般是指硬盤上的一大塊空間(Oracle要求大小是物理內存的3倍以上)以便內存數據page in/page out。頻繁的page in/page out浪費時間和系統資源(systembusIO bus速率不match等諸多因素),怎麼辦?惠普的解決辦法是直接在內存上劃一塊空間作爲pseudo memory以避免頻繁的page in/page out。這部分僞內存(不知道這樣翻譯對不對,就是pseudomemory啦)對於HP-UX來說也可以看成是swap區的一部分。

並且一般系統會默認的把physical memory75%劃做“交換區”

看到這裏哥釋然了............

swap space Physical Memory乘以75%+Swap Device space

所以系統的物理內存也可以大概估計出來:(real+free /0.25


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章