Linux实战学习

一:生产环境服务器变慢,诊断思路和性能评估。

 总分的方式,总就是top整机命令,分就是下面的命令。服务器变慢而不是宕机只能一个一个的排查,因为可能导致变慢的原因太多了。

**

1.整机:top命令 可以使用精简版uptime命令,系统性能命令的精简版**
图片说明
2. CPU: vmstat
查看CPU: 命令为vmstat -n 2 3:每两秒采集一次,一共采集三次。
这个命令主要看procs和cpu两个部分,在procs中看r和b两个部分,r是runtime,b是blocked
图片说明
图片说明
查看额外:
1.查看所有cpu核信息 mpstat -P ALL 2 每两秒采样一次,会一直刷新。
图片说明
2.每个进程使用cpu的用量分解信息 pidstat -u 1 -p 进程编号 用户线程,每秒钟采样一次的情况
图片说明
3. 内存:free
1.应用程序可用内存数:
一般使用free -m比较精确,-g有点向下取整的感觉
图片说明
2. 查看额外:
pidstat -p 进程号 -r 采样间隔秒数
图片说明
4. 硬盘: df diskfree
查看磁盘剩余空间数:
图片说明
5. 磁盘IO: iostat
1.磁盘I/O性能评估
图片说明
图片说明
2.查看额外
pidstat -d 采样间隔数 -p 进程号
图片说明
6.网络IO: ifstat
linux中查网络IP是ifconfig
默认本地没有,下载ifstat,命令如下:
图片说明
使用:ifstat 1
图片说明

二:假如生产环境出现cpu占用过高,请谈谈你的分析思路和定位

千万别说百度和看日志,要结合Linux和JDK一起分析
这个问题可以转化为:记你一次印象深刻的故障,是如何调优排错的
案例步骤:
1.先用top命令找出cpu占比最高的
图片说明
2. ps -ef 或者jps 进一步定位,得知是一个怎样的一个后台程序惹事
图片说明
3. 定位到具体线程或者代码 (pid和tid的区别要自己分辨清楚)
ps -mp 进程 -o THREAD,tid,time
图片说明
图片说明
4. 将需要的线程ID转换成16进制格式(英文小写格式)进行查询,因为命令的输入默认是16进制格式。
5. jstack 进程ID |grep tid(16进制线程ID小写英文) -A60
图片说明
这里只需找到自己的程序,可以发现是程序中的第十行出了问题!
图片说明
来看一下程序:
图片说明
因此接下来检查一下上下文就可以了。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务