我有一个带有 9GB RAM、300GB HDD、3GB Swap、7 核的 VPS。操作系统是 CentOS 5.7 Final。
我在我的机器上运行了 postgres9.0,并进行了适当的调整(至少通过 PostgreSQL 的书/维基)。
大多数情况下,当一些复杂的查询运行时(复杂我的意思是选择最多 3 个连接),尽管我的 RAM 有大约 75% 未使用,但仍有大约 99% 的交换正在发生。
编辑:我在这里提到的空闲 RAM 是由 (free + buffered + cached) 计算的,'free -m' 显示的实际空闲几乎是 ~2%。因此,如果我一开始就错了,请纠正我。
此外,它搞砸了我的磁盘 IO,这在大多数情况下达到了 ~100% 并减慢了其他一切。(我倾向于认为我的磁盘有问题。)
我不明白发生这么多交换的原因。是因为上下文切换吗??我的处理器大部分时间都处于空闲状态,而在选择时间期间 IO 等待时间高达 30%。
如果有人能对此有所了解,我们将不胜感激。
谢谢。