内存问题。如何使用 free 来识别根本原因

内存问题。如何使用 free 来识别根本原因

我在我的系统上运行两个应用程序。

当我并行运行两个应用程序时,内存在几分钟内就被消耗殆尽了。

[以下数据并非实际数据,仅供解释]

初始状态..

             total       used       free     shared    buffers     cached
Mem:          3926       1193       2732          0         64        626
-/+ buffers/cache:        502       3423
Swap:         3990          0       3990

内存已满状态

             total       used       free     shared    buffers     cached
Mem:          3926       1193        732          0         64       2626
-/+ buffers/cache:        502       3423
Swap:         3990          0       3990

我的第一个问题:

1) 在此状态下,我的屏幕挂起并显示内存不足错误。但据了解,它仍有 3423MB 的可用内存可供使用。有人能提示一下我为什么会收到此错误吗?

为了找到哪个程序是罪魁祸首,我尝试逐个终止该程序。

当我终止程序 1 时,它会释放 100MB 的缓存内存并将其移至可用内存。

             total       used       free     shared    buffers     cached
Mem:          3926       1193        832          0         64       2526
-/+ buffers/cache:        502       3423
Swap:         3990          0       3990

但是当我终止 program2 时,它会释放剩余的 1900MB 缓存内存。它变成了这样

             total       used       free     shared    buffers     cached
Mem:          3926       1193       2732          0         64       626
-/+ buffers/cache:        502       3423
Swap:         3990          0       3990

问题2 :-

程序 2 是否比程序 1 占用更多资源?缓存内存使用情况是否表明它使用了更多内存?

相关内容