##查看CPU数量
总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
查看物理CPU个数:
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
查看每个物理CPU中core的个数(即核数):
cat /proc/cpuinfo| grep "cpu cores"| uniq
查看逻辑CPU的个数:
cat /proc/cpuinfo| grep "processor"| wc -l
##CPU运行良好的指标
- CPU利用率:User Time <= 70%, System Time <=35%, User Time + System Time <= 70%
- 上下文切换:与CPU利用率相关联,如果CPU利用率良好,较频繁的上下文切换也可以
详情参照 ‘操作系统CPU上下文切换’:http://blog.csdn.net/xifeijian/article/details/8209783
- 可运行进程数:每个处理器的可运行队列<=3个线程。
###vmstat工具使用
vmstat 2 5 //每两秒统计一次,连续统计5次
打印输出:
字段含义介绍:
- 进程:
- r:就绪态的进程数,等待CPU调度运行。
- b:处于不可中断睡眠状态的进程数。
- CPU:
- us:运行非内核态代码占用时间比(用户时间)。
- sy:运行内核代码占用时间比(系统时间)。
- id:CPU空闲时间比。
- wa:等待IO时间。
- 内存(KB):
- swpd:虚拟内存已使用量。
- free:空闲内存量。
- buffer:已使用的buffer占用内容量。
- cache:已使用的cache占用内存量。
- si:数据从 SWAP 读取到 RAM(swap in)的大小。
- so:数据从 RAM 写到 SWAP(swap out)的大小。
##内存运行良好的指标
- si(swap in)= 0 且so(swap out)= 0
- 应用程序实际使用内存/系统物理内存 <= 70%
###free工具使用
free -m
打印输出:
具体选项含义参考>>
##网络运行良好的指标 UDP:接收、发送缓冲区不长时间有等待处理的网络包。
TCP:不会出现因为缓存不足而出现丢包,协议层通过重传机制来保证丢失的包到达接收方。TCP更多的专注重传率。
###netstat工具
netstat -lunp
输出:
RecvQ、SendQ为0,或者短时间内有数值是比较正常的。
查看UPD/TCP丢包情况
netstat -us/-ts
UDP关注‘packet receive errors’,若数值不断增加,则正在丢包。
TCP服务可以通过(segments retransmited) / (segments send out)来计算重传率。
###磁盘IO工具
iostat -d -x -k 2 10
字段说明:https://linux.die.net/man/1/iostat
###文件描述符 查看系统运行打开的最大文件描述符数
cat /proc/sys/fs/file-max
查询当前用户一个进程可以打开的最大文件描述符数
ulimit -n
##引文: