Използвам под параметрите на GC паметта:
export MEM_OPTS = "- Xmx2900m -Xms2900m -XX: NewSize = 786m -XX: MaxNewSize = 786m -XX: + UseTLAB -XX: MaxPermSize = 128m"
Аз съм с 32-битов JVM.My сървър RAM е 10 GB.
От сайта на Oracle имам
Защо не мога да получа по-голяма купчина с 32-битовия JVM?
Максималната теоретична граница на куп за 32-битовия JVM е 4G. Поради различни допълнителни ограничения, като например наличен суап, използване на адресното пространство на ядрото, фрагментация на паметта и натоварване с VM, на практика лимитът може да бъде много по-нисък, На повечето модерни 32-битови Windows системиМаксималният размер на купчината ще варира от 1.4G до 1.6G. При 32-битовите ядра на Solaris адресното пространство е ограничено до 2G. При 64-битови операционни системи, работещи с 32-битова VM, максималният размер на купчината може да бъде по-висок, приближавайки се към 4G на много системи Solaris. От Java SE 6, функцията boot.ini на Windows / 3GB не се поддържа. Ако приложението ви изисква много голяма купчина, трябва да използвате 64-битова виртуална машина на версия на операционната система, която поддържа 64-битови приложения. За подробности вижте Java System Supported System Configurations.
ОК. Сега ви позволява предполагам моят 32-битов сървър може да отнеме 3.2 GB.
-Xmx is the total heap memory -XX:NewSize / -XX:MaxNewSize is the range of the size of the new generation inside that heap the difference is the range of the size of the old generation -XX:PermSize / -XX:MaxPermSize is the range of the size of the permanent generation, which is the non-heap memory
Според това, 3.2 GB не трябва да включва PermSize, тъй като това не е съдържание на купчина.
Кажи ми, ако греша.
Мога да разделя 3.2 GB на Xmx и NewSize. Нали?
Отговори:
1 за отговор № 1NewSize е част от максималния размер на купчината. Трябва да е по-малък.
Бих използвал 64-битовия JVM, ако имате Java 6, тъй като това ще направи живота ви по-лесен. ;) Освен ако не се налага да използвате 32-битови библиотеки за споделяне, има малко надолу.
BTW -XX:+UseTLAB
е по подразбиране.