7fc9d23660db6223f68ff7302138c305.png

更多Python学习内容:ipengtao.com

监控系统的内存使用情况是系统管理和性能优化的关键部分之一。在 Linux 环境下,有多种方法来实现对内存的监控和管理。本文将介绍 12 种常用的方法,涵盖了从基本的命令行工具到更高级的监控工具的使用,帮助您全面掌握系统的资源使用情况。

1. free 命令

free 命令用于显示系统内存的使用情况,包括总内存、已使用内存、空闲内存等。

free -h

示例输出:

total        used        free      shared  buff/cache   available
Mem:           7.7G        3.1G        1.1G        1.2G        3.5G        2.3G
Swap:          2.0G          0B        2.0G

2. top 命令

top 命令可以实时查看系统的各项资源使用情况,包括内存、CPU、进程等。

top

示例输出:

Tasks: 257 total,   1 running, 256 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.0 us,  0.7 sy,  0.0 ni, 98.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7818.7 total,   1174.9 free,   3291.9 used,   3352.0 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4183.2 avail Mem

3. vmstat 命令

vmstat 命令用于显示系统的虚拟内存使用情况,包括内存、磁盘、CPU 等。

vmstat 1 5

示例输出:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1221008 330940 922332    0    0     0     1   13   19  0  0 100  0  0

4. sar 命令

sar 命令可以收集、报告和保存系统的性能数据,包括内存、CPU、磁盘等方面的信息。

sar -r

示例输出:

08:10:01 PM kbmemfree kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
08:20:01 PM   1259828  4397864   2285128     29.36    248272   3015904   2381884     15.59   2404508   2014540        52
08:30:01 PM   1243748  4381748   2302040     29.54    248672   3018064   2381884     15.59   2411572   2017944        60

5. /proc/meminfo 文件

/proc/meminfo 文件包含了系统的内存信息,可以通过查看该文件来获取内存使用情况。

cat /proc/meminfo

示例输出:

MemTotal:        7818180 kB
MemFree:         1207196 kB
MemAvailable:    4115164 kB
Buffers:          329540 kB
Cached:          2884056 kB
SwapCached:            0 kB

6. pmap 命令

pmap 命令用于显示进程的内存映射信息,包括进程占用的内存地址、权限、大小等。

pmap PID

示例输出:

0000559b7ffac000   2060K r-x--  /usr/bin/bash
0000559b801cb000    244K r--s-  /usr/lib/locale/locale-archive
0000559b801ff000      4K r----  /usr/lib/locale/locale-archive
...
mapped: 202476K    writeable/private: 456K    shared: 4K

7. smem 命令

smem 命令用于以更友好的方式显示内存使用情况,并支持按照进程进行排序。

smem

示例输出:

PID User     Command                         Swap      USS      PSS      RSS
    1 root     /sbin/init                      0.00%    0.00%    0.01%    0.01%
    2 root     [kthreadd]                      0.00%    0.00%    0.00%    0.00%
...
 2135 user     /usr/bin/firefox                0.00%    0.51%    1.46%    3.13%

8. atop 命令

atop 命令是一个交互式的系统监控工具,可以显示系统资源使用情况的详细信息。

atop

示例输出:

ATOP - myhostname             2022/01/01   08:00:01               10s elapsed
  PR  VIRT  RES  SHR S  CPU% MEM%   TIME+  COMMAND
   1  2500  456  312 S   0.0  0.0   0:00.01 bash

9. htop 命令

htop 命令是一个交互式的系统监控工具,类似于 top 命令,但提供了更加友好的界面和功能。

htop

10. glances 命令

glances 命令是一个交互式的系统监控工具,可以显示系统各项资源的使用情况,并支持网络监控和插件扩展。

glances

11. Grafana + Prometheus

Grafana 和 Prometheus 是一组流行的开源监控工具,可以实现对系统资源的监控和可视化。

12. 自定义脚本

还可以编写自定义的监控脚本,通过调用系统命令或读取/proc 文件系统来获取系统资源使用情况,并根据需求进行处理和展示。

通过以上 12 种方法,可以全面掌握 Linux 系统的内存使用情况,及时发现和解决资源瓶颈问题,确保系统的稳定性和性能表现。

如果你觉得文章还不错,请大家 点赞、分享、留言 ,因为这将是我持续输出更多优质文章的最强动力!

更多Python学习内容:ipengtao.com


如果想要系统学习Python、Python问题咨询,或者考虑做一些工作以外的副业,都可以扫描二维码添加微信,围观朋友圈一起交流学习。

b0f7628198d77fc378bd9360faa4a424.gif

我们还为大家准备了资料和副业项目合集,感兴趣的小伙伴快来找我领取一起交流学习哦!

7a16ffdd337e1b0231fb9bef690bd5ac.jpeg

往期推荐

Linux命令高效地执行文本搜索操作

Linux中线程和信号的关系

Linux内存泄漏检测实现原理与实现

Linux中的read命令详解:交互性脚本编写的利器

Linux rsync:轻松实现文件的增量备份

ifconfig,一个好用的 Linux 命令!

Linux中tar命令的几个高级用法

点击下方“阅读原文”查看更多

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐