如何解释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总计:自我解释.可用于交换页面的磁盘空间量. 当你运行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). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 是否有一个* Nix工具可用于格式化命令输出格式太宽
- 网站运维技术与实践之数据采集、传输与过滤 谈谈
- linux-kernel – / proc // task // stat中的utime和stime字
- Linux文件系统详解
- linux – 在自编写的tcp服务器上使用哪些端口
- 如何在Linux上通过NFS加速和缓存mmap文件访问?
- linux – /etc/resolv.conf命令不受`ping`的尊重
- linux – 如何使用PAM检查某些用户的LDAP密码,但始终使用本
- linux – Ubuntu:如何链接二进制文件
- Alpine Linux添加Let‘s Encrypt CA证书或者自签CA证书