请帮我找出linux中占用swap空间最大的进程pid
时间: 2024-02-21 13:57:03 浏览: 244
查看linux占用资源最多的进程
你可以使用下面的命令来查找占用 swap 空间最大的进程 pid:
```
sudo swapon -s | awk '{if($3!=0) print $1}' | xargs -n 1 sudo pmap -x | awk '{if($3=="[anon]") printf $0; if($4=="Swap:") {swap+=$5; printf " " $0 "\n"} else printf " " $0 "\n"} END {print "Total swap used: " swap/1024 " MB"}' | sort -k6 -nr | head -n 1 | awk '{print $2}'
```
这个命令会依次执行以下操作:
1. 使用 `swapon -s` 命令获取系统中使用的 swap 分区信息。
2. 使用 `awk` 命令过滤掉未使用的 swap 分区,并提取出分区名称。
3. 将分区名称作为参数传递给 `pmap -x` 命令,获取分区中各进程的内存使用情况。
4. 使用 `awk` 命令提取出占用 swap 空间的进程信息,并计算出进程占用的 swap 空间总大小。
5. 使用 `sort` 命令按照 swap 空间大小从大到小排序。
6. 使用 `head` 命令获取排序后的第一行,即占用 swap 空间最大的进程信息。
7. 最后使用 `awk` 命令提取出进程的 pid。
注意,这个命令需要以 root 用户身份执行。
阅读全文