1.命令
top 、uptime 、w 检测系统整体的负载、承受能力
iostat 、 iotop 查看磁盘IO
vmstat、 sar 、iostat、 top 检测CPU
free、vmstat 内存
2.磁盘IO分析
yum install sysstat 安装iostat
iostat -x -k 1 3 #每秒一次共三次
主要关注:
%util:一秒中I/O操作时间的百分比,即一秒内有多少时间I/O队列是非空的,若接近%100表示I/O请求过多,超负荷,磁盘存在瓶颈
await:平均每次设备I/O操作的等待时间,一般应低于5ms(参考来自于书本),若大于5ms表示磁盘I/O压力大,应升级硬件或调优
%iowait:最好不要超过30%。
3.CPU 负载
top
主要关注:
load average:过去的1分钟 5分钟 15分钟内进程队列中的平均进程数量,这三个值一般不能大于系统逻辑cpu数量。
4.内存 性能
free -h
主要关注:
shared buff/cache available 为缓存,也可以理解为剩余内存。
5.网络负载
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
运行这一句之后,显示的结果类似如下:
TIME_WAIT 27
FIN_WAIT1 435
FIN_WAIT2 89
ESTABLISHED 82
SYN_RECV 64
CLOSING 4
LAST_ACK 90
这些结果代表啥意思呢?如下:
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
ESTABLISHED:代表一个打开的连接
SYN-RECV:再收到和发送一个连接请求后等待对方对连接请求的确认
SYN-SENT:再发送连接请求后等待匹配的连接请求
CLOSING:等待远程TCP对连接中断的确认
CLOSED:没有任何连接状态
CLOSE-WAIT:等待从本地用户发来的连接中断请求
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
LISTEN:侦听来自远方的TCP端口的连接请求