叙述的比较简单,主要是我一段时间不看,这些想top vmstat mpstat iostat都不会用,用了其中的一些参数不太清晰是什么意思,所以自己写个方便看也加深印象
如果没有装*.stat 可以yum install sysstat
一、关于top
top - 02:18:30 up 2 days, 18:31, 4 users, load average: 0.00, 0.01, 0.05
Tasks: 287 total, 1 running, 286 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16250284 total, 10784844 free, 2007344 used, 3458096 buff/cache
KiB Swap: 2559996 total, 2559996 free, 0 used. 13798652 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1.在这里我主要是看cpu 内存 的大概使用情况 (当前时间、在线时间、用户)
关于load average 分别是1分钟、5分钟、15分钟的平均Load 是一个大概的参数,要结合cpu核和个数来看,lscpu 这个 命令简单查看核数和个数 ,关于Load在CPU中可以理解为CPU可以并行处理的任务数,那么就是“CPU个数 * 核数”,CPU Load = CPU个数 * 核数 那么就是说CPU正好满负载,要保证性能有人说最好是小于CPU个数 * 核数 *0.7,对应值最好看load average 5 和15分
要知道每个cpu使用情况我清楚三种方法():
a.top 在动态的top按数字1
b.mpstat -P ALL
c.sar -P ALL
2.VIRT RES SHR参数
VIRT:virtual memory usage 虚拟内存
a.进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
b.假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:resident memory usage 常驻内存
a.进程当前使用的内存大小,但不包括swap out
b.包含其他进程的共享
c.如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
d.关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:shared memory 共享内存
a.除了自身进程的共享内存,也包括其他进程的共享内存
b.虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
c.计算某个进程所占的物理内存大小公式:RES – SHR
d.swap out后,它将会降下来
3.内存前面都好看,主要是 buff/cache难理解。关于top中buff/cache在centos6和cento7点点不一样,这里不解惑
a.caching是当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常