我有一个networking服务,每天点击100,000次。 它目前是在LAMP + memcached上运行的VPS。 当前configuration命中服务器的kmemsize限制。
服务器有很多可用的内存,并且不占用太多的CPU,因此远没有耗尽。 除了所有的参数都非常低。
你有什么build议去解决这个瓶颈。 我想在服务器端切换到nginx并在PHP端安装apc。 你认为这会打开瓶颈吗? 还有其他build议吗?
首先,我会检查以增加这些限制…
… openvz的vzXYZ工具为设置ovz容器提供了一个很好的起点。 当你使用vzsplit为一个给定的硬件节点上的许多容器生成一个configuration文件时,你将会得到一个平衡限制的示例configuration文件。 所以这是好的开始…
但在生产中,当这些限制没有用处时,您将遇到几种情况。 因此他们需要蜜蜂定制适合每个容器的需要。 监视用户beancounters是很好的…
cat /proc/user_beancounters uid resource held maxheld barrier limit failcnt 1220: kmemsize 18511794 31073180 273694720 277906112 22 lockedpages 0 8 2056 2056 0 privvmpages 204185 258842 605796 666375 0 shmpages 7830 8806 30845 30845 0
为了增加failcnt 。 例如,如果您在kmemsize上获得失败, kmemsize可以使用vzctl工具轻松增加限制。
vzctl set 1220 --kmemsize 410542080:416859168 --save
深入了解wiki http://wiki.openvz.org/UBC_consistency_check 。 调整限制不是那么痛苦,我甚至发现overcommitted节点工作没有任何probs。 不过要小心!
这个脚本在安装cron-job时很有用http://github.com/peletiah/openvz/blob/master/check_beancounter.py
我猜你正在使用基于Virtuozzo VPS或OpenVZ的VPS。 您可能想要切换到像478east这样基于Xen的VPS提供程序,或要求您的主机切换kmemsize限制。
我可能不会100%正确,所以你可能想等待另一个意见。