我在工作中使用服务器在 RAM 中运行模型,这些模型基于中等规模的数据集(大概 10GB 到 100GB)。任何时候,这台服务器上都只有少数人。服务器拥有大量 RAM(超过 1TB)和许多处理器。我们发现,当 RAM 使用率超过一个看似适中的阈值时(比如三个人将总共 100GB 的数据加载到 R 或 Stata 等应用程序中的 RAM 中),服务器就会变得非常慢。在我家里的 PC 上只需几秒钟的操作在服务器上需要几个小时或几天。我不确定为什么会出现这种情况:好像服务器不想释放缓存的内存,即使对当前保存在内存中的数据进行操作也需要很长时间(CPU 负载很低:<10%)。即使是命令行上的内容也需要一段时间:列出文件可能需要几秒钟,等等。我自己没有权限在服务器上编辑内容。有人知道这里可能发生了什么,或者我可以在不具有 root 访问权限的情况下寻找什么吗?系统管理员不知道发生了什么事。
我们正在运行 Red Hat Enterprise 6.9。
非常感谢你的帮助!
答案1
这里有一些需要检查的事项的想法,有些可能需要,sudo
但有些希望不需要(比如cat
)。
检查是否有任何交换
cat /proc/swaps
swapon -s
swapon --show
检查“swappiness”和
cat /proc/sys/vm/swappiness
尝试监控温度或 CPU 频率,也许某些东西过热和/或减速。
如果内存过热,我预计会出现一系列随机错误,除非它只有 50 个内存条中的 1 个,而且我认为内存很少有温度监视器……
dmesg
或里有什么东西/var/log/syslog
吗?使用以下方法清除/刷新磁盘缓存
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
可能是有大量的磁盘或网络活动,请使用类似
iftop
或的程序进行检查iotop