tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <>
Subject Anyway to set more max ram to Tomcat 32bit?
Date Fri, 04 Jan 2019 01:40:12 GMT
Something wierd seems to be going on... I have an application on tomcat that used to be on
a physical windows server 2008 standard 32-bit which I p2v'd with vmware converter over as
a VM. I'm upgrading the server to windows server 2008 r2 64bit and instead of doing an inplace,
I'm just building another one up and doing parallel side by side, and its a fresh VM from
the start, no p2v stuff.... 

The strange part is I was able to set a max memory in the tomcat9w.exe configuration tool
to about 1600 Megabytes and that was the hitting of the wall on that setup (the original physical
one that I p2v'd to a VM), I can set less ram, but I cannot set it more than 1600 otherwise
when I try to start the tomcat service in services.msc it will just crap outs. 

So my thinking was since I have to stay on 32-bit of tomcat and 32-bit of Java JVM anyhow
(long story...) that it might be better to put it in a 64-bit OS (server 2008r2) rather than
the standard 32bit of server 2008. Long story short, from a fresh VM, on this box I'm only
able to set a max total ram in tomcatw as around 1000 m (1GB) and if I set anymore it will
not start, as in I cannot get tomcat service to start... so the wall is around 1GB...

As a test, I installed the tomcat (zip extract, not using msi or exe installer) to my own
client workstation laptop running the latest windows 10 1809 etc and once again I hit the
1GB wall and cannot even get it to go up to 1.6GB, even though I have like 16GB ram on my
laptop machine...

I have googled this for a long time and apparently it has to do with the way the operating
system itself (in this case windows, be it windows server 2008 std, 2008 r2, or win10 etc)
handles per process memory limitations and thread memory allocations that by default only
allow around 1.5 to 2 g of ram per process and that this is what is constraining the tomcat
apache jvm and not the programs itself.... 

But if this is indeed an OS difference, I checked on my original 32bit server2008 std, the
one that I did P2V, and it didn't have anything special set in the boot.ini or any bcdedit
parameters that allow it to see more ram per process nor anything like a /3GB flag etc etc

The only other thing I can think of is that maybe there is a difference between a VM and a
physical raw bare metal box in how it allocates ram, and that I can get more contigous memory
that tomcat/jvm requires when running on a 32bit OS on a physical box as opposed to and compared
to a 64bit OS in a VM?

Why is it I can get the exact same version of Tomcat (bit by bit the same) to handle up to
1600m in 32bit version of server 2008 but on server 2008r2 64bit or even server 2016 64bit
I can only get tomcat to do up to around 1GB total max? They are both using the same Java
version jvm etc etc etc

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message