วิธีการเพิ่มการจัดสรรหน่วยความจำของ Tomcat


หากคุณพบปัญหาประสิทธิภาพการทำงานกับ Tomcat สาเหตุทั่วไปคือการขาดการจัดสรรหน่วยความจำ JVM (Java Virtual Machine) ค่าดีฟอลต์ของฮีปสูงสุดคือ 64MB หรือ 128MB คุณสามารถเพิ่มขนาดฮีปสูงสุดของแอ็พพลิเคชันด้วยการตั้งค่า -Xmxพารามิเตอร์ JVM

ตัวอย่างเช่น -Xmx512mอนุญาตให้มีการจัดสรรหน่วยความจำ 512 MB สูงสุด สำหรับ JVM หากต้องการปรับพารามิเตอร์นี้ให้คลิกขวาที่ไอคอน My Computer จากนั้นเลือกแท็บ ขั้นสูงคลิกปุ่ม ตัวแปรด้านสิ่งแวดล้อม:

สร้างตัวแปร CATALINA_OPTSและตั้งค่า ค่าที่ต้องการเช่น "-server -Xmx256m"

หากคุณใช้ Linux หรือ UNIX ให้ไปที่ Terminal และใช้บัญชี Tomcat โดยใช้ sudo su-tomcatหรือชื่อบัญชีที่เกี่ยวข้องทั้งนี้ขึ้นอยู่กับการตั้งค่าของคุณ คุณควรใช้บัญชีที่ใช้ในการรัน Tomcat

ตรวจสอบทั้งตัวแปร CATALINA_OPTSและ JAVA_OPTSของสภาพแวดล้อม กำหนดตัวแปรสภาพแวดล้อมให้เป็นค่าที่สูงกว่า ตัวอย่างเช่นถ้าตัวแปร JAVA_OPTS มีขนาดฮีปสูงสุด 64MB และ 128MB ให้เพิ่มขึ้นเป็น 128MB และ 256MB

OLD: JAVA_OPTS="-Xms64m -Xmx128m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
OLD: JAVA_OPTS="-Xms128m -Xmx256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"

ตรวจสอบให้แน่ใจว่าได้ใช้ค่าสูงสุดที่ น้อยกว่าขนาด RAM ที่มีอยู่จริงของคุณมิฉะนั้นจะถูกเพจไปยังฮาร์ดดิสก์ซึ่งอาจทำให้เกิดปัญหาด้านประสิทธิภาพมากขึ้น

หากต้องการตรวจสอบว่ามีการตั้งค่าใหม่หรือไม่ให้ไปที่ URL ของเซิร์ฟเวอร์ Tomcat ของคุณ จากนั้นคลิก สถานะ:

คุณควรเห็นค่าใหม่ภายใต้ส่วน JVM:

<หากคุณไม่เห็นหน่วยความจำ JVM ที่อัปเดตบนหน้าให้ลองเริ่มต้น Tomcat ใหม่เนื่องจากการเปลี่ยนแปลงพารามิเตอร์จำเป็นต้องมีการรีสตาร์ท Tomcat ก่อนที่จะมีผล ปัญหานี้ควรแก้ไขปัญหาของคุณเกี่ยวกับประสิทธิภาพของ Tomcat ที่ไม่ดีและหลีกเลี่ยงปัญหาหน่วยความจำด้วยสคริปต์ฝั่งเซิร์ฟเวอร์ของคุณ หากคุณมีคำถามโปรดแจ้งให้เราทราบในความคิดเห็น สนุก!

Suspense: Nightmare

กระทู้ที่เกี่ยวข้อง:


9.06.2009