Virtual-Machines
OpenVZ 配置問題
我在我的一個 OpenVZ 容器中面臨記憶體溢出問題。在做
vzctl enter 172
時它給出了一個unable to allocate memory
錯誤。該容器應該配置為 3.5GB 記憶體。容器配置如下:
文件:/etc/vz/conf/172.conf
ONBOOT="yes" NAMESERVER="4.2.2.1" CPUUNITS="1000" CPUS="2" CPULIMIT="80" PRIVVMPAGES="914432:914432" DISKSPACE="153600000:153600000" QUOTATIME="0" KMEMSIZE="86236200:88740984" LOCKEDPAGES="256:256" SHMPAGES="21504:21504" NUMPROC="2000:2000" PHYSPAGES="0:9223372036854775807" VMGUARPAGES="524288:2147483647" OOMGUARPAGES="26112:9223372036854775807" NUMTCPSOCK="360:360" NUMFLOCK="380:420" NUMPTY="16:16" NUMSIGINFO="256:256" TCPSNDBUF="10321920:16220160" TCPRCVBUF="1720320:2703360" OTHERSOCKBUF="4504320:16777216" DGRAMRCVBUF="262144:262144" NUMOTHERSOCK="5000:5000" DCACHESIZE="3409920:3624960" NUMFILE="18624:18624" AVNUMPROC="180:180" NUMIPTENT="128:128" DISKINODES="200000:220000" VE_ROOT="/srv/vz/root/$VEID" VE_PRIVATE="/srv/vz/private/$VEID" OSTEMPLATE="ubuntu-10.04-minimal_10.04_amd64" ORIGIN_SAMPLE="vps.2048" HOSTNAME="host.xyz.com" IP_ADDRESS="xx.xx.xx.xx"
輸出為
cat /proc/user_beancounters
Version: 2.5 uid resource held maxheld barrier limit failcnt 172: kmemsize 27229970 38669893 86236200 88740984 0 lockedpages 0 0 256 256 0 privvmpages 342879 396207 914432 914432 0 shmpages 3987 11152 21504 21504 0 dummy 0 0 0 0 0 numproc 96 109 2000 2000 0 physpages 211758 242535 0 9223372036854775807 0 vmguarpages 0 0 524288 2147483647 0 oomguarpages 211758 242535 26112 9223372036854775807 0 numtcpsock 30 47 360 360 0 numflock 122 125 380 420 0 numpty 1 1 16 16 0 numsiginfo 0 3 256 256 0 tcpsndbuf 692360 3389144 10321920 16220160 0 tcprcvbuf 210744 283744 1720320 2703360 0 othersockbuf 240448 564608 4504320 16777216 0 dgramrcvbuf 0 8224 262144 262144 0 numothersock 167 180 5000 5000 0 dcachesize 1052759 1122245 3409920 3624960 0 numfile 3700 3939 18624 18624 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 numiptent 10 10 128 128 0
在配置中查找問題的任何幫助都將非常有幫助。
謝謝
您是否看到@Jonathan Ross 提到的失敗計數?您是否重新啟動了容器?
您需要執行一致性檢查:
cd /etc/vz/conf vzcfgvalidate 101.conf
如果它發現資源問題,此工具還可以為您修復它們:
vzcfgvalidate -r 101.conf
主機上有多少記憶體,實際上是否有 3.5GB 的 RAM 備用?它的執行速度是否低於(例如 512MB)?
cat /proc/user_beancounters
如果過去一直在執行,它將向您顯示哪些資源正在耗盡。在右側查找失敗計數。如果您還沒有這樣做,為了讓您了解如何調整資源,我用來解決資源分配不佳的一個參數是:
vzctl set 101 --kmemsize $((11055923*2)):$((11377049*2)) --save
OpenVZ Wiki上的更多資訊