ขนาดฮีพ Java สูงสุดเริ่มต้นถูกกำหนดอย่างไร?


420

หากฉันไม่ใช้-Xmxnตัวเลือกจากบรรทัดคำสั่ง Java จะมีการใช้ค่าเริ่มต้น ตามเอกสาร Java

"ค่าเริ่มต้นถูกเลือกที่รันไทม์ตามการกำหนดค่าระบบ"

การตั้งค่าการกำหนดค่าระบบใดที่ส่งผลต่อค่าเริ่มต้น


1
การกำหนดค่าระบบหมายถึง: a) ไคลเอ็นต์ jvm เทียบกับเซิร์ฟเวอร์ jvm b) 32 บิตเทียบกับ 64 บิต ลิงค์: 1) อัพเดทจาก J2SE5.0 docs.oracle.com/javase/6/docs/technotes/guides/vm/… 2) คำตอบสั้น ๆ : docs.oracle.com/javase/8/docs/technotes/guides/vm / gctuning / ... 3) คำตอบโดยละเอียด: docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/ ...... 4) ไคลเอนต์ vs server: javacodegeeks.com/2011/07/jvm-options-client- vs-
server.html

2
มันยากที่จะเข้าใจจากลิงค์ด้านบน ดังนั้นจึงสรุปได้ที่นี่: ขนาดฮีปสูงสุดสำหรับไคลเอ็นต์ jvm คือ 256mb (มีข้อยกเว้นอ่านจากลิงก์ด้านบน) ขนาดฮีปสูงสุดของเซิร์ฟเวอร์ jvm ขนาด 32 บิตคือ 1gb และ 64 บิตเป็น 32gb (อีกครั้งมีข้อยกเว้นที่นี่เช่นกันโปรดอ่านจากลิงก์) ดังนั้น 256mb หรือ 1gb หรือ 32gb ของมัน
Vyshnav Ramesh Thrissur

คำตอบ:


506

บน Windows คุณสามารถใช้คำสั่งต่อไปนี้เพื่อค้นหาค่าเริ่มต้นในระบบที่แอปพลิเคชันของคุณทำงาน

java -XX: + PrintFlagsFinal -version | findstr HeapSize

มองหาตัวเลือกMaxHeapSize(ต่อ-Xmx) และสำหรับInitialHeapSize-Xms

บนระบบ Unix / Linux คุณสามารถทำได้

java -XX: + PrintFlagsFinal -version | grep HeapSize

ฉันเชื่อว่าผลลัพธ์ที่ได้จะเป็นไบต์


3
ฉันหวังว่าจะมีตัวเลือกที่ดีเช่นนี้ แต่มันไม่ได้ผลสำหรับฉันโดยใช้ Java 6 VM ของ IBM
Matt Lavin

ที่ดี! ฉันสามารถเล่นกับตัวเลือกเริ่มต้นเหล่านี้ได้หรือไม่? ตัวแปร ENV ที่สอดคล้องกันสำหรับแต่ละรายการคืออะไร
Elist

28
ในกรณีของฉันบน Linux InitialHeapSize = 262803264และMaxHeapSize = 4206886912ที่เกี่ยวกับ256 MBและ4 GBถ้าฉันไม่ผิด นี่หมายความว่าทุก JVM เริ่มต้นราวกับเปิดตัวพร้อม-Xms256m -Xmx4gตัวเลือกหรือไม่
Yuriy Nakonechnyy

9
ในระบบ Windows:java -XX:+PrintFlagsFinal -version | findstr /R /C:"HeapSize"
sp00m

1
@matanster บน Linux ของฉัน-versionไม่แสดงข้อความ "การใช้งาน" ที่stderrยาว
Franklin Yu

115

สำหรับ Java SE 5: ตามหลักสรีรศาสตร์ Garbage Collector [Oracle] :

ขนาดฮีปเริ่มต้น:

ใหญ่กว่า 1/64 ของหน่วยความจำทางกายภาพของเครื่องบนเครื่องหรือขั้นต่ำที่เหมาะสม ก่อน J2SE 5.0 ขนาดฮีปเริ่มต้นเริ่มต้นคือขั้นต่ำที่เหมาะสมซึ่งแตกต่างกันไปตามแพลตฟอร์ม คุณสามารถแทนที่ค่าเริ่มต้นนี้ได้โดยใช้ตัวเลือกบรรทัดคำสั่ง -Xms

ขนาดฮีปสูงสุด:

1 / 4th ของหน่วยความจำกายภาพน้อยกว่า 1GB ก่อน J2SE 5.0 ขนาดฮีปสูงสุดเริ่มต้นคือ 64MB คุณสามารถแทนที่ค่าเริ่มต้นนี้ได้โดยใช้ตัวเลือกบรรทัดคำสั่ง -Xmx

UPDATE:

ดังที่ทอมแอนเดอร์สันชี้ให้เห็นในความคิดเห็นของเขาข้างต้นสำหรับเครื่องเซิร์ฟเวอร์ จากErgonomics ใน 5.0 JavaTM Virtual Machine :

ในแพลตฟอร์ม J2SE เวอร์ชัน 5.0 คลาสของเครื่องที่เรียกว่าเครื่องระดับเซิร์ฟเวอร์นั้นถูกกำหนดให้เป็นเครื่องที่มี

  • ตัวประมวลผลทางกายภาพตั้งแต่ 2 ตัวขึ้นไป
  • หน่วยความจำกายภาพ 2 Gbytes ขึ้นไป

ยกเว้นแพลตฟอร์ม 32 บิตที่ใช้ระบบปฏิบัติการ Windows เวอร์ชันหนึ่ง บนแพลตฟอร์มอื่น ๆ ทั้งหมดค่าเริ่มต้นจะเหมือนกับค่าเริ่มต้นสำหรับรุ่น 1.4.2

ในแพลตฟอร์ม J2SE เวอร์ชัน 1.4.2 โดยค่าเริ่มต้นมีการเลือกต่อไปนี้

  • ขนาดฮีพเริ่มต้นของ 4 Mbyte
  • ขนาดฮีปสูงสุดคือ 64 Mbyte

4
Caveat: สำหรับเครื่องเซิร์ฟเวอร์ระดับไม่ใช่ไคลเอนต์คลาส คุณต้องอ่านเอกสารนั้นร่วมกับjava.sun.com/docs/hotspot/gc5.0/ergo5.htmlซึ่งกำหนดเงื่อนไขเหล่านั้นและสิ่งที่เกิดขึ้นกับเครื่องระดับไคลเอนต์ dogbane ฉันขอแนะนำให้คุณแก้ไขคำตอบของคุณเพื่อเสนอข้อความที่เกี่ยวข้องหรือไม่?
Tom Anderson

3
นั่นเป็นค่าเริ่มต้นที่ต่ำอย่างน่าขันในปี 2012 แอปพลิเคชันที่จริงจังน้อยมากจะพอดีกับภายใน 64 เมกะไบต์
Mark E. Haase

1
ดูคำตอบสำหรับ 30 ตุลาคม 2555 ของเออร์เนสโตสำหรับเครื่องไคลเอนต์หลังจากอัพเดต Java 6 แล้ว
Andy Thomas

โปรดจำไว้ด้วยว่า: "ขอบเขตและเศษส่วนสำหรับขนาดฮีปนั้นถูกต้องสำหรับ J2SE 5.0 พวกเขามีแนวโน้มที่จะแตกต่างกันในรุ่นถัด ๆ ไปเมื่อคอมพิวเตอร์มีประสิทธิภาพมากขึ้น"
Lodovik

โดยวิธีการอัลโกนี้เป็นเพียงสำหรับนักสะสมขยะแบบขนาน
Mike Argyriou

45

Java 8 ใช้เวลามากกว่า1 / 64thของหน่วยความจำกายภาพของคุณสำหรับXmssizeของคุณ(Minimum HeapSize) และน้อยกว่า1 ใน 4ของหน่วยความจำกายภาพของคุณสำหรับ-Xmxsize (สูงสุด HeapSize)

คุณสามารถตรวจสอบขนาด Java heap ที่เป็นค่าเริ่มต้นโดย:

ในWindows :

java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"

ในLinux :

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'

การตั้งค่าการกำหนดค่าระบบใดที่ส่งผลต่อค่าเริ่มต้น

หน่วยความจำกายภาพของเครื่อง& รุ่น Java


5
ไม่ใช่ 1/64 แทนที่จะเป็น 1/6?
Vyshnav Ramesh Thrissur

1
ใช่ Xmssize (ขั้นต่ำ HeapSize / InitialHeapSize) มากกว่า 1 / 64th ของหน่วยความจำกายภาพ & Xmxsize ของคุณ (สูงสุด HeapSize / MaxHeapSize สูงสุด) น้อยกว่า 1 ใน 4 ของหน่วยความจำทางกายภาพของคุณ (สำหรับอดีตสำหรับ mac ของฉันมี ram 16GB ฉันได้รับ uintx InitialHeapSize: = 268435456 {ผลิตภัณฑ์} uintx MaxHeapSize: = 4294967296 {ผลิตภัณฑ์} ฉัน XMS คือ 268 MB และ Xmx คือ 4.29 GB
sjethvani

1
โปรดแก้ไขคำตอบ มันคือ 1 / 64th ไม่ใช่ 1 / 6th
emeraldhieu

35

นี้มีการเปลี่ยนแปลงในJava 6 ปรับปรุง 18

สมมติว่าเรามีหน่วยความจำกายภาพมากกว่า1 GB (ค่อนข้างบ่อยในทุกวันนี้) มันเป็น 1 ใน 4 ของหน่วยความจำกายภาพของคุณสำหรับเซิร์ฟเวอร์ vm


8
ไม่ถูกต้องหน้าเชื่อมโยงพูดว่าgreater than or equal to 1 gigabyte of physical memory results in a maximum heap size of 256 megabytes
Paolo Fulgoni

5
ฉันเพิ่งตรวจสอบบนเครื่อง linux ที่มีหน่วยความจำกายภาพ 5gb ฮีปสูงสุดเริ่มต้นแสดงเป็น 1.5gb
ernesto

1
@PaoloFulgoni ไม่ตัวอย่างปฏิบัติอีกอย่างที่ฉันสังเกตเห็นในขณะนี้: 129 Gbytes ของหน่วยความจำกายภาพส่งผลให้ใน 32 Gbyte ของขนาดสูงสุดกอง
Kirill

ดูคำตอบของ apl สำหรับเหตุผลที่ถูกต้อง: stackoverflow.com/a/13310792/32453ดูเพิ่มเติมstackoverflow.com/a/56036202/32453
rogerdpack

16

เออร์เนสโตพูดถูก ตามลิงค์เขาโพสต์ [1]:

อัพเดตการกำหนดค่าฮีปไคลเอ็นต์ JVM

ในไคลเอนต์ JVM ...

  • ขนาดฮีปสูงสุดเริ่มต้นคือครึ่งหนึ่งของหน่วยความจำกายภาพถึงขนาดหน่วยความจำกายภาพ 192 เมกะไบต์และอีกหนึ่งในสี่ของหน่วยความจำกายภาพถึงขนาดหน่วยความจำกายภาพ 1 กิกะไบต์

    ตัวอย่างเช่นหากเครื่องของคุณมีหน่วยความจำกายภาพ 128 เมกะไบต์ขนาดฮีปสูงสุดคือ 64 เมกะไบต์และมากกว่าหรือเท่ากับ 1 กิกะไบต์ของหน่วยความจำฟิสิคัลผลลัพธ์จะมีขนาดฮีปสูงสุด 256 เมกะไบต์

  • ขนาดสูงสุดของฮีปนั้นไม่ได้ใช้จริงโดย JVM เว้นแต่ว่าโปรแกรมของคุณจะสร้างออบเจ็กต์ให้เพียงพอที่จะต้องการ จำนวนที่น้อยกว่ามากเรียกว่าขนาดฮีพเริ่มต้นถูกจัดสรรระหว่างการกำหนดค่าเริ่มต้น JVM ...

  • ...
  • การยศาสตร์การกำหนดค่าฮีปเซิร์ฟเวอร์ JVM ตอนนี้เหมือนกับไคลเอ็นต์ยกเว้นว่าขนาดฮีพสูงสุดดีฟอลต์สำหรับ JVM แบบ 32 บิตคือ 1 กิกะไบต์ซึ่งสอดคล้องกับขนาดหน่วยความจำฟิสิคัลที่มีขนาด 4 กิกะไบต์และสำหรับ JVMs ขนาด 32 กิกะไบต์ที่สอดคล้องกัน เป็นขนาดหน่วยความจำกายภาพ 128 กิกะไบต์

[1] http://www.oracle.com/technetwork/java/javase/6u18-142093.html


9

สำหรับ IBM JVM คำสั่งมีดังต่อไปนี้:

java -verbose:sizes -version

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ IBM SDK สำหรับ Java 8: http://www-01.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.lnx.80.doc/diag/appendixes/defaults.html ? lang = th


ดูเหมือนว่าลิงก์จะเสีย (อย่างมีประสิทธิภาพ)
Peter Mortensen

@PeterMortensen เพิ่งตรวจสอบ - ลิงก์ใช้ได้
n0mer

8

ที่สุด!

ในฐานะของ Java 8u191 ตอนนี้คุณมีตัวเลือก:

-XX:InitialRAMPercentage
-XX:MaxRAMPercentage
-XX:MinRAMPercentage

ที่สามารถใช้เพื่อปรับขนาดฮีปเป็นเปอร์เซ็นต์ของ RAM ที่ใช้งานได้จริง (ซึ่งเหมือนกับ RAM ที่ติดตั้งน้อยกว่าที่เคอร์เนลใช้)

ดูหมายเหตุการเผยแพร่สำหรับ Java8 u191สำหรับข้อมูลเพิ่มเติม โปรดทราบว่าตัวเลือกจะถูกกล่าวถึงภายใต้หัวข้อนักเทียบท่า แต่ที่จริงแล้วตัวเลือกเหล่านี้จะใช้ไม่ว่าคุณจะอยู่ในสภาพแวดล้อมของนักเทียบท่าหรือในสภาพแวดล้อมแบบดั้งเดิม

ค่าเริ่มต้นสำหรับMaxRAMPercentageคือ 25% นี่เป็นแบบอนุรักษ์นิยมอย่างยิ่ง

กฎของฉันเอง: หากโฮสต์ของคุณทุ่มเทให้มากขึ้นหรือน้อยลงในการใช้งานจาวาแอปพลิเคชันที่ระบุคุณสามารถทำได้โดยไม่มีปัญหาเพิ่มขึ้นอย่างมาก หากคุณอยู่บน Linux เพียงใช้ daemons มาตรฐานและติดตั้ง RAM จากที่อื่นประมาณ 1 Gb ขึ้นไปฉันไม่ลังเลเลยที่จะใช้ 75% สำหรับกองของ JVM อีกครั้งจำไว้ว่านี่คือ 75% ของ RAM ที่มีอยู่ไม่แรมที่ติดตั้ง สิ่งที่เหลืออยู่คือกระบวนการเชื่อมโยงผู้ใช้อื่น ๆ ที่อาจทำงานอยู่บนโฮสต์และหน่วยความจำประเภทอื่นที่ JVM ต้องการ (เช่นสำหรับสแต็ก) ทั้งหมดนี้เข้าด้วยกันซึ่งโดยทั่วไปจะพอดีใน 25% ที่เหลืออยู่ เห็นได้ชัดว่าเมื่อติดตั้ง RAM มากขึ้น 75% จึงปลอดภัยและปลอดภัยกว่า (ฉันหวังว่าคน JDK ได้ใช้ตัวเลือกที่คุณสามารถระบุบันได)

การตั้งค่าMaxRAMPercentageตัวเลือกมีลักษณะดังนี้:

java -XX:MaxRAMPercentage=75.0  ....

โปรดทราบว่าค่าเปอร์เซ็นต์เหล่านี้เป็นประเภท 'double' ดังนั้นคุณต้องระบุด้วยจุดทศนิยม คุณได้รับข้อผิดพลาดค่อนข้างแปลกถ้าคุณใช้ "75" แทน "75.0"


7

เลือกค่าเริ่มต้นที่รันไทม์ตามการกำหนดค่าระบบ

ดูที่หน้าเอกสาร

ขนาดฮีปเริ่มต้น

เว้นเสียแต่ว่าจะระบุขนาดฮีพเริ่มต้นและสูงสุดในบรรทัดคำสั่งจะคำนวณจากจำนวนหน่วยความจำบนเครื่อง

  1. ขนาดเริ่มต้นและสูงสุดสูงสุดของไคลเอ็นต์ JVM สำหรับไคลเอ็นต์:

    ขนาดกองสูงสุดเริ่มต้นเป็นครึ่งหนึ่งของหน่วยความจำกายภาพขึ้นไปขนาดหน่วยความจำทางกายภาพของ 192 เมกะไบต์ (MB)และอื่น ๆหนึ่งในสี่ของหน่วยความจำกายภาพขึ้นไปขนาดหน่วยความจำทางกายภาพของ 1 กิกะไบต์ (GB)

  2. ขนาดเริ่มต้นและสูงสุดสูงสุดของเซิร์ฟเวอร์ JVM:

    เมื่อวันที่ JVMs 32 บิตขนาดสูงสุดกองเริ่มต้นสามารถเป็นได้ถึง 1 GB ถ้ามี 4 GB หรือมากกว่าหน่วยความจำกายภาพ บน JVM แบบ 64 บิตขนาดฮีปสูงสุดเริ่มต้นสามารถสูงสุด 32 GB หากมีหน่วยความจำฟิสิคัล 128 GB หรือมากกว่า

การตั้งค่าการกำหนดค่าระบบใดที่ส่งผลต่อค่าเริ่มต้น

คุณสามารถระบุขนาดฮีพเริ่มต้นและสูงสุดโดยใช้แฟล็ก-Xms (ขนาดฮีพเริ่มต้น) และ-Xmx (ขนาดฮีปสูงสุด) ถ้าคุณรู้ว่าฮีปของคุณต้องทำงานได้ดีเท่าไรคุณสามารถตั้งค่า-Xmsและ-Xmxให้เป็นค่าเดียวกันได้


5

XmsและXmxมีธงของเครื่องเสมือน Java (JVM):

  • Xms: initial and minimumJVMheap size
    • Format: -Xmx<size>[g|G|m|M|k|K]
    • Default Size:
      • -server โหมด: 25% ของหน่วยความจำกายภาพฟรี> = 8MB และ <= 64MB
      • -client mode: 25% ของหน่วยความจำกายภาพฟรี> = 8MB และ <= 16MB
    • Typical Size:
      • -Xms128M
      • -Xms256M
      • -Xms512M
    • Function/ Effect:
      • -> JVM เริ่มต้นด้วยการจัดสรรXmsหน่วยความจำขนาด
  • Xmx: maximumJVMheap size
    • Format: -Xmx<size>[g|G|m|M|k|K]
    • Default Size:
      • <= R27.2
        • Windows: 75%ของหน่วยความจำกายภาพทั้งหมดจนถึง1GB
        • Linux/Solaris: 50%ของหน่วยความจำกายภาพที่มีอยู่สูงสุด1GB
      • >= R27.3
        • Windows X64: 75%ของหน่วยความจำกายภาพทั้งหมดจนถึง2GB
        • Linux/Solaris X64: 50%ของหน่วยความจำกายภาพที่มีอยู่สูงสุด2GB
        • Windows x86: 75%ของหน่วยความจำกายภาพทั้งหมดจนถึง1GB
        • Linux/Solaris X86: 50%ของหน่วยความจำกายภาพที่มีอยู่สูงสุด1GB
    • Typical Size:
      • -Xmx1g
      • -Xmx2084M
      • -Xmx4g
      • -Xmx6g
      • -Xmx8g
    • Function/ Effect:
      • -> JVM อนุญาตให้ใช้Xmxหน่วยความจำขนาดสูงสุดได้
        • เมื่อเกินXmxจะjava.lang.OutOfMemoryError
          • จะแก้ไขOutOfMemoryErrorอย่างไร
            • เกินXmxค่า
              • เช่นจาก-Xmx4gถึง-Xmx8g

รายละเอียดเพิ่มเติม

ดู doc อย่างเป็นทางการ: -X ตัวเลือกบรรทัดคำสั่ง


นั่นไม่ใช่สำหรับ JRockit JVM ใช่หรือไม่ (ตรงข้ามกับ JVM ฮอตสปอตของออราเคิล)
peterh

4

จำนวนพารามิเตอร์มีผลต่อขนาดการสร้าง แผนภาพต่อไปนี้แสดงให้เห็นถึงความแตกต่างระหว่างพื้นที่ที่กำหนดและพื้นที่เสมือนในฮีป ในการเริ่มต้นของเครื่องเสมือนพื้นที่ทั้งหมดสำหรับฮีปจะถูกสงวนไว้ ขนาดของพื้นที่ที่สงวนไว้สามารถระบุได้ด้วย-Xmxตัวเลือก หากค่าของ-Xmsพารามิเตอร์มีขนาดเล็กกว่าค่าของ-Xmxพารามิเตอร์พื้นที่ทั้งหมดที่สงวนไว้จะถูกกำหนดให้กับเครื่องเสมือนในทันที พื้นที่ปราศจากข้อผูกมัดมีป้ายกำกับว่า "เสมือน" ในรูปนี้ ส่วนต่าง ๆ ของฮีป (รุ่นถาวรรุ่นที่ใช้งานและรุ่นเยาว์) สามารถขยายไปถึงขีด จำกัด ของพื้นที่เสมือนได้ตามต้องการ

ป้อนคำอธิบายรูปภาพที่นี่

ตามค่าเริ่มต้นเครื่องเสมือนจะเพิ่มหรือลดขนาดฮีปในแต่ละคอลเล็กชันเพื่อพยายามรักษาสัดส่วนของพื้นที่ว่างต่อวัตถุที่มีชีวิตในแต่ละคอลเล็กชันภายในช่วงที่กำหนด ช่วงเป้าหมายแห่งนี้ตั้งอยู่เป็นร้อยละของพารามิเตอร์ที่ - XX:MinHeapFreeRatio=<minimum>และ-XX:MaxHeapFreeRatio=<maximum>และขนาดรวมอยู่ทางทิศด้านล่างโดยและข้างต้นโดย-Xms<min>-Xmx<max>

พารามิเตอร์ค่าเริ่มต้น

MinHeapFreeRatio 40

MaxHeapFreeRatio 70

-Xms 3670k

-Xmx 64m

ค่าเริ่มต้นของพารามิเตอร์ขนาดฮีพบนระบบ 64 บิตมีขนาดเพิ่มขึ้นประมาณ 30% การเพิ่มขึ้นนี้มีวัตถุประสงค์เพื่อชดเชยขนาดวัตถุที่ใหญ่กว่าในระบบ 64 บิต

ด้วยพารามิเตอร์เหล่านี้หากเปอร์เซ็นต์ของพื้นที่ว่างในรุ่นต่ำกว่า 40% การสร้างจะถูกขยายเพื่อรักษาพื้นที่ว่าง 40% จนถึงขนาดสูงสุดของรุ่นที่อนุญาต ในทำนองเดียวกันหากพื้นที่ว่างมากกว่า 70% การสร้างจะถูกทำสัญญาเพื่อให้มีพื้นที่ว่างเพียง 70% ขึ้นอยู่กับขนาดขั้นต่ำของการสร้าง

แอปพลิเคชันเซิร์ฟเวอร์ขนาดใหญ่มักประสบปัญหาสองประการเกี่ยวกับค่าเริ่มต้นเหล่านี้ หนึ่งคือการเริ่มต้นช้าเนื่องจากฮีปเริ่มต้นมีขนาดเล็กและต้องถูกปรับขนาดผ่านคอลเลกชันหลัก ๆ ปัญหาเร่งด่วนยิ่งขึ้นคือขนาดฮีปสูงสุดเริ่มต้นนั้นเล็กเกินไปสำหรับแอปพลิเคชันเซิร์ฟเวอร์ส่วนใหญ่อย่างไม่มีเหตุผล กฎง่ายๆสำหรับแอปพลิเคชันเซิร์ฟเวอร์คือ:

  • ยกเว้นว่าคุณมีปัญหาเกี่ยวกับการหยุดชั่วคราวให้ลองจัดสรรหน่วยความจำให้มากที่สุดกับเครื่องเสมือน ขนาดเริ่มต้น (64MB) มักจะเล็กเกินไป
  • การตั้งค่า -Xms และ -Xmx เป็นค่าเดียวกันจะเพิ่มความสามารถในการคาดการณ์ได้โดยลบการตัดสินใจปรับขนาดที่สำคัญที่สุดออกจากเครื่องเสมือน อย่างไรก็ตามเครื่องเสมือนจะไม่สามารถชดเชยหากคุณเลือกได้ไม่ดี
  • โดยทั่วไปเพิ่มหน่วยความจำเมื่อคุณเพิ่มจำนวนตัวประมวลผลเนื่องจากการจัดสรรสามารถขนานกันได้

    มีบทความเต็ม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.