linux top命令详解

显然,top命令就是Linux系统中的“物理检查表”,短短几行就可以解释所有重要信息。
但别看产量庞大,其实核心亮点就那么几个。

我们首先讨论顶部最重要的摘要信息。
第一行负载均衡(LoadAverage)至关重要。
去年我们跑的3 000级别的项目中,CPU核心数为8 时,如果该值超过4 0就会卡顿。
记得用公式计算一下,如果超过5 就超载了。
另外,在进程状态统计中,僵尸进程(Z)是一个危险信号。
例如,守护进程的死亡会导致系统服务关闭。
很多人不重视这一点。
还有一个更重要的细节。
第五行内存中的空闲值并不代表可以分配多少,因为内核会将其缓存。
去年调试时我们差点就因为这个而误判了内存溢出。

一开始我也认为使用过多的Swap是一件坏事,但是后来我发现这是错误的。
当系统负载突然跳到8 0%时,交换区开始工作,这实际上是Linux自我拯救的过程。
等等,还有一件事。
%CPU 和 %MEM 应该一起看到。
例如,如果一个进程的CPU高但内存低,那么它可能是一个计算密集型任务,但如果CPU低而内存高,则一定存在内存泄漏。

建议使用Shift+P查看多核CPU分布。
这可以帮助您找到单核瓶颈。
但请注意,顶部部分默认仅显示前 2 0 个进程。
一旦开始,不要只看流程。
有时最坏的情况可能已经过去了。

linux常用命令查看内存方法

Linux 中有很多检查内存的命令。
最常用的是 free、top、ps、vmstat 和 grep。

上周我尝试了 free-h。
这是最简单的事情。
只要免费就可以了。
默认为 KB 单位。
如果您想查看 GB/MB,请添加 -h 选项。
比如free-ch。
将显示总计、已用、空闲、加速/缓存、可用。
很清楚。

我朋友用top比较多。
这是实时显示的。
要按内存排序,请按 M 键进行切换。
按 q 退出。
你会看到RES(实际内存)、%MEM(比例)、VIRT(虚拟内存)。
适合跟踪哪个进程正在消耗内存。

ps命令适合查看所有进程。
使用 ps aux --sort=-%mem。
这将根据内存使用情况从最大到最小排序。
前五个过程可以看得很清楚。
字段包括 PID、USER、%MEM、RSS 和 CMD。

vmstat适合查看整体情况。
运行 vmstat 1 每秒更新一次。
可以看看free、buff/cache、si/so等,可以大致了解内存交换的情况。

grep 经常与 ps 结合使用。
例如,ps aux | Java grep.就可以找到java进程了。
如果你想找到占用5 00M左右的内存,可以写ps aux | grep 5 00M.
经常使用这些命令后,您就会习惯它们。
免费取决于总金额。
从上面监视过程。
附注看看清单。
vmstat看的是整体情况。
grep 来查找特定的。
很容易区分。
没关系。