Linux高级

生产服务器变慢,诊断思路和性能评估?

1、使用top命令查看整机的使用情况(uptime显示的信息较少)

主要看load(加载,负载) average(平均) 俗称系统的负载均衡,三个值代表1分钟、5分钟、15分钟系统的平均负载值,如果三个值相加/3*100%如果大于60%代表系统负载过重。

%CPU //cpu使用率

%MEM //内存使用率

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9BecQJFz-1601111220886)(http://www.ztinfo.xyz/upload/2020/1/image-fd9b261b172a47f58a5e0f2cde1b463e.png)]

2、vmstat(查看cpu使用情况)

vmstat -n 2 3 //每两秒采样一次cpu情况,总共采样3次

image.png
主要看procs

r (runtime)运行和等待cpu时间片的进程数,整个系统的等待线程数不能超过总核数的两倍,否则代表体统压力过大。

b (Blocking)阻塞,等待资源的进程数比如磁盘IO阻塞、网络IO阻塞。

-cpu

us :用户进程消耗cpu时间百分比,us值越高,用户进程消耗cpu时间越高,如果长期大于50%,优化程序

sy :系统内核消耗cpu时间百分比

us+sy参考值为80%,如果两者和大于80%,说明可能存在cpu不足。

id : 代表cpu空闲,越大越好。

3、查看所有cpu核信息

mpstat -P ALL 2 //每两秒采样一次

idle //cpu空闲百分比

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yGUeCqX7-1601111220889)(http://www.ztinfo.xyz/upload/2020/1/image-7d1d7ecb54db4c68bc2d69da2ed228b1.png)]

4、每个进程使用cpu的分量分解信息

pidstat -u 1 -p 进程编号 //每秒中采样一次。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gJlRqiVe-1601111220891)(http://www.ztinfo.xyz/upload/2020/1/image-f4a5795d79f442e9bbcdb4b006f9a842.png)]

5、内存使用情况

free //以字节的方式呈现

free -g //以G的方式呈现

free -m //以M的方式呈现

20%<可用内存/总内存<70% 内存基本够用

6、硬盘使用情况

df -h //以G的单位显示 human(人类) 以人类的方式展示。

7、磁盘IO(iostat)

iostat

一般大表,数据量大会产生比较久的IO

iostat -xdk 2 3 //每两秒采样一次,总共采样3次。

主要看util 一秒钟有百分之几的时间用于io操作,接近100%代表磁盘带宽跑满,需要优化程序。

await //io请求的平均等待时间。

svctm //io请求的平均服务时间。

rkb/s //每秒读取数据量kb

wkb/s //每秒写入数据量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BXMB9Ddt-1601111220892)(http://www.ztinfo.xyz/upload/2020/1/image-3559670c18174f5db23a98952713ed66.png)]

pidstat -d 采样时间 -p 进程编号 //查看某个进程磁盘io使用情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gBJ36vC4-1601111220893)(http://www.ztinfo.xyz/upload/2020/1/image-8d89a2188cd443b88e5932172084bbce.png)]

8、网络IO(ifstat)

看是否是网络传输导致慢

image.png

Cpu占用过高,分析思路和定位(印象深刻的故障)

先用top命令找出cpu占比最高的进程id(pid)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rQ2vjhoe-1601111220894)(http://www.ztinfo.xyz/upload/2020/2/image-ca8148deca1b4c3fac60edd5ca9592ca.png)]

用jps -l或者ps -ef | grep java

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EolaHXey-1601111220894)(http://www.ztinfo.xyz/upload/2020/2/image-5d4ea29d967e43c1944e76bdd19184a5.png)]

定位到具体的线程

ps -mp 进程 -o THREAD,tid,time

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VnTLxOUp-1601111220895)(http://www.ztinfo.xyz/upload/2020/2/image-c334739fe72a4b848c2ff92d1f99f508.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yb1hiLVB-1601111220895)(http://www.ztinfo.xyz/upload/2020/2/image-4ab097c106544f2da5b8e63cab507bff.png)]

将线程id转换成16进制的小写字母。

通过上一步我们知道3929这个线程惹的祸,转换成16进制是f59

用jstack 进程id | grep 线程16进制 -A60

-A60打印前60行

找到自己写的类,例如如图第十行有问题

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值