linux常用命令查看内存方法

需要明确的是,Linux 使用以下方法来检查系统内存:free、top、ps、vmstat 和 grep。
这些就像不同的军事单位,根据情况使用。

免费是最明显的。
比如,去年我们跑一个电商项目的时候,半夜内存闹钟突然响了。
我刚刚做了一个free-h,发现只剩下1 .2 GB空闲,buff/cache已经占用了3 GB。
后来发现是缓存没有清除。
我用-s5 秒刷新,看了半个小时才发现问题。
另请注意,free可用的输出比free更可靠,系统会自动计算实际可以分配给新进程的数量。
还有一个更重要的细节。
如果swap和free一起使用过多,比如si/so每秒几百KB,就意味着物理内存将无法支持,需要增加内存或者优化进程。

一开始我以为选择TOP和PS就够了,后来发现错了——TOP适合跟踪某个进程,比如监控Chrome是否吃掉了8 GB内存(参见RES和%MEM); ps适合扫描整个图像,使用psaux --sort=-%mem可以快速找到窃取内存的Java进程(RSS和%MEM是重灾区)。
vmstat 更加残酷。
去年运行大数据作业时,vmstat1 花费了长达一个小时进去发现免费徘徊在1 %左右。
再加上Iovet不断增加,最终确定这是磁盘读写速度慢导致的。
很多人没有注意到这一点,认为内存就足够了。

危险一:不要乱用葡萄。
例如,直接使用 grep "java" 进行过滤可能会错过 Java-Agent 监控进程。
准确地说,您必须使用 grep "java\|agent"。

简而言之,在查看内存时,不要只关注一个命令。
Free 查看总数,Top 查看成绩最好的学生,PS 扫描整个班级,VMstat 查看出勤率,Grep 查看作弊者。
您认为 Htop 比 Top 好多少?

linux怎么查看内存大小

老实说,当我在 Linux 系统上查看内存信息时,我还是摸着石头过河。
这些命令都有其优点,如果使用正确,可以帮助您快速识别问题。

首先我们来谈谈自由命令。
这绝对是您入门的首选。
例如,上次我在虚拟机上运行测试时,它突然内存不足。
free -h 直接标记GB/MB。
这比查看一长串数字要直观得多。
至于交换线,我记得有一次添加了一个4 GB的交换分区。
当我检查免费功能时,我发现它们没有任何效果。
后来我发现swapoff命令是罪魁祸首。
top命令有趣的部分是动态监控。
我们有一个全天 2 4 小时开放的服务器。
半夜我发现我的记忆力达到了9 0%。
我赶紧打开顶部,按M键进行排序。
几个Java进程出现在我的面前。
我杀掉了当时占用内存最多的进程,系统立刻软着陆了。
完成后按 q 即可。
不要误按 Alt+F4 您的计算机可能会死机。

vmstat -s 对于像我这样想要查看原始数据的人来说很有用。
上次我调试内核模块时,我注意到缓冲区/缓存突然爆炸。
此命令允许您查看确切的分配情况(以 KB 为单位)。
但请注意,此命令在 SLES1 2 上将单位显示为 K 而不是 B。
当时和同事讨论了很久,后来查了Red Hat的文档终于明白了。

说到cat /proc/meminfo,绝对是基础运维的瑞士军刀。
在编写自动化脚本时,您经常使用正则表达式来捕获 MemAvailable 行。
这是因为它比免费提供的更准确。
记得去年我们在处理缓存污染问题时,发现一个C++程序的写缓存没有被锁定。
你可以通过查看 /proc/meminfo 中的 Buffers/Cached 来猜测。

说真的,这些命令就像查看汽车的不同仪表板一样。
free -h适合日常体检,top适合紧急灭火,vmstat -s适合详细分析,/proc/meminfo适合维护记录。
关键是知道何时向左转动方向盘以及何时踩刹车。

linux查看内存大小命令是什么

它最常用于直接发音自由命令。

free-m是最直观的,看总行有多少MB就可以了。

cat/proc/meminfo 包含最完整的信息,但数量以 KB 为单位给出。

MemTotal 是您必须自行转换的实际内存量。

缓存和交换分区怎么样?