6 ms·
Would a good approach to major JVM upgrades in production be to remove all but critical JVM flags in the new version, and run it on a subset of nodes, then? Af
by EdSharkey 10y ago
Would a good approach to major JVM upgrades in production be to remove all but critical JVM flags in the new version, and run it on a subset of nodes, then?
After getting a baseline measurement of performance with JVM defaults, experiment with tuning a couple of settings, measure some more, make sure nothing breaks under load. Repeat until new JVM version seems stable/performs better/etc even under worst load and then upgrade all nodes to the latest and greatest?
- billsmithaustin 10y agoYes, I think that approach would avoid propagating inappropriate or unnecessary settings.
- user5994461 10y agoYes. The good approach when you're given a legacy java application with tons of flags is to removed ALL the optimizations flags for the heap and the GC. Most of the settings found in legacy projects or on the internet are either obsolete or defaults in the latest version of the JVM. The only mandatory heap flag is: "-Xms???M -Xmx???M" which set the heap size of the application to ??? megabytes.
- benzewdu 10y agoNot even -Xms -Xmx, there's heuristics built in to appropriately size the gc spaces... http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/tip/src/share/vm/memory/collectorPolicy.cpp http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/tip/src/sh...
- user5994461 10y agoRight. Most applications don't need that. It's only the server apps running 24/7 on fixed hardware that should have a defined memory usage.