怎么监控Linux系统的内存使用

您所在的位置:网站首页 linux服务器内存 怎么监控Linux系统的内存使用

怎么监控Linux系统的内存使用

2024-07-11 23:59| 来源: 网络整理| 查看: 265

了解系统的RAM使用量是有几个好处的。首先,它可以让你了解是否有必要升级服务器或者计算机的内存量。如果你看到内存使用率经常接近满容量,它可能表明你的系统需要升级。

另一方面,他还可以帮助你跟踪系统上的问题。内存使用量的激增可能表明计算机上运行的进程有问题。在这篇针对Linux管理员的教程中,我们将介绍一些检查和监控Linux上RAM使用情况的方法。

在这个教程你将要学习:

使用free命令检查内存用量使用free命令持续监控内存用量free命令是怎么工作的?使用top命令检查内存用量使用htop命令检查内存用量 使用free命令检查内存用量

free命令提供了一个非常快速和简单的方式去查看系统当前的内存使用率。free命令的输出结果需要一些知识点去解释,但是下面我们会讲到。了解一些命令选项会很方便。下面是我们的测试系统上free命令向我们展示的内容:

# free total used free shared buff/cache available Mem: 2035476 627700 443420 19828 964356 1231164 Swap: 969960 0 969960

正如你所看到的这样,它不是一个简单的东西去解释它。这主要是因为默认情况下输出是kb单位。-h 选项,代表人类友好可读的,帮助我们更清楚的理解输出:

# free -h total used free shared buff/cache available Mem: 1.9G 784M 145M 20M 1.0G 1.0G Swap: 947M 0B 947M

现在,即使只看一眼,这些值也清晰的多。这个输出告诉我们,我们的系统有大约2GB的物理内存和大约1GB的交换内存。让我们把这些列中表示的细节分解一下,因为这里的术语有点混乱。

Total: 这一列很明显,它显示了在你的操作系统上安装了多大的物理内存,以及交换文件的大小 Used: 此列列出当前正在使用的内存量 - 但是等等,这并不像听起来那么直观。仅仅因为内存“in use” 并不一定意味着任何进程或应用程序都在积极的利用它。

而“used”列确实表示当前系统中各种程序正在使用的RAM,同时它还包含了内核用于缓冲(buffering)和缓存(caching)的RAM。这使得读写操作更加的高效,但内核会在进程需要时重新分配该内存

这一列中的数字相当于:total-free-buffers-cache

Free: 此列列出了完全未使用的内存量。这里的值通常很小,因为linux将大部分空闲RAM用于缓冲(buffers)和缓存(cache),而不是让它完全闲置。正如上面您在上面实例中所看到的这样,我们的测试机器只有145MB的完全空闲内存。

Shared: 这一列显示了专用于tmpfs "temporary file storage"的内存量。顾名思义,这个文件系统存储临时文件以加快计算机上的操作。在Linux中,tmpfs表现为一个挂载的文件系统,尽管这些文件实际上都没有被写入磁盘 - 它们存储在RAM中,因此这一列有必要显示在这里。

对于好奇的人来说,可以使用df命令观察系统的tmpfs存储空间:

# df -h --type=tmpfs Filesystem Size Used Avail Use% Mounted on tmpfs 199M 1.4M 198M 1% /run tmpfs 994M 0 994M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 994M 0 994M 0% /sys/fs/cgroup tmpfs 199M 36K 199M 1% /run/user/1000 tmpfs 199M 0 199M 0% /run/user/0

Buffer/Cache: 这一列包含缓冲区和缓存的总和。Linux利用buffer和cache使读和写操作更快 - 从内存中读取数据比从磁盘上读取数据要快得多。这里的大部分内存都可以在进程需要时释放掉

你也可以指定-w(wide)选项分别看到这两列:

# free -h -w total used free shared buffers cache available Mem: 1.9G 780M 82M 20M 109M 1.0G 1.0G Swap: 947M 0B 947M

Available: 此列包含对可用内存的估计(准确的,但仍然是估计)。此列中的数字是free列和可用于重新分配的缓存RAM的总和

如果你想简单的回答这个问题“我的系统有多少可用的空闲RAM?”,那么可以看这一列。同样的,要计算当前有多少内存在使用(不考虑buffer and cache),从总内存中减去可用内存

使用free命令持续监控内存用量

当运行free命令时,它会显示当前RAM的使用情况。但free命令也有一些持续运行的选项,以防你需要关注一段时间的使用情况。

如果你希望查看在系统上执行某些任务时对内存的影响时,例如打开一个资源密集型程序,这将非常方便。

-s (seconds)开关允许free命令连续运行,每隔指定的秒发出新的输出,例如,每3秒执行一次free命令:

# free -s 3

要停止运行,只需按 Ctrl+C。

如果你只是想free命令运行一定的次数,你可以使用-c (count option)。例如,这个命令将要运行3次在退出程序之前:

# free -c 3

当没有-s选项时,count选项每秒发出新的输出。但是你可以随意组合这两个开关以获得你想要的确切行为。例如,要使free命令输出人类阅读友好的并且每5秒输出一次,一共输出20次:

# free -h -s 5 -c 20 free命令是如何工作的?

值得一提的是free命令实际上只是一种查看以显示在其他地方的信息的简洁方式。如果你想直接查看源代码,可以看看/proc/meminfo伪文件:

# more -10 /proc/meminfo MemTotal: 2035476 kB MemFree: 95280 kB MemAvailable: 1036360 kB Buffers: 116180 kB Cached: 931872 kB SwapCached: 36 kB Active: 1146732 kB Inactive: 589208 kB Active(anon): 676400 kB Inactive(anon): 32892 kB --More--(0%) 使用top命令检查内存用量

尽管free命令在显示系统上总体RAM利用率方面做得很好,但它并没有告诉我们那些任务正在消耗内存。这正是top命令的优势所在,它显示系统上每个进程的内存利用率。

# top

注意这个%MEM列: 在这里插入图片描述 要按内存使用情况对top命令进行排序,请在运行top命令后按shift + m。这将允许你快速查看哪些进程占用了最多的内存,并可以持续监控它们的使用情况。

只需要按q就可退出top

使用htop命令检查内存使用情况

一个结合了两个命令有点的程序怎么样?htop工具可以清楚地显示RAM的总体利用率,不断更新统计数字,并向我们展示了每个进程使用了多少内存。

与free和top不同,Linux默认情况下通常不包含htop。下面是如何安装它:

Ubuntu and Debian:

$ sudo apt-get install htop

CentOS and Red Hat:

# yum -y install epel-release # yum install htop

Fedora:

# dnf install htop

安装完成后,只需键入htop来运行它。

# htop

在这里插入图片描述 整个系统的RAM利用率显示在屏幕的顶部,直接点击MEM%就可进行排序,舒服。

随时按q退出htop。

总结

在本文中,我们了解了如何检查和监控linux系统上ram利用率。我们了解了多种可以帮助我们进行监控的工具,以及如何有效地使用这些工具。 使用本指南中的各种方法,您总是能够确定系统的ram使用情况。包括那些进程正在积极地使用它。这可以提示你系统问题,或帮助确定你的系统是否会从内存升级中收益。

参考链接:https://linuxconfig.org/how-to-monitor-ram-usage-on-linux



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3