WebLogic, Java, and -d64 option



VIP Member
I'm just curious who is using the -d64 option for Java in WebLogic and why. I don't use it at the moment but I don't use memory over 4G either. I'd be interested in hearing if it helps/hurts/doesn't matter for performance of the JVM for both 8.98 and 9.1 tools.

Just to start I do NOT use -d64 and I set my memory to 3G, for both my 8.98 and 9.1 instances. I don't have any 1st hand experience on the help/hurt/push for performance.


Hi Tom

I'm not really sure -d64 is necessary. Its supposed to "force" 64bit mode if a 32bit JDK has also been installed :

(UNIX or Linux only) Include the -d64 flag in the installation command when using a 32/64-bit hybrid JDK (such as for the HP-PA, HPIA, and Solaris64 platforms). For example, if installing in graphical mode using the Package installer:

For most implementations, its correct and normal for only jRockit or Sun JDK 64bit to be installed, hence it will only utilize a 64bit JDK.

At my last company, that demanded 150-300 concurrent users per weblogic server on Linux, we created two JVM's loadbalanced locally on each machine and utilized -Xms6144 -Xmx6144 for 6Gb of memory per JVM. Worked great using both jRockit and then, later, Sun JDK.

I've found that weblogic running 12c on top of JDK 1.8 is even more efficient - and I've never experienced Garbage Collection issues that we used to deal with back in the day. I haven't yet been brave enough to push to a single JVM with 12Gb for 300 concurrent users, but I actually don't see why that wouldn't be an issue ! I also feel that JVM's running on Windows reflect the same performance as I've seen on Linux - providing whatever antivirus software needs to be installed is correctly "tuned" not to impact the Java classes.

Lastly, since you're using 3Gb - I'm pointing out you're already using 64bit, since 32bit is limited to 2048Mb on Linux (and 1500Mb or so contiguous memory on Windows !) - so if you're wondering whether you can go to 4Gb ? Go ahead ! Just make sure the -Xms and -Xmx are set to the same values per Oracles' recommendations.
Thanks Jon. I'm really just interested in what others are doing. 3G seems OK for my limit of 100 users. I currently run 3 load balanced instances for about 250 users in 8.12/8.98 and 3 load balanced instances for 50 users (going to about 300) in 9.1/9.1.

Thanks for the feedback.
I'd say that 3Gb is a little "squeezed" for 100 concurrent users. 4Gb would be better. Monitor your JVM's when users are online, and you'll probably see that theres less memory available for some decent caching. We worked out that 6Gb was perfect for 150 concurrent users, so for 100 concurrent, 4Gb is a good number.

Of course, that is a reliable 100 concurrent, not a "max" number, so you're probably fine for your numbers no matter what. But if you have some "Free" memory, I'd recommend using it.