linux常用命令查看内存方法

哦,你的总结很全面。
基本上,我们将讨论一些在 Linux 上查看内存的常用命令。
不过这些命令都有各自的用法,不能简单粗暴地使用。

上周,一位客户来看我。
由于服务器已停止工作,该男子正在敲击他的终端。
他直接使用 free -h 看到内存只剩下 5 0MB,大吃一惊,立即重启了系统。
结果我看top的时候发现有一个Python爬虫进程打开了太多的子进程,而且几乎全部都在使用swap,但是进程本身并没有什么问题。
盯着free直接重启不是浪费时间吗?
看看特别适合快速扫描全局的免费命令。
我通常编写脚本来监控服务器并喜欢使用 free -m | awk '{print $1 ,$2 ,$3 ,$4 ,$5 ,$7 }' 捕获总内存、已用内存、可用内存、缓存和交换空间的键值,以便于阈值警报。
我经常使用你提到的 -h 和 -s 选项,尤其是 -h。
这使得非技术同事在阅读报告时无需数零。

我每天都会使用 top 命令,尤其是在调试应用程序时。
正如你所说,按 M 切换内存排序非常重要。
上次我检查 Java 进程内存爆满时,主页显示该进程的 RES 突然飙升至 8 G。
我再次按下Shift+P,发现CPU没有改变。
这时我才确认是内存泄漏。
然而,top更新速度太快,很容易被数据波动蒙蔽双眼,尤其是在内存较大的服务器上。

说到PS,我已经踩进了一个大坑。
一旦我发现特定脚本中的异常,我就直接运行 ps aux | grep [xss_clean] 但什么也没找到。
后来我发现脚本名里有一个参数,就愚蠢地用常规的 grep -E 来查找。
你提到的 -e 选项非常有用,可以让你查看所有进程,但我更喜欢使用 ps e -o pid,%mem,cmd ,它简洁明了。
我同意 ps aux --sort=-%mem 的用法。
如果您发现大内存用户,这尤其有用,但您可能需要添加 head -n 1 0否则会冻结。

我很少使用 vmstat 命令,但这确实是一个神器。
上次服务器突然频繁变动。
Free没有检测到,但是vmstat 1 直接显示si增加到了几MB/秒。
我们很快发现这是一个磁盘 I/O 瓶颈。
但是vmstat输出的字段太多,我一开始记不住。
我依靠检查文档并将公共字段输出到脚本。

最后一个grep是最容易被忽视的,但我认为是最实用的总结。
我给出的 grep 5 00M 的例子非常重要。
查找特定内存范围中的进程是一个救星。
我有一个使用 ps aux --sort=-rss | 的监控脚本只需使用grep Java | 捕获Java进程的PID和内存使用情况即可awk '{print $2 ,$9 }' 并将其直接传递给 Kill 。

一般来说,这些命令都不是通用的,应根据具体情况进行选择。
如果您是 Linux 新手,我们建议您首先熟悉 free -h 和 top M。
这两个可以处理您 9 0% 的日常问题。
随着深入,慢慢学习ps的各种选项和vmstat的性能分析。
grep 可以与所有命令一起使用,是一个很好的帮手。

无论如何,这取决于你。
当您经常使用这些命令时,知道使用哪些命令以及何时使用将成为第二天性。
我仍然想知道如果客户当时使用htop是否会更早发现问题......

LINUX查看硬件信息的命令_LINUX查看CPU内存硬盘等硬件信息汇总

你提到的命令确实很完整。

上周我尝试使用 lscpu 检查 CPU,速度相当快。

Free-h还可以让你一目了然地看到回忆。

hdparm-I有点麻烦,因为它需要root。

我写这篇文章是因为总结得很好。

linux如何查看内存命令

top命令:实时显示内存、CPU、进程使用情况。
从顶部内部开始。

htop命令:增强版,支持鼠标操作。
输入 sudo apt install htop 进行安装。
输入 htop 启动。

free命令:检查内存量、已使用和空闲。
输入free,-h参数以MB/GB为单位显示。

/proc/meminfo:详细的内存数据。
输入cat /proc/meminfo即可查看。

vmstat命令:内存、RES、IO、CPU数据。
输入vmstat即可查看。
vmstat 2 5 每2 秒刷新一次,共刷新5 次。

不要这样做:他们随机安装来自未知来源的增强命令。
首先检查系统兼容性。