百木园-与人分享,
就是让自己快乐。

如何在 Linux 中找出内存消耗最大的进程

很多次,你可能遇见过系统消耗了过多的内存。如果是这种情况,那么最好的办法是识别出 Linux 机器上消耗过多内存的进程。我相信,你可能已经运行了下文中的命令以进行检查。如果没有,那你尝试过哪些其他的命令?我希望你可以在评论中更新这篇文章,它可能会帮助其他用户。

使用 top 命令 和 ps 命令 可以轻松的识别这种情况。我过去经常同时使用这两个命令,两个命令得到的结果是相同的。所以我建议你从中选择一个喜欢的使用就可以。

1) 如何使用 ps 命令在 Linux 中查找内存消耗最大的进程
ps 命令用于报告当前进程的快照。ps 命令的意思是“进程状态”。这是一个标准的 Linux 应用程序,用于查找有关在 Linux 系统上运行进程的信息。

它用于列出当前正在运行的进程及其进程 ID(PID)、进程所有者名称、进程优先级(PR)以及正在运行的命令的绝对路径等。

下面的 ps 命令格式为你提供有关内存消耗最大进程的更多信息。

# ps aux --sort -rss | head

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 4094 10.8 0.0 786792 250784 pts/0 Rl 15:13 3:08 /usr/local/bin/python /usr/local/bin/scrapy crawlall
root 4017 10.6 0.0 781296 245344 pts/0 Sl 15:13 3:06 python start.py
root 4044 10.6 0.0 777784 241760 pts/0 Sl 15:13 3:06 python start_all.py
root 347 53.7 0.0 869020 127732 pts/0 Sl 15:01 21:43 python runsearch.py
root 9795 14.1 0.0 351424 110060 pts/0 Sl 15:29 1:46 /usr/local/bin/python /usr/local/bin/scrapy crawl mongoHeadRecommendDetail
root 207 1.0 0.0 663680 100452 pts/0 S 14:58 0:27 python rundouban.py
root 8900 2.5 0.0 416604 99076 pts/0 Sl 15:27 0:22 /usr/local/bin/python /usr/local/bin/scrapy crawl channel_recommend
root 9051 2.4 0.0 413652 97940 pts/0 Sl 15:27 0:20 /usr/local/bin/python /usr/local/bin/scrapy crawl iqiyi_detail
root 6232 26.2 0.0 540584 78892 pts/0 Sl 15:17 6:21 /usr/local/bin/python /usr/local/bin/scrapy crawlall
使用以下 ps 命令格式可在输出中仅展示有关内存消耗过程的特定信息。

# ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head

PID PPID %MEM %CPU CMD
4094 4093 0.0 10.8 /usr/local/bin/python /usr/local/bin/scrapy crawlall
4017 100 0.0 10.6 python start.py
4044 100 0.0 10.6 python start_all.py
347 100 0.0 53.7 python runsearch.py
9795 9794 0.0 14.1 /usr/local/bin/python /usr/local/bin/scrapy crawl mongoHeadRecommendDetail
207 100 0.0 1.0 python rundouban.py
8900 8899 0.0 2.5 /usr/local/bin/python /usr/local/bin/scrapy crawl channel_recommend
9051 9050 0.0 2.4 /usr/local/bin/python /usr/local/bin/scrapy crawl iqiyi_detail
6232 6231 0.0 26.1 /usr/local/bin/python /usr/local/bin/scrapy crawlall
如果你只想查看命令名称而不是命令的绝对路径,请使用下面的 ps 命令格式。

# ps -eo pid,ppid,%mem,%cpu,comm --sort=-%mem | head

PID PPID %MEM %CPU COMMAND
4094 4093 0.0 10.8 scrapy
4017 100 0.0 10.6 python
4044 100 0.0 10.6 python
347 100 0.0 53.7 python
9795 9794 0.0 14.1 scrapy
207 100 0.0 1.0 python
8900 8899 0.0 2.5 scrapy
9051 9050 0.0 2.4 scrapy
6232 6231 0.0 26.1 scrapy
2) 如何使用 top 命令在 Linux 中查找内存消耗最大的进程
Linux 的 top 命令是用来监视 Linux 系统性能的最好和最知名的命令。它在交互界面上显示运行的系统进程的实时视图。但是,如果要查找内存消耗最大的进程,请 在批处理模式下使用 top 命令。

你应该正确地 了解 top 命令输出 以解决系统中的性能问题。

# top -c -b -o +%MEM | head -n 20 | tail -15

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4094 root 20 0 786792 250784 17176 S 13.3 0.1 3:11.80 /usr/local/bin/python /usr/local/bin/scrapy crawlall
4017 root 20 0 781296 245344 17128 S 20.0 0.1 3:10.43 python start.py
4044 root 20 0 777784 241760 17060 S 6.7 0.1 3:09.57 python start_all.py
347 root 20 0 864896 121756 9400 R 53.3 0.0 22:05.20 python runsearch.py
9795 root 20 0 351424 110192 17112 S 26.7 0.0 1:52.30 /usr/local/bin/python /usr/local/bin/scrapy crawl mongoHeadRecommendDe+
207 root 20 0 663680 100452 9344 S 0.0 0.0 0:27.69 python rundouban.py
8900 root 20 0 416604 99076 17180 S 0.0 0.0 0:23.99 /usr/local/bin/python /usr/local/bin/scrapy crawl channel_recommend
9051 root 20 0 413652 97940 17080 S 0.0 0.0 0:21.67 /usr/local/bin/python /usr/local/bin/scrapy crawl iqiyi_detail
287 root 20 0 680836 84836 9276 S 53.3 0.0 21:45.32 python runhotshort.py
6232 root 20 0 540584 78892 17596 S 13.3 0.0 6:29.85 /usr/local/bin/python /usr/local/bin/scrapy crawlall
6738 root 20 0 540088 78088 17164 S 0.0 0.0 1:21.48 /usr/local/bin/python /usr/local/bin/scrapy crawlall
9587 root 20 0 319576 78012 17132 S 0.0 0.0 0:21.64 /usr/local/bin/python /usr/local/bin/scrapy crawl mongoHeadRecommend
370 root 20 0 375324 74100 9204 S 0.0 0.0 0:27.03 python runweibo.py

如果你只想查看命令名称而不是命令的绝对路径,请使用下面的 top 命令格式。

# top -b -o +%MEM | head -n 20 | tail -15

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4094 root 20 0 786792 250784 17176 S 18.8 0.1 3:13.45 scrapy
4017 root 20 0 781296 245344 17128 S 12.5 0.1 3:11.66 python
4044 root 20 0 777784 241760 17060 S 12.5 0.1 3:10.89 python
347 root 20 0 837792 127168 9400 R 50.0 0.0 22:11.08 python
9795 root 20 0 351424 110192 17112 S 12.5 0.0 1:54.07 scrapy
207 root 20 0 663680 100452 9344 S 0.0 0.0 0:27.69 python
8900 root 20 0 416604 99076 17180 S 0.0 0.0 0:24.19 scrapy
9051 root 20 0 413652 97940 17080 S 0.0 0.0 0:22.01 scrapy
287 root 20 0 685188 89200 9276 R 43.8 0.0 21:52.67 python
6232 root 20 0 540584 78892 17596 S 18.8 0.0 6:33.94 scrapy
6738 root 20 0 540088 78088 17164 S 0.0 0.0 1:22.23 scrapy
9587 root 20 0 319576 78012 17132 S 0.0 0.0 0:22.02 scrapy
370 root 20 0 375324 74100 9204 S 0.0 0.0 0:27.03 python

————————————————
版权声明:本文为CSDN博主「一起学python吧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/myli_binbin/article/details/121249985


来源:https://www.cnblogs.com/javalinux/p/15957617.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 如何在 Linux 中找出内存消耗最大的进程

相关推荐

  • 暂无文章