ฉันกำลังทำงานบนเซิร์ฟเวอร์ Windows 2003 (64 บิต) พร้อม RAM 8 GB ฉันจะเพิ่มหน่วยความจำฮีปสูงสุดได้อย่างไร ฉันใช้-Xmx1500m
แฟล็กเพื่อเพิ่มขนาดฮีพเป็น 1500 Mb ฉันสามารถเพิ่มหน่วยความจำฮีปเป็น 75% ของหน่วยความจำกายภาพ (6 GB ฮีป) ได้หรือไม่?
ฉันกำลังทำงานบนเซิร์ฟเวอร์ Windows 2003 (64 บิต) พร้อม RAM 8 GB ฉันจะเพิ่มหน่วยความจำฮีปสูงสุดได้อย่างไร ฉันใช้-Xmx1500m
แฟล็กเพื่อเพิ่มขนาดฮีพเป็น 1500 Mb ฉันสามารถเพิ่มหน่วยความจำฮีปเป็น 75% ของหน่วยความจำกายภาพ (6 GB ฮีป) ได้หรือไม่?
คำตอบ:
คุณสามารถเพิ่มได้ถึง 4GB บนระบบ 32 บิต หากคุณใช้ระบบ 64 บิตคุณสามารถสูงขึ้นได้ ไม่ต้องกังวลหากคุณเลือกไม่ถูกต้องหากคุณขอ 5g จากระบบจาวา 32 บิตจะบ่นเกี่ยวกับค่าที่ไม่ถูกต้องและออกจาก
ในขณะที่คนอื่นโพสต์ให้ใช้ธง cmd-line - เช่น
java -Xmx6g myprogram
คุณสามารถรับรายการทั้งหมด (หรือรายการเกือบทั้งหมด) โดยพิมพ์ java -X
เป็นไปได้ที่จะเพิ่มขนาดฮีพที่จัดสรรโดย JVM โดยใช้ตัวเลือกบรรทัดคำสั่งที่นี่เรามี 3 ตัวเลือก
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
java -Xms16m -Xmx64m ClassName
ในบรรทัดด้านบนเราสามารถตั้งฮีปขั้นต่ำเป็น 16mb และสูงสุดฮีป 64mb
สำหรับ JVM ขนาด 32 บิตขนาดฮีปที่ใหญ่ที่สุดที่คุณสามารถตั้งค่าได้คือ 4gb ในการใช้ขนาดฮีพที่ใหญ่ขึ้นคุณต้องใช้ JVM 64 บิต ลองทำสิ่งต่อไปนี้:
java -Xmx6144M -d64
แฟล็ก -d64 มีความสำคัญเนื่องจากจะบอกให้ JVM รันในโหมด 64 บิต
เป็นไปได้ที่จะเพิ่มขนาดฮีพที่จัดสรรโดย JVM ใน eclipse โดยตรงใน eclipse IDE goto
Run ----> Run Configurations ----> อาร์กิวเมนต์
ป้อน -Xmx1g (ใช้เพื่อตั้งค่าขนาดสูงสุดเช่น Xmx256m หรือ Xmx1g ...... m -> mb g ---> gb)
java -d64 -Xms512m -Xmx4g HelloWorld
โดยที่ -d64: จะเปิดใช้ JVM 64 บิต -Xms512m: จะตั้งค่าขนาดฮีพเริ่มต้นเป็น 512 MB -Xmx4g: จะตั้งค่าขนาดฮีพสูงสุดเป็น 4 GB (ที่นี่ชื่อไฟล์ java คือ: HelloWorld.java)
คุณสามารถเพิ่มขนาดฮีปได้โดยส่งพารามิเตอร์ JVM -Xmsและ-Xmxดังนี้:
สำหรับไฟล์ Jar:
java -jar -Xms4096M -Xmx6144M jarFilePath.jar
สำหรับไฟล์ Java:
java -Xms4096M -Xmx6144M ClassName
พารามิเตอร์ข้างต้นเพิ่มขนาด InitialHeapSize (-Xms)เป็น 4GB (4096 MB) และMaxHeapSize (-Xmx)เป็น 6GB (6144 MB)
แต่ขนาดฮีปของคนรุ่นใหม่จะยังคงเหมือนเดิมและฮีปขนาดเพิ่มเติมจะถูกเพิ่มเข้าไปในขนาดฮีปรุ่นเก่า ในการทำให้ขนาดของ Young Gen Heap และ Gen Gen Heap เท่ากันให้ใช้-XX: NewRatio = 1 -XX: -UseAdaptiveSizePolicy params
java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar
-XX: NewRatio = ขนาดฮีปเก่า: Young Gen HeapSize (คุณสามารถเล่นกับอัตราส่วนนี้เพื่อรับอัตราส่วนที่คุณต้องการ)
ฉันสามารถเพิ่มหน่วยความจำฮีปเป็น 75% ของหน่วยความจำกายภาพ (6GB Heap) ได้หรือไม่
ใช่คุณสามารถ. ในความเป็นจริงคุณสามารถเพิ่มจำนวนหน่วยความจำกายภาพได้มากกว่าที่คุณต้องการ
ไม่ว่าจะเป็นการดีหรือไม่ที่จะทำสิ่งนี้ขึ้นอยู่กับว่าระบบของคุณกำลังทำงานอยู่มากน้อยแค่ไหน โดยเฉพาะอย่างยิ่งหาก "ชุดการทำงาน" ของแอปพลิเคชันและบริการที่กำลังทำงานอยู่เกินกว่าหน่วยความจำทางกายภาพที่มีอยู่ในปัจจุบันอย่างมีนัยสำคัญระบบของคุณจะต้อง "thrash" ใช้เวลามากในการย้ายหน้าหน่วยความจำเสมือน ผลสุทธิคือระบบช้าลงอย่างน่ากลัว
โปรดใช้คำสั่งด้านล่างเพื่อเปลี่ยนขนาดฮีพเป็น 6GB
export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
หลายคนชี้ให้เห็นคำตอบที่เฉพาะเจาะจงสำหรับขนาดกองกับตัวเลือก JVM ของและ-Xms
-Xms
ฉันต้องการชี้ให้เห็นว่านี่ไม่ใช่ตัวเลือกหน่วยความจำประเภทเดียวสำหรับ jvm -Xss8m
โดยเฉพาะถ้าคุณได้รับสแต็คของกระแสแล้วคุณจะต้องการที่จะเพิ่มขนาดของสแต็คโดยการเพิ่มตัวเลือกเพิ่มเติมเช่น
สำหรับปัญหานี้ตัวเลือก jvm ของสิ่งที่ชอบ-Xms2g -Xmx6g -Xss8m
จะเป็นทางออก
ฉันกำลังแบ่งปันข้อมูลนี้เมื่อ google ค้นหาวิธีเพิ่มหน่วยความจำ jvm ให้ฉันมาที่โซลูชันนี้และโซลูชันไม่ทำงานกับการจัดสรรหน่วยความจำจำนวนมาก เมื่อฉันรู้ว่าการตั้งค่าเฉพาะสำหรับฉันฉันสามารถ google วิธีเพิ่มขนาดสแต็คและพบว่าพารามิเตอร์ที่ขาดหายไป :) หวังว่านี่จะช่วยประหยัดเวลาของผู้อื่นได้เช่นกัน :)
ใช้งานได้กับ Java เวอร์ชัน 64 บิตเท่านั้น ไปที่แผงควบคุมและคลิกที่ไอคอน Java บนหน้าต่างเล็ก ๆ ของ Java Control Panel คลิกที่แถบเมนู Java จากนั้นคลิกที่view
ปุ่ม
หากคุณมีสองแพลตฟอร์ม Java ให้ปิดการใช้งาน Java เวอร์ชันก่อนหน้าจากนั้นคลิกที่ฟิลด์ข้อความพารามิเตอร์ Runtimeและเขียน-Xmx1024m
หรือน้อยกว่าขนาด RAM อย่าเพิ่มขนาดฮีพเท่ากับ RAM มิฉะนั้นระบบของคุณจะผิดพลาด
ใช่. คุณสามารถ.
คุณสามารถเพิ่มหน่วยความจำฮีปของคุณเป็น 75% ของหน่วยความจำกายภาพ (6 GB ฮีป) หรือสูงกว่า
เนื่องจากคุณใช้ 64 บิตคุณสามารถเพิ่มขนาดฮีพของคุณเป็นจำนวนที่คุณต้องการ ในกรณีที่คุณใช้ 32 บิตจะ จำกัด ที่ 4GB
$ java -Xms512m -Xmx6144m JavaApplication
ตั้งค่าฮีปเริ่มต้นของคุณเป็น 512mb และฮีปขนาดสูงสุดเป็น 6GB
หวังว่าจะช่วย .. :)
ฉันมีปัญหาในการใช้งานไฟล์ py ในโค้ดจาวาของฉันโดยใช้ eclipse / STS รับ PyException เนื่องจากหน่วยความจำฮีป jvm ไม่เพียงพอ ฉันได้ทำการเปลี่ยนแปลงตามที่ระบุไว้ด้านล่างและฉันสามารถแก้ไขปัญหานี้ได้ ด้านล่างคือการกำหนดค่าระบบของฉัน
และนี่คือการเปลี่ยนแปลงที่ฉันทำในเวิร์กสเปซของฉันและ voila มันทำงานได้สมบูรณ์แบบในขณะนี้
-Xmx6g
ไหม สิ่งนี้ใช้งานไม่ได้หรือ คุณสังเกตอะไร