当前位置:首页 > 运维 > 正文内容

linux中cpu占用过高排查方法

phpmianshi5年前 (2016-04-17)运维118
CPU使用率查看
top

通过top -d 0.1可以缩短采样时间。

-d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

查看多核CPU

top 输入1就可以看到各个核心的CPU使用率
mpstat -P ALL
sar -P ALL

当然你也可以用htop代替top,htop的详细用法请自行搜索,这里不多介绍了。

找到最耗CPU的进程
top -c

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
3715 www       20   0  139m  18m 8256 S  2.0  0.5   0:05.22 php-fpm: pool www

-c:显示整个命令行而不只是显示命令名。
按大写P   按照cpu使用率排序
假设最耗CPU的进程PID为3715

找到最耗CPU的线程

top -Hp 3715

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
 3715 www       20   0  138m  18m 8280 S  0.0  0.5   0:04.92 php-fpm

-p:通过指定监控进程ID来仅仅监控某个进程的状态。
-H 显示线程信息 show all threads

显示一个进程的线程运行信息列表

按大写P   线程按照cpu使用率排序

查看堆栈,找到线程在干嘛

pstack/jstack/grep  
C进程使用pstack查看线程堆栈信息
java进程采用jstack查看线程堆栈信息.
[root@dev logs]# pstack 3715       
#0  0x00007fa864a334e0 in __accept_nocancel () from /lib64/libc.so.6
#1  0x0000000000857ca1 in fcgi_accept_request ()
#2  0x000000000085f42d in main ()

如果提示 -bash: pstack: command not found 只要安装gdb就可以了

yum install gdb -y

查看CPU的平均状况信息

[root@dev logs]# mpstat -P ALL -I SUM 
Linux 2.6.32-504.30.3.el6.x86_64 (dev.aigupiao.com)     06/10/20        _x86_64(2 CPU)

21:09:44     CPU    intr/s
21:09:44     all   2855.24
21:09:44       0    113.53
21:09:44       1   1887.97
mpstat是 Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。
当mpstat不带参数时,输出为从系统启动以来的平均值
mpstat [-P {cpu|ALL}] [internal [count]]
internal 相邻的两次采样的间隔时间    
count 采样次数,只能和internal一起使用

-P { cpu [,...] | ON | ALL }   #表示监控哪个CPU, cpu在[0,cpu个数-1]中取值
-I { SUM | CPU | ALL }  查看cpu中断的统计 Report interrupts statistics
版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

linux中高并发场景下too many open files问题处理

概述:高并发场景下 too many open files 问题。可以通过设置系统打开文件数,直接影响单个进程容纳的客户端连接数。比如会影响到长链接应用如聊天中单个进程能够维持的用户连接数, 运行ul...

进程、线程和协程三者之间的区别和联系

一、进程、线程、协程1,进程    进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己独立的地址空间,有自己的堆,...

linux中连接数过多(TIME_WAIT/CLOSE_WAIT)读这一篇就够了

根据TCP/IP介绍,socket大概包含10个连接状态。我们平常工作中遇到的,除了针对SYN的拒绝服务攻击,如果有异常,大概率是TIME_WAIT和CLOSE_WAIT的问题。TIME_WAIT一般...

输入一个URL到底发生了什么

输入一个URL到底发生了什么

DNS解析TCP连接发送http请求服务器处理请求浏览器解析渲染页面连接结束DNS解析根域名服务器(root Name server) 是互联网域名解析系统(DNS)中最高级别的域名服务器,负责返...

linux中tcpdump的详细用法

linux中tcpdump的详细用法

在调试网络通信程序是tcpdump是必备工具。tcpdump很强大,可以看到网络通信的每个细节。如TCP,可以看到3次握手,PUSH/ACK数据推送,close4次挥手,全部细节。包括每一次网络收包的...

负载均衡工作模式以及工作原理

负载均衡的多种解决方案:HTTP重定向当用户发来请求的时候,Web服务器通过修改HTTP响应头中的Location标记来返回一个新的url,然后浏览器再继续请求这个新url,实际上就是页面重定向。通过...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。