我有一个 OpenVZ VPS。但是,shmpages
总是在一两天内增加到极限。我的 RAM 使用率很低(无缓存时为 233M)。我只在 VPS 上运行 nginx、php-fpm 和 mariadb。我曾要求我的 VPS 提供商增加一次限制(从 13000 开始),但这对我来说仍然是个问题。可能是什么原因?有没有可能修复它?以下是 的输出cat /proc/user_beancounters
。
Version: 2.5
uid resource held maxheld barrier limit failcnt
39506: kmemsize 11328858 17010688 9223372036854775807 9223372036854775807 0
lockedpages 0 0 256 256 0
privvmpages 175735 226459 9223372036854775807 9223372036854775807 0
shmpages 19985 20000 20000 20000 1752
dummy 0 0 9223372036854775807 9223372036854775807 0
numproc 44 126 250 250 0
physpages 78891 101586 361984 361984 0
vmguarpages 0 0 260144 9223372036854775807 0
oomguarpages 37212 44403 260144 9223372036854775807 0
numtcpsock 8 31 800 800 0
numflock 5 28 600 800 0
numpty 1 1 47 47 0
numsiginfo 0 78 256 256 0
tcpsndbuf 139520 721088 9223372036854775807 9223372036854775807 0
tcprcvbuf 131072 4063928 9223372036854775807 9223372036854775807 0
othersockbuf 57800 325704 9223372036854775807 9223372036854775807 0
dgramrcvbuf 0 9248 575488 575488 0
numothersock 109 135 900 900 0
dcachesize 3614571 4086400 4086400 4086400 0
numfile 641 1275 9600 9600 0
dummy 0 0 9223372036854775807 9223372036854775807 0
dummy 0 0 9223372036854775807 9223372036854775807 0
dummy 0 0 9223372036854775807 9223372036854775807 0
numiptent 24 24 450 450 0
编辑:
df -T
输出:
Filesystem Type 1K-blocks Used Available Use% Mounted on
devtmpfs devtmpfs 723968 0 723968 0% /dev
tmpfs tmpfs 723968 0 723968 0% /dev/shm
tmpfs tmpfs 723968 13096 710872 2% /run
tmpfs tmpfs 723968 0 723968 0% /sys/fs/cgroup
答案1
一个好的提供商不应该将 shmpages 的限制设置为低至 20000。Shmpages 只会影响容器中应用程序的资源短缺反应;它零对节点本身的稳定性或安全性产生影响。
我的所有 OpenVZ VPS(来自 BuyVM)都将 shmpages 限制设置为 9223372036854775807(基本上是无限的)。很明显,您没有用完内存——您的 physpages 限制是 361984,而您使用的最大内存量还不到该限制的三分之一(101586)。oomguarpages 也是如此——您的限制是 260144 页,但您使用的最大内存是 44403 页,仅占可用内存的 17%。
要求您的提供商增加您的 shmpages 限制和屏障,使其更合理。如果他们拒绝,我建议您在其他地方寻找您的 VPS 需求。他们的 20000 限制太荒谬了。