![不合理的内存使用](https://linux22.com/image/95131/%E4%B8%8D%E5%90%88%E7%90%86%E7%9A%84%E5%86%85%E5%AD%98%E4%BD%BF%E7%94%A8.png)
我在 CentOS 上运行一个多进程 python 程序。该程序不需要大量内存。问题是我的 64GB 内存机器几乎内存不足,无法运行其他计算密集型任务。有人遇到同样的问题吗?
更新:
经过 %MEM 排序处理后,部分输出如下:
21922 haoyu 20 0 12.457g 1.204g 0 T 0.0 1.9 0:00.02 python
21871 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.02 python
21872 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.02 python
21895 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.02 python
21896 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.01 python
21897 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.03 python
21898 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.01 python
21899 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.02 python
21900 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.01 python
问题可能是我的多进程Python程序中的一些错误,看起来子进程没有正确关闭并且仍然占用一些内存。由于其中许多当前未积极使用 CPU,因此当应用不带选项的 top 命令时,我看不到它们。
答案1
在您所附的图像中,您有按 CPU 使用率而不是内存使用率排序的进程/程序。
看起来您运行的 python 程序仅使用 0.4% 的内存(以及 100% 的 CPU)。可能另一个进程/程序正在使用您服务器上的内存。
请运行命令,该命令将生成按内存使用情况排序的程序列表:
top -o %MEM -b -n 1 | head -20
并查看带有进程/程序名称的最后一列。
它应该给你一个问题的答案,您的机器上的内存在使用什么?。