前言

  • 前几天登录云服务器突然发现没几个服务内存竟然快占满了,于是赶快top查看,发现直接top查看的话 也不太好分析是哪个应用占用的内存比较大,于是谷歌了一番记录了以下几种查内存占用情况的方法。

查看内存占用情况的几种方法

free命令

  • 命令格式:free –m

  • 用于检查有关系统RAM的使用情况(查看系统的可用和已用内存)

  • linux主机可用内存计算公式:可用内存 =free +buffers +cached

vmstat指令

  • 命令格式:vmstat -s (参数)

  • 用于查看系统的内存存储信息,是一个报告虚拟内存统计信息的小工具。

  • vmstat 命令报告包括:进程、内存、分页、阻塞 IO、中断、磁盘、CPU。

/proc/meminfo 指令

  • 命令格式:cat /proc/meminfo

  • 用于从/proc文件系统中提取与内存相关的信息,这些文件包含有系统和内核的内部信息。

  • 你还可以使用命令 less /proc/meminfo 直接读取该文件。

  • 通过使用 less 命令,可以在长长的输出中向上和向下滚动,找到你需要的内容。

top 指令

  • 命令格式:top

  • 用于打印系统中的CPU和内存使用情况。

  • top 最好的地方之一就是发现可能已经失控的服务的进程 ID 号(PID)。

  • 有了这些 PID,你可以对有问题的任务进行故障排除(或 kill)。

  • 如果你想让 top 显示更友好的内存信息,使用命令 top -o %MEM,这会使 top 按进程所用内存对所有进程进行排序。

htop 指令

  • 命令格式:htop

  • 详细分析CPU和内存使用情况。

  • 如果未安装 htop,需先安装。

  • Ubuntu安装:apt-get update && apt-get install htop
  • CentOS安装:yum update && yum install htop

博主是用htop来查询内存占用具体进程的

  • 由于终端直接输入top命令无法快速查找到占用内存大的进程,所以需要以内存占用大小来排序
  • 命令格式:top -o %MEM

top-mem.png

  • 通过以上命令就可以清晰的看到是哪个服务占用内存较多,然后根据自身情况做一些优化。
  • 例如本次博主这边是uwsgi配置了四个进程导致占用了一大部分内存,上图是已优化过的,优化后整个服务器内存占用才0.6GB。

结语

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:https://www.loganjin.cn/article/linux-top/

许可协议:署名-非商业性使用 4.0 国际许可协议