记录下常用的几个linux命令,用于查询机器性能状态;
1.top命令
top 查看进程cpu和内存 ,使用情况:
load ererage :系统负载均衡参数,3个参数分别代表系统1分钟/5分钟/15分钟内的平均负载;
3个参数相加,除以 3 >0.6 ,表示负载高。
也可以使用uptime命令,直接查看这3个参数:
2. vmstat 命令查看cpu
vmstat -n 2 3 :每2s采样一次,总共采样3次。
内容说明:
procs:
- r:运行和等待cpu时间片的进程数,原则上1核的cpu运行队列不要超过2,整个系统的运行队列不能超过总核数的2倍,否则代表系统压力过大;
- b:是等待资源的进程数,比如正在等待磁盘i/o,网络i/o;
cpu:
- us :用户进程消耗cpu时间的百分比,如果长期大于50%,说明需要优化程序;
- sy :内核进程消耗cup时间的百分比。
- us+sy参考值是80%,如果大于80%,说明可能存在cpu不足;
- id:处于空闲的cpu百分比
- wa:系统等待io的时间百分比
- st:来自于一个虚拟机偷取cpu的时间百分比;
3.mpstat查看所有cpu内核
mpstat -P ALL 2 查看所有cpu状态
4.pidstat
- pidstat -u 1 -p 进程号 ,查看某个进程占用cpu情况
- pidstat -r 1 -p 进程号 ,查看某个进程内存占用情况
- pidstat -d 1 -p 进程号 ,查看某个进程磁盘占用情况
5.free 查看内存状态
free -m 查看内存状态,单位是M;推荐使用这个,比较精确;
free -g 查看内存状态,单位是G;
6.df 查看磁盘空间
df -h 查看磁盘空间
- h :人类看的懂的格式
7.iostat查看磁盘IO
iostat -xdk 2 3
内容说明:
- util :一秒中有百分之几的时间用于I/O操作;接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘;
- rkB/s :每秒读取的数据量kB;
- wkB/s :每秒写入的数据量kB;
- svctm :I/O请求平均服务时间,单位ms;
- await :I/O请求的平均等待时间,单位ms,值越小性能越好;
- svctm与await如果很接近,表示几乎没有磁盘I/O等待,磁盘性能很好;如果await的值远高于svctm,表示I/O等待队列太长,需要优化程序或者更换更宽的磁盘。