Linux系统小技巧(2):利用ps工具统计CPU/MEM消耗高或者负载高的进程
2023-09-11 14:19:43 时间
CPU消耗高往往是系统异常的一种表现。因为平常检查系统运行有哪些进程,都是使用ps工具。因此,出现这种情况时,如果能够通过ps工具搜寻出CPU消耗高的线程,则对进一步搜寻线索或者排查应该有帮助。
下面我们讨论两个相关的小技巧。
首先,我们得了解一下进程的概念。我们都很熟悉进程了,那么,线程是什么呢?引用Andrew S. Tanenbaum的话,就是
进程认为自己独占一台主机;线程认为自己独占一颗CPU。
所以,一个进程可能包含多个线程。但是考察CPU消耗问题,只考虑进程而不考虑线程是不够的。就是说,我们总是得给ps命令加上“-T”选项。
为了便于按照CPU消耗的情况排序,我们也通过“-o”定制ps输出的字段,以确保CPU消耗占比字段是第一个字段,这样便于排序。
列出消耗高的线程命令如下
LANG=C ps -eT -o%cpu,pid,tid,ppid,comm | grep -v CPU | sort -n -r | head -20
效果如下
命令如下
{ LANG=C ps -eT -o%cpu,pid,tid,ppid,comm | sed -e s/^ *// | tr -s | grep -v CPU | sort -n -r | cut -d -f 1 | xargs -I{} echo -n "{} + " echo 0; } | bc -l
效果如下
设想我们需要追踪CPU占用最好的线程,则可以这样
export LANG=C;d=$(mktemp -d) cd $d # 建并进入临时目录 # 捕捉之 strace -f -ff -s 256 -tt -T -o strace.log -p $(ps -eT -o%cpu,pid,tid,ppid,comm | grep -v CPU | sort -n -r | head -1 | sed -e s/^ *// | tr -s | cut -d -f 3)
线程是共享内存空间的。所以,一般情况下,没有必要使用“-T”选项。
列出内存消耗高的进程
LANG=C ps -e -o%mem,pid,tid,ppid,comm | grep -v MEM | sort -n -r | head -20
统计内存消耗情况
{ LANG=C ps -e -o%mem,pid,tid,ppid,comm | sed -e s/^ *// | tr -s | grep -v MEM | sort -n -r | cut -d -f 1 | xargs -I{} echo -n "{} + " echo 0; } | bc -l列出导致CPU负载高的线程
LANG=C ps -eTo stat,pid,tid,ppid,comm,args | perl -ne chomp;if (m!^\s*(\S*[RD]+\S*.*)!) {print qq[$1\n];}
![](https://ucc.alicdn.com/pic/developer-ecology/b5a9c9ef059e4e20a2a93e8182992247.jpg)
相关文章
- 【Linux】linux常用基本命令
- nagios安装check_linux_stats.pl插件报错Can't locate Sys/Statistics/Linux.pm in @INC的处理?
- linux 切换root账号_LINUX 创建用户及切换用户
- Linux查看网络连接数,统计网络连接数(netstat、Apache连接数)
- 在Linux命令行中以图形化窗口打开文件夹
- 嵌入式和服务器Linux系统下free -m Memory统计信息解析
- libnuma详解-A NUMA API for LINUX
- Linux集群和自动化维2.6.2 统计类脚本
- Linux集群和自动化维3.6 轻量级自动化运维工具Fabric介绍
- Linux性能统计工具
- 【Linux】linux中自动定时备份mysql数据
- 【Linux】linux ln文件夹的链接(转)
- Linux下安装Maven
- linux进程 阻塞和非阻塞操作
- linux之vmlinux、vmlinuz、System.map和/proc/kallsyms简介
- Linux自制编译内核
- Linux每日小技巧---统计服务器IP连接数
- Linux-021-Centos Nginx 配置服务管理,并设置开机启动
- Linux下各个目录的作用
- linux 下使用scp命令传输文件
- Linux fsck命令详解
- 【Linux】常见基本命令之总结
- Linux内核project导论——linux学习和职业曲线(刚開始学习的人,中级,高级都可參考)
- [加入用户]解决useradd 用户后没有加入用户Home文件夹的情况,Linux改变文件或文件夹的訪问权限命令,linux改动用户password,usermod的ysuum安装包。飞
- Linux 之 arm linux 与 windows 使用 tftp 进行文件传输的简单整理
- 【Linux】linux经常使用基本命令
- 【Linux】linux经常使用基本命令
- Linux学习笔记(24)linux发邮件 mailx发邮件
- Linux学习笔记(11)linux网络管理与配置之一——配置路由与默认网关,双网卡绑定(5-6)
- linux修改目录颜色