我们的服务器每周至少会出现一次性能非常低下的情况。内存将进入交换区大约 10-15GB,服务器有 36GB RAM。
我的问题是我能否找到服务器何时进入交换状态或导致其进入交换状态的原因。
我有一种感觉,有一个进程导致了问题,但当我检查进程列表时,一切似乎都很正常。不过此时服务器已经进入交换状态。
答案1
这似乎是一篇详细介绍交换性的好文章:
https://en.wikipedia.org/wiki/Swappiness
但我想知道性能不佳是否是由于交换或“其他原因”造成的。
交换是因为程序有一个随时间变化的“工作集”,其想法是交换“不需要的页面”。
当现有内存不够大时,系统“开始交换”。
缓慢可能表明运行队列变得太高(想要运行的进程数量)——如果内存负载是用户/程序的函数,更多的用户将想要运行更多的程序(并且可能是巧合发生交换)当系统速度较慢时)。
这看起来也很不错:
http://www.howtoing.com/commands-to-monitor-swap-space-usage-in-linux/
(我从来不知道扫视命令——总是在学习新东西)
这些应该为您提供帮助诊断问题的工具。