![Ubuntu - 如何确定服务器交换的原因?](https://linux22.com/image/578086/Ubuntu%20-%20%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BA%A4%E6%8D%A2%E7%9A%84%E5%8E%9F%E5%9B%A0%EF%BC%9F.png)
我的一台服务器几天就会崩溃一次。
它执行网络服务+一些后台工作,例如XML文件处理。
如果你看一下截图http://awesomescreenshot.com/075xmd24您将看到,尽管服务器有大量可用内存,但它仍会进行交换。为什么会发生这种情况?为什么操作系统不使用可用内存而是进行交换?
网络服务流量低(谷歌抓取时负载可能很高)
服务器详细信息:Ubuntu 11.10 oneiric i386 scalarizr(0.7.185)python 2.7.2、chef 0.10.8、mysql 5.1.58、apache 2.2.20、php 5.3.6、memcached 1.4.7 Amazon EC2(us-west-1)
谢谢!
答案1
内核会主动交换不太活跃的页面,而不是在物理 RAM 完全填满时才进行被动交换,此时应用程序需要被阻止等待通过交换释放内存。
您可以弄乱swappiness
内核参数,但不要这样做,除非交换行为导致问题 - 如果有更多证据,没有理由认为交换的使用与崩溃有任何关系。