Linux使用学习笔记3 系统运维监控基础

系统运维监控类命令

查询每个进程的线程数

复制代码
for pid in $(ps -ef | grep -v grep|grep "systemd" |awk '{print $2}');do echo ${pid} > /tmp/a.txt;cat /proc/${pid}/status|grep Threads > /tmp/b.txt;paste /tmp/a.txt /tmp/b.txt;done|sort -k3 -rn

for pid in (ps -ef \| grep -v grep\|grep "systemd" \|awk '{print 2}');do echo {pid} \> /tmp/a.txt;cat /proc/{pid}/status|grep Threads > /tmp/b.txt;paste /tmp/a.txt /tmp/b.txt;done|sort -k3 -rn

获取$(pid)变量,也就是与systemd有关的进程的pid号,awk用于提取进程信息的pid,grep用于在文件行内匹配java字符串,grep -v grep用于排除自身带grep的进程。awk和grep都是很常见的文本处理中的命令。

下一句,echo刚刚获得的pid号,并把输出给到/tmp文件夹下的a.txt。

下一句,cat读取/proc下刚刚的pid对应的文件夹,然后进入下面的status文件读取内容,在其中寻找线程信息,并存入/tmp文件夹下的b.txt。

下一句,paste合并ab两个文件,按照列合并,中间隔一个tab.

最后对输出进行排序。按第三行,降序数字排序。

如何检测系统中的僵尸进程将其kill

ps -e -o stat,ppid,pid,cmd |egrep '^Zz'

复制代码
ps -e -o stat,ppid,pid,cmd |egrep '^[Zz]' 

这里就是监测僵尸进程的命令,egrep是一个正则表达式工具,是grep命令的增强版本。现在建议使用grep -e来代替。

僵尸进程会以Z或者z开头(因为stat为z)。

这之后使用kill命令即可。但是如果要清理的进程很多,怎么办?

使用:

复制代码
ps -e -o stat,ppid,pid,cmd | grep -e '[Zz]' |awk '{print $2}' |xargs kill -9

-e代表显示所有进程,-o代表按照对应格式展示,后面是要输出的列。

这里我们是杀死了父进程,为什么?因为僵尸进程已经无法被唤醒了,不能接收任何信号。所以我们利用了linux的调度机制,父进程被杀掉,僵尸进程就成了孤儿进程,孤儿进程会被交给系统1号进程,该进程会周期性的调用wait清理僵尸进程。

如何查看占用cpu内存最多的几个进程

获取当前cpu占用最高

ps aux|head -l;ps aus|sort -rn -k3|head -10

复制代码
ps aux | head -1; ps aux|sort -rn -k3|head -10

ps aux | head -1; ps aux | tail -n +2 | sort -rn -k3 | head -10

观察输出:

可以看到多输出了表头,让第二个ps使用tail命令从第2行开始输出就好了,这一命令对应和head类似。只不过是用来观看文章尾部。

获取当前占用内存最高的10个进程

复制代码
ps aux | head -1; ps aux|sort -rn -k4|head -10

ps aux | head -1; ps aux | tail -n +2 | sort -rn -k4 | head -10

只有排序不同。

相关推荐
牢姐与蒯几秒前
Linux信号(一).信号产生
linux·运维·服务器·ubuntu
艾莉丝努力练剑22 分钟前
【AI大模型接入SDK】ChatSDK架构设计与实现
网络·c++·人工智能·学习·语言模型
咖啡忍者2 小时前
【SAP BASIS】Section 5: SAP System Configuration
笔记
雯宝6 小时前
mnt_init 函数
linux
UIU1147 小时前
递归算法与汉诺塔
c++·学习·算法·c#·递归
律宏阔12 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔12 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴12 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千12 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei3712 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化