服务器使用交换,剩下大量资源

我有一个交换256 MB的Centos 7。 我一直有至less1GB的空闲RAM内存,我的CPU永远不会超过60%的使用量。 但任何时候我检查交换使用它使用大约200 MB! 我的Swappiness是30,一切正常。 但我真的很好奇这个Centos正在发生什么。

我正在运行LAMP,就是这样,没有什么幻想。 那么,我该如何摆脱这种交换高使用率呢? 是否可以检查谁/写什么应用程序?

按要求, free -m输出:

  total used free shared buff/cache available Mem: 1991 171 1684 2 134 1771 Swap: 255 239 16 

我发现Apache正在交换很多东西。 我有很多空闲的内存,为什么交换? 检查下面的图像。

图片http://oi57.tinypic.com/r23kh2.jpg来自http://tinypic.com/view.php?pic=r23kh2&s=8#.Vfr74PlViko

所以SO不允许我发布图片,所以我发布在上面的链接。

总之,这是正常的行为,对你有益。 你有更多的未来I / O的内存,而你可能永远不会使用这些交换页面。

这在这里得到了很好的回答

这是一个常见的误解,交换分区会以某种方式减慢你的系统。 没有交换分区并不意味着内核不会从内存中驱逐页面,这只是意味着内核对于哪些页面要驱逐的select较less。

这是我开始的地方

我们将会编辑更多关于您的系统的信息。 我会发表评论,但格式不会工作。

什么是使用swap swap_usage.txt

获取每个守护进程 py_mem.txt的 实际(或接近实际)内存使用情况

你也应该记下任何有旧文件的tmpfs文件系统。 这是由交换支持,并将换出,如果你不访问的文件。

[更新]基于你的编辑,每个Apache进程约10MB将build议我正在运行prefork,可能mod_php或类似的脚本语言背后。 这是常见的, 虽然不是理想的Apache如果你使用PHP。 您可以通过优化代码来减less使用量。 您还可以通过减lessMaxRequestsPerChild来减less平均内存使用量,但这也可能会降低服务器的性能。