Goo*_*bot 28 linux memory shell top
根据此处关于如何PHP-FPM
消耗内存的讨论,我刚刚发现在top
命令中读取内存时出现问题。这是我top
刚刚重新启动后的屏幕截图PHP-FPM
。一切正常:大约 20 个PHP-FPM
进程,每个进程消耗 5.5MB 内存(占总数的 0.3%)。
这是重新启动之前的旧服务器PHP-FPM
(上次重新启动后一天)。在这里,我们仍然有大约 25PHP-FPM
个内存使用量翻倍(10MB 表示占总数的 0.5%)。因此,使用的总内存应为 600-700 MB。那么,为什么要使用 1.6GB 的内存呢?
Wes*_*ley 36
您的服务器位于某种 virtuozzo/openvz/ virtualization-du-jour容器中。试图理解内存使用情况就像风车一样。
Linux 吃了你的内存!但这没关系,它对每个人都有效。
让我们分解它!
在本Mem:
节中,我们有:
$n total
:您机器中的物理 RAM 量$n used
:Linux 消耗了多少内存,而不仅仅是进程的总和。$n free
:Linux 没有消耗多少 RAM。这并没有考虑到缓存和缓冲的内存本质上是“空闲的”。$n buffers
:缓冲区空间是存储已读取或等待写入的磁盘 I/O 块的地方。缓冲区是单个磁盘块的 RAM 表示。在本Swap:
节中,我们有:
$n total
: 不言自明。可用于交换页面的磁盘空间量。$n used
: 不言自明。使用了多少磁盘交换空间。$n free
: 赫普德普。$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
Run Code Online (Sandbox Code Playgroud)
Mem 行显示总 RAM(以兆字节为单位)($n total
顶部)、已使用量($n used
顶部)、空闲量($n free
顶部)、共享量(忽略),现在是好的部分!在buffers
与cached
列free -m
关联到,可以预见,$n buffers
和$n cache
。但是看看以free -m
开头的第二行-/+ buffers/cache:
。数学表明,使用量实际上是(总计)-((已用缓冲区)-缓存)。免费是(总计)-(新使用的)。
这是什么意思呢?这意味着Linux 吃了你的 RAM!简而言之,Linux 内核会吞噬 RAM,因为它可用于磁盘缓存。除非您想尝试编译自定义内核,否则您无能为力。专业提示:不要。
RAM 确实存在并且可供进程随意使用。这就是 中的-/+ buffers/cache:
行的含义free -m
。但是,您处于非管理程序虚拟化容器中,这让事情变得有些松散。在这一点上,您根本无法以字节精度来评估您的内存。但是,您没有看到任何异常异常的行为。
保持冷静并进行。另外,获得一台物理服务器(除非您喜欢看起来像 Kreskin 是您的系统管理员的内存统计数据)。
归档时间: |
|
查看次数: |
66624 次 |
最近记录: |