(不要担心,我不是问我的设置应该是什么,要求我读了一些相互矛盾的build议背后的理论)
我的应用程序是轻量级的,没有太多的负载,但是当请求进来时(在整个LAMP堆栈的响应时间为20ms以下),它需要运行得像润滑脂一样。
我把swappiness从60减less到10,而服务器从来没有在交换中存储过一个字节的数据,这似乎是有道理的,因为我的16GB内存只有6GB左右,所以我宁愿把所有内容都放在内存中以减less延迟因此响应时间(服务器有一个旋转光盘,没有固态硬盘)。
我最近升级到14.04.1 LTS,并且今天注意到4096k被存储在交换中,尽pipe只有6.5GB的内存被使用。 所以我查了一下这个设置,回到了60,升级的时候肯定发生了。
我去做了一些研究,我读到的文章build议像桌面应用程序这样的低设置为10,因为服务器可能受益于更高的设置,如默认60。
其中一些文章提出这是因为服务器具有不同的性能要求,并谈论有512MB内存的服务器。 我可以理解你为什么要用低内存交换,但在我的情况下,除非绝对必要,否则绝对不会交换是最好的select? 还是我错过了什么?
我所指的文章是: https : //sites.google.com/site/easylinuxtipsproject/first#TOC-Decrease-the-swap-use-very-important-
https://help.ubuntu.com/community/SwapFaq#What_is_swappiness_and_how_do_I_change_it.3F
感谢您的任何build议。
如果你的服务器专门用于这个单一的应用程序及其需求,那么减lessswappiness值是有道理的。
另一方面,如果你的服务器是共享服务器,运行许多不同的应用程序,其中一些应用程序很less使用,那么更多的swappiness意味着空闲的进程可以更快地交换以释放内存以供实际活动的应用程序使用。
无论如何,这是我的意见。 🙂
如果你确信你的服务器不会使用超过15G的内存,(真正12-13G的呼吸空间会更好),那么你总是可以禁用所有的交换。 交换空间是由于过去RAM的高成本而产生的。 就我个人而言,我已经禁用了大部分Linux机器,至今没有任何问题,其中一个只有4G内存。 Windows也不例外,因为3年前我的游戏装备已经禁用了虚拟内存,32G内存足以满足我的所有需求(游戏,video编辑,虚拟机等等) 。
使用这些在Linux机器上临时禁用和启用交换:
禁用: swapoff -a
启用: swapon -a