linux测试环境,生产环境服务器突然变慢,探求分析思路![](https://private.codecogs.com/gif.latex?)
使用到命令:
top: 看进程,top -Hp pid具体进程
free -h : 看内存使用情况,看used已经使用的内存数,available剩余可被使用的内存数
df -hl : 看硬盘使用情况,used已使用了内存数,available剩余内存数
iostat -xdk 2 3 :看磁盘IO,每两秒刷新,共三次
ifstat : 看网络IO
记录一次排查:
一次兴起,有了服务器的账号密码,看看服务器运行情况,由于是这一台服务器只运行一个服务,其他服务具体看不了太多,怕被打
服务器突然变慢了,看下那些应用CPU占比高,
打出top看下进程,当前服务器所有进程cpu占比从高到低排序,敲下1,看下cpu核数,嗯,4核。
看下占比最高的进程,用ps -ef或jps -l进一步定位,得知是怎样的程序在跑了
显示线程列表:ps -mp pid -o THREAD,tid,time
这时候要找到耗时特别长的线程,当前我的服务挺正常,是其他服务某个线程耗时太长了,但也不妨碍看下当前服务的情况
把线程id换成16进制的 printf "%x\n" tid
打印一下线程的堆栈信息:jstack pid |grep tid -A60
一般思路是这样了,实践较少,服务器变慢,一般是高cpu使用,或者是死锁