[Part1:内存监控篇幅]
:wehf1wco001:root > free
total used free shared buffers cached
Mem: 32949628 21523692 11425936 0 3754896 11811096
-/+ buffers/cache: 5957700 26991928
Swap: 16008732 0 16008732
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少
Linux内存监控指定进程:占用内存的测量
测量一个进程占用了多少内存,Linux系统为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息,实际上top等工具也通过这里来获取相应的信息。
/proc/meminfo 机器的内存使用信息 /proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。 /proc/pid/statm 进程所占用的内存 [root@localhost ~]# cat /proc/self/statm 654 57 44 0 0 334 0 实际上Top命令也是从这取到参数
[Part2:CPU监控篇幅]
1. 对于每一个CPU来说运行队列不要超过3,例如,如果是双核CPU就不要超过6;
2. 如果CPU在满负荷运行,应该符合下列分布,
a) User Time:65%~70%
b) System Time:30%~35%
c) Idle:0%~5%
3. 对于上下文切换要结合CPU使用率来看,如果CPU使用满足上述分布,大量的上下文切换也是可以接受的。
常用的监视工具有,vmstat, top,dstat和mpstat.
UNKNOWN:ahf1msg001:logs # vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 144 48692 94720 3139228 0 0 6 27 1 18 0 0 99 0 0
0 0 144 47868 94720 3139276 0 0 0 1280 2877 3312 0 1 98 1 0
0 0 144 48444 94724 3139276 0 0 0 2912 3003 3299 0 1 89 10 0
0 0 144 48444 94732 3139288 0 0 0 552 1929 1902 0 0 99 1 0
r表示运行队列的大小,
b表示由于IO等待而block的线程数量,
in表示中断的