Zimbra JVM issue with OpenVZ
ถ้าหากใช้ Zimbra บน OpenVZ อาจเกิดปัญหา start zimbra service ไม่ขึ้น ลักษณะคล้าย error ด้านล่าง
Notification skipped
Starting servers...Could not create the Java virtual machine.
Unable to determine enabled services from ldap.
Enabled services read from cache. Service list may be inaccurate.
sh: zmcontrol.status.zMdWQ: Permission denied
sh: zmcontrol.status.zMdWQ: Permission denied
sh: zmcontrol.status.zMdWQ: Permission denied
sh: zmcontrol.status.zMdWQ: Permission denied
sh: zmcontrol.status.zMdWQ: Permission denied
sh: zmcontrol.status.zMdWQ: Permission denied
done.
Setting up zimbra crontab...done.
ปัญหานี้โดยส่วนใหญ่แล้วเกิดจากเราได้ assign จำนวน memory ไม่พอต่อการใช้งาน วิธีแก้ไขคือเพิ่ม memory ให้กับ container นั้นๆ จนกว่าจะสามารถใช้งานได้ ให้รันคำสั่งด้านล่างเพื่อเพิ่ม memory ให้กับ container ดังนี้
[root@Ezymailhosting ~]# vzctl set CID --vmguarpages XG --save
[root@Ezymailhosting ~]# vzctl set CID --privvmpages XG:YG --save
โดยที่ CID คือ Container ID X คือ จำนวน Memory ที่ assign ให้ใหม่ Y คือ จำนวน Memory ที่สามารถ brust วิธีการตรวจสอบว่าเราได้เพิ่มให้เพียงพอหรือยัง สามารถใช้คำสั่ง
[root@Ezymailhosting ~]# vzctl exec CID cat /proc/user_beancounters
Version: 2.5
uid resource held maxheld failcnt
CID: kmemsize 11266888 14778368 6
lockedpages 0 0 0
privvmpages 290231 524167 3958
shmpages 129 129 0
dummy 0 0 ... 0
numproc 74 123 0
physpages 484125 537642 0
vmguarpages 0 0 0
oomguarpages 104950 106891 0
numtcpsock 17 32 0
numflock 7 15 0
numpty 1 2 0
numsiginfo 0 24 0
tcpsndbuf 209280 257632 ... 0
tcprcvbuf 212992 1869520 81
othersockbuf 158240 188016 0
dgramrcvbuf 0 8720 0
numothersock 156 174 0
dcachesize 1846788 3624960 0
numfile 906 1325 0
dummy 0 0 ... 0
dummy 0 0 0
dummy 0 0 0
numiptent 20 20 0
ให้ดู column สุดท้ายที่ชื่อ “failcnt” จะต้องให้มีค่าเป็น 0 ทั้งหมด เพราะถ้าไม่ได้เป็นแสดงว่ามีปัญหาเกี่ยวกับการ allocate memory จึงทำให้เกิดการทำงานผิดพลาดได้ที่ Container นั้นๆ หากยังไม่สามารถแก้ไขได้ ลองใส่ค่าด้านล่างลงไปในไฟล์ /opt/zimbra/conf/localconfig.xml แต่อาจจะแก้สามารถแก้ปัญหาได้บ้างบางกรณีและค่าทั้งหมดนี้ไม่แนะนำให้ใช้งานจริง ควรเอาไว้ใช้กับเครื่องทดสอบเท่านั้น
<key name="zimbra_zmjava_options">
<value>-Xms128m -Xmx128m</value>
</key>