openvz:限制常见服务的资源使用情况?

我在OpenVZ(Virtuozzo)容器中运行Ubuntu 14.04 LTS。 有一些基本的服务正在运行(Apache,Postfix,Dovecot,MariaDB,OpenVPN,LDAP,memcached,php-fpm,nscd),而且我已经在/proc/user_beancounters遇到了一些限制,特别是kmemsize:

 Version: 2.5 uid resource held maxheld barrier limit failcnt 79053013: kmemsize 39057604 41549824 41943040 50331648 18 

这只有大约12个小时的正常运行时间。 之前有很多(数百)与kmemsize,shmpages,tcpsndbuf失败。

我的问题是:

  • 有些服务可能会泄露资源(即使重新启动它们也不会释放资源),或者即使没有泄漏,资源使用量也会增加?
  • 我怎样才能以更好的粒度看到受限制的资源使用情况,这样我就知道该调整什么了?
  • 有关降低有问题的任何提示/链接(特别是kmemsize,shmpages)?
  • 任何猜测哪个服务是最需要资源的?

这些默认值通常太低。 对于kmem来说,41MB是相当小的,而且shmpage应该是接近内存大小的一半(1/2 vmguarpages)。

UBC参数有它们的用途,特别是如果你喜欢可交换RAM而不是交换,但参数通常需要调整或经验丰富的pipe理员/主机分配适当的限制。

一段时间以来,Vswap一直是OpenVZ的默认设置,这使得UBC的限制成为过去。 我build议你考虑切换到vswapconfiguration,如果你有这些UBC参数的麻烦。