1.top
1.1.第一行
13:03:25 表示当前时间
up 23 系统运行时间 格式为时:分
1 users 当前登录用户数
load average: 0.00, 0.01, 0.03 系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。相加/3大于60%,系统负担较重。
1.2.第二行
进程数
1.3.第三行
us:用户进程消耗的CPU时间百分比,us值高,用户进程消耗CPU多,长期大于50%需要优化代码。
sy:内核进程消耗的CPU时间百分比
us+sy 大于80%,说明CPU不足
id:空闲CPU百分比
wa:等待输入输出的CPU百分比
1.4.第四行
内存信息
1.5.第五行
交换区信息
1.6.剩余
进程信息
2.vmstat 查看CPU信息
vmstat—vmstat -n 2 3两秒输出一次共输出3次
procs
r:运行和等待CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2(平均值),
否则代表系统压力过大。
b:等待资源的进程数,比如正在等待磁盘IO,网络IO等
cpu--
us:用户进程消耗的CPU时间百分比,us值高,用户进程消耗CPU多,长期大于50%需要优化代码。
sys:内核进程消耗的CPU时间百分比
us+sys 大于80%,说明CPU不足
id:cpu空闲率
2.1 mpstat
mpstat -P ALL 2
查看所有的cpu信息(多核情况 )
2.2 pidstat
pidstat -u 1 -p 进程编号
每个进程使用cpu的用量分解信息。(ps -ef | gep java 查看java进程编号。或top命令))
3.free 查看内存信息
free---查看应用可用内存
free 以kb显示
free -m以M显示大小(建议)
free -g 以G显示大小
<20%不够用
20%-70%基本够用
>70%充足
3.1 pidstat
pidstat -p 进程号 -r 采样间隔描述
查看某个具体的进程
3.df 查看磁盘信息
4.iostat 磁盘IO
iostat---iostat -xdk 2 3
rk 每秒读取数量
wk 每秒写入数量
svctm IO请求的平均服务时间,单位毫秒
await IO的平均等待时间
util 一秒钟有百分之几的时间用户IO,接近100%说明磁盘宽带饱满,需要优化程序或磁盘
查看额外的---pidstat -d 采样间隔秒数 -p 进程号
5.ifstat 网络IO
6. du -h 查看文件大小
du -h –max-depth=1 work/testing
7. CPU过高定位
1.top命令找出CPU占用过高的
2.ps-ef或jps -l 定位是什么后台程序
3.将线程ID转换为16进制(英文小写格式)
print "%x\n" 有问题的线程ID
4.jstack 进程ID | grep tid(16进制线程ID且英文小写) -A90
从输出的日志中找到代码