解释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浪费时间和系统资源(systembus和IO bus速率不match等诸多因素),怎么办?惠普的解决办法是直接在内存上划一块空间作为pseudo memory以避免频繁的page in/page out。这部分伪内存(不知道这样翻译对不对,就是pseudomemory啦)对于HP-UX来说也可以看成是swap区的一部分。
并且一般系统会默认的把physical memory的75%划做“交换区”
看到这里哥释然了............
swap space =Physical Memory乘以75%+Swap Device space
所以系统的物理内存也可以大概估计出来:(real+free )/0.25
转载于:https://blog.51cto.com/315896/1380066