0

I'm tuning my JVM application. JAVA_OPTS I set is like following:

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
JAVA_OPTS="$JAVA_OPTS -server"
JAVA_OPTS="$JAVA_OPTS -Xms2048m"
JAVA_OPTS="$JAVA_OPTS -Xmx2048m"
JAVA_OPTS="$JAVA_OPTS -XX:NewSize=256m"
JAVA_OPTS="$JAVA_OPTS -XX:MaxNewSize=256m"
JAVA_OPTS="$JAVA_OPTS -XX:PermSize=256m"
JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=256m"

I roughly understood about the Generations. But I'm not sure my setting is appropriate. As far as I understood, the size of new generation is 256 and so remain(1792m) is the size of old generation(because Perm generation is not heap).

Am I right? And is my setting appropriate?

SunghoMoon
  • 1,329
  • 1
  • 15
  • 21

1 Answers1

1

The optimal settings for an average Java application are

JAVA_OPTS=""

Or why should the Java authors specify defaults everyone would change.

Without knowing anything about your application and your available memory, there's no point in changing the defaults.

Actually, -Dfile.encoding=UTF-8 might make sense if you want to use UTF-8 on a system using something else by default (but changing the OS would be better). Forget the others, unless you know how much memory you'll need (and then use -Xmx and still forget the remaining ones).

maaartinus
  • 44,714
  • 32
  • 161
  • 320