1)整机:top

查看cpu和内存
系统的负载均衡(三个值:5分钟,10分钟,15分钟对应的负载值),(三个值相加的和)/3*100%,如果大于60%,则表示系统的压力重。
uptime 查看系统性能的精简版

2)查看cpu:vmstat
查看但不限于cpu

vmstat -n 2 3
一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔,单位是秒,第二个参数是采样的次数。
结果分析:
procs
- r:运行和等待cpu时间片的进程数,原则上1核的cpu的运行队列不要超过2,整个系统的运行队列不能超过总核数的2倍,否则代表系统压力过大。
- b:等待资源的进程数,比如正在等待磁盘I/O,网络I/O等。
cpu
- us:用户进程消耗cpu时间百分比,us值高,用户进程消耗cpu时间多,如果长期大于50%,优化程序。
- sy:内核进程消耗的cpu时间百分比。
- id:处于空闲的cpu百分比
- wa:系统等待IO的cpu时间百分比
- st:来自于一个虚拟机偷取的cpu时间的百分比
us+sy参考值为80%,如果大于80%,说明可能存在cpu不足。
查看所有cpu核信息:mpstat -P ALL 2(每2秒打印一次,打印所有cpu的进程消耗数)

查看每个进程使用spu的用量分解信息:pidstat -u 1 -p 进程编号

3)内存:free

free查看内存(单位字节),free -g查看内存(单位是g),free -m查看内存(单位是m)
- 应用程序可用内存/系统物理内存>70% 内存充足
- 应用程序可用内存/系统物理内存<20% 内存不足,需要增加内存
- 20%<应用程序可用内存/系统物理内存<70% 内存基本可用
pidstat -p 进程号 -r 采样间隔秒数
4)硬盘:df
查看磁盘剩余空间数

5)磁盘IO:iostat
磁盘I/O性能评估

磁盘块设备分布
rkB/s 每秒读取数据量kB
wkB/s 每秒写入数据量kB
svctm I/O 请求的平均服务时间,单位毫秒
await I/O 请求的平均等待时间,单位毫秒。值越小,性能越好。
util 一秒中有百分之几的时间用于I/O操作。接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘
rkB/s、wkB/s根据系统应用不同会有不同的值,但有规律遵循:长期、超大数据读写,肯定不正常,需要优化程序读取。
svctm的值与await的值很接近,表示几乎没有I/O等待,磁盘性能好。
如果await的值远高于svctm的值,则表示I/O系列等待太长,需要优化程序或更换更快磁盘。
pidstat -d 采样间隔秒数 -p 进程号
6)网络IO:ifstat
没有该命令需要先安装
查看网络IO ifstat 1
各个网卡的in,out
观察网络负载情况
程序网络读写是否正常
解决:程序网络I/O优化;增加网络I/O带宽
cpu占用过高,分析和定位的步骤:
- 先用top命令找出cpu占比最高的
- ps -ef或者jps进一步定位,得知是什么后台程序运行
- 定位到具体线程或者代码。ps -mp 进程 -o THREAD,tid,time(参数说明:-m 显示所有的线程;-p pid进程使用cpu的时间;-o 该参数后是用户自定义的格式 )
- 将需要的线程ID转换为16进制格式(英文小写格式)。(printf "%x\n" 有问题的线程ID)
- jstack进程ID | grep tid(16进制线程ID小写英文) -A60(jstack 进程ID | grep tid(16进制线程ID小写英文) -A60)
posted on
浙公网安备 33010602011771号