当尝试评估内存使用情况并获取可用内存大小时,百分比还是大小值更合适?与 CPU 使用率相比,我知道人们使用平均负载除以核心数,而不是单独使用平均负载。
根据您选择的索引,当您考虑最好等待而不是提交更多作业时,它的阈值是什么?与 CPU 使用率相比,有人说它使用了 70%,有人说它使用了 100%。
感谢致敬!
答案1
测量时要小心谨慎。根据我的经验,简单地运行free -t
几乎总是会显示所有内存都已使用,而所有交换空间都未使用。这并不能真正反映出全部情况。
注意“ -/+ buffers/cache
”行,它显示了内核在何处使用内存来处理各种内容。这将显示系统上可用的一些“弹性”。不过,不要计划使用所有缓存空间,因为转到磁盘而不是缓存也会影响性能。
你可以有效地增加盒子里的内存,直到操作系统不能将所有内存用于缓冲区/缓存并持续观察性能改进。
反过来,实际上回答你的问题,不要让缓冲区/缓存太小...实际数字将因你的系统和负载而异。附近机器上的两个样本显示此缓存在 700 MB 到 1 GB 之间,占总内存的 40-50%。
或许,所有这一切都可以在内核的某个地方进行调整。
答案2
这实际上取决于您对内存使用量测量的百分比和大小值的偏好。
我见过的大多数硬核技术人员更喜欢大小值,因为它更准确。1GB 系统中 90% 的使用率意味着您只剩下 100MB - 是时候注意磁盘抖动了!8GB 系统中 90% 的使用率意味着您仍然有 800MB 的剩余空间。
理论上,内存应该 100% 饱和,这意味着所有指令和数据都缓冲在 RAM(最快路径)中,而不是存储在硬盘上。
我个人喜欢在进行大量多任务处理时留出大约 300MB 的 RAM。这样我就可以打开几个网页以供快速参考,而不会拖慢系统速度。
编辑哦,我刚想起来你实际上是在问服务器……那么在这种情况下,你应该留出多少内存取决于你提交的作业类型。如果你可以完全控制内存使用,我建议你只提交内存可以容纳的作业数量(因为你无论如何都可以完全控制,所以没有必要让内存闲置,是吧?)