生产环境服务器变慢
Posted 亮子zl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生产环境服务器变慢相关的知识,希望对你有一定的参考价值。
1.生产环境服务器变慢,诊断思路和性能评估谈谈?
整机:top uptime, 系统性能命令的精简版 load average:1 5 15 系统的平均负载值 3个值相加除3在乘100%如高于60%系统高
CPU:vmstat 思得t vmstat -n 2 3
每2秒采样一次 共记采样3次 procs(总进程) memory(内存) swap(交换空间) io system(系统) cpu
r(运行) b(阻塞)
procs
1、r:运行和等待CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不能超过总核数的2倍。否则代表系统压过大
2、b:等待资源的进程数,比如正在等待磁盘I/O、网络I/O等。
CPU
us:用户进程消耗CPU时间百分比,us值高,用户进程消耗CPU时间多,如果长期大于50%,优化程序;
sy:内核进程消耗的cpu时间百分比;
us: + sy 参考值为80%,如果us + sy 大于80%,说明可能存在CPU不足。
id:处于空闲的CPU百分比
wa:系统等待IO的CPU时间百分比
st:来自于一个虚拟机偷取的CPU时间的百分比
内存:free -m 服蕊
应用程序可用内存/系统物理内存>70%内存充足
应用程序可用内存/系统物理内存<20%内存不足,需要增加内存
20%<应用程序可用内存/系统物理内存<70%内存基本够用
pidstat -p 进程号 -r 采样间隔秒数
硬盘:df -h
磁盘IO:iostat -xdk 2 3
网络IO:ifstat
2.假如生产环境出现CPU占用过高,请谈谈你的分析思路和定位
1、先用top命令找出CPU占比最高的
2、ps -ef 或者 jps 进一步定位,得知是一个怎么样的一个后台程序
3、定位到具体线程或者代码 ps -mp 进程 -o THREAD,tid,time
-m 显示所有线程
-p pid进程使用cpu的时间
-o 该参数后是用户自定义格式
4、将需要的线程ID转换为16进制格式(英文小写格式)
5、jstack进程ID|grep tid(16进制线程ID小写英文)-A60
以上是关于生产环境服务器变慢的主要内容,如果未能解决你的问题,请参考以下文章