如何解释Linux’top’命令的输出?

前端之家收集整理的这篇文章主要介绍了如何解释Linux’top’命令的输出?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在讨论了 HERE关于PHP-FPM如何消耗内存之后,我发现在top命令中读取内存时遇到了问题.这是重启PHP-FPM后的顶部屏幕截图.一切正常:大约20个PHP-FPM进程,每个进程消耗5.5MB内存(占总数的0.3%).

这是在重启PHP-FPM之前的老化服务器(上一次重启后的一天).在这里,我们仍然有大约25个PHP-FPM,内存使用率为2(10MB表示总数的0.5%).因此,使用的总内存应为600-700 MB.那么,为什么使用1.6GB内存呢?

解决方法

TL; DR 1

您的服务器位于某种virtuozzo / openvz / virtualization-du-jour容器中.试图理解记忆的使用是在风车上倾斜.

TL; DR 2

Linux吃了你的RAM!但是没关系,它适用于所有人.

长篇故事

让我们分解吧!

在Mem:部分,我们有:

> $n total:机器中物理RAM的数量
> $n使用:Linux消耗了多少内存,而不仅仅是进程的总和.
> $n free:Linux没有消耗多少RAM.这没有考虑到缓存和缓冲的内存本质上是“免费的”.
> $n buffers:缓冲区空间是存储已读取或待写的磁盘I / O块的位置.缓冲区是单个磁盘块的RAM表示.

在交换:部分,我们有:

> $n总计:自我解释.可用于交换页面的磁盘空间量.
> $n使用:自我解释.使用了多少磁盘交换空间.
> $n免费:Herp Derp.
> $n cache:与上面的缓冲区密切相关.它实际上是页面缓存的一部分,它本身在物理磁盘上没有空间.不要担心这次谈话的细节.

当你运行free -m时,有趣的部分就出现了.你会看到三行,所有数字都与top相关.我将以自己的电脑为例:

total       used       free     shared    buffers     cached
Mem:          8070       7747        323          0        253       5713
-/+ buffers/cache:       1780       6290
Swap:         5055          0       5055

Mem行显示以兆字节为单位的总RAM(在顶部总共为$n),使用了多少($n在顶部使用),多少是免费的(顶部是$n免费),共享多少(忽略),现在来得好! free -m中的缓冲区和缓存列与$n个缓冲区和$n缓存相关联.但是看一下以 – buffers / cache:开头的free -m的第二行.数学表明使用量实际上是(总) – ((used-buffers)-cached).免费是(总) – (新推出).

这是什么意思呢?这意味着Linux吃了你的RAM!简短的故事是Linux内核吞噬了RAM,因为它可用于磁盘缓存.除非你想尝试编译自定义内核,否则你无能为力.专业提示:不要.

RAM确实存在,可随意使用进程.这就是 – / buffers / cache:free -m中的行的含义.但是,你在非超级遮阳虚拟化容器中,这使得事情有点松懈.此时您无法用字节精度来记录内存.但是,你没有看到任何非常不寻常的行为.

保持冷静并进行.另外,获取物理服务器(除非您喜欢看起来像Kreskin的内存统计信息是您的SysAdmin).

原文链接:https://www.f2er.com/linux/402892.html

猜你在找的Linux相关文章