Nginx / APC / ? 用于 kmemsize 优化

Nginx / APC / ? 用于 kmemsize 优化

我有一个 Web 服务,每天有 100,000 次点击。它目前运行在 LAMP+memcached 上的 VPS 上。当前配置达到了服务器的 kmemsize 限制。

服务器有大量可用内存,并且不消耗太多 CPU,因此还远远没有耗尽。除了 kmemsize 之外,所有参数都很低。

您建议如何解决此瓶颈。我考虑在服务器端切换到 nginx,并在 php 端安装 apc。您认为这会打开瓶颈吗?还有其他建议吗?

答案1

首先我要检查是否增加这些限制......

...openvz 的 vzXYZ 工具为设置 ovz 容器提供了一个很好的起点。当您使用 vzsplit 为给定硬件节点上的多个容器生成配置时,您将获得一个示例配置,其中所有容器均等地分配了限制。所以从这里开始没问题...

但在生产中,您会遇到几种这些限制无用的情况。因此,需要对它们进行定制,以满足每个容器的需求。监控用户 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则可以使用该工具轻松增加限制vzctl

vzctl set 1220 --kmemsize 410542080:416859168 --save

深入了解 wikihttp://wiki.openvz.org/UBC_consistency_check。调整限制并不那么痛苦,我甚至发现过度承诺的节点工作没有任何问题。但要小心!

此脚本在设置为 cron-job 时很有用http://github.com/peletiah/openvz/blob/master/check_beancounter.py

答案2

我猜你正在使用 Virtuozzo VPS 或基于 OpenVZ 的 VPS。你可能想切换到基于 Xen 的 VPS 提供商,如 478east,或者让你的主机切换 kmemsize 限制。

我可能不是 100% 正确,所以你可能需要等待其他人的意见。

相关内容