-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Jim,

On 3/31/20 23:57, o haya wrote:
> I think I figured out what is going on.  I think that the
> parameters were working all right, but the memory that is shown by
> the "free" command isn't corresponding to the JVM memory.
>
> I put together a small JSP that uses
> Runtime.getRuntime().totalMemory() and .freeMemory() and and when I
> access that page, that shows the JVM memory is as I configured with
> the Xmx/Xms.

Yes, this is an error in your interpretation of your observations.

Linux will lie, cheat, and steal in order to manage memory. It does
that because processes lie, cheat, and steal, in order to get the
resources they want. Some process says it needs a couple of gigs of
RAM? Yeah, right, we'll believe it when we see it.

Linux is doing its best to operate in an environment where processes
often say they need resources that they don't actually use. In order
to avoid prematurely running out of resources, the kernel will lie to
the process and say the resources are available but not actually
allocate them until the process tries to USE those resources.

This is a Good Thing. free/ps/top/etc are telling you the truth. Java
doesn't try to allocate the entire heap immediately, so Java thinks it
can have all 4GiB of heap space and it will probably get it. But maybe
not :) [1]

- -chris

[1] https://www.kernel.org/doc/gorman/html/understand/understand016.html

> On Tue, Mar 31, 2020 at 10:03 PM o haya <ohaya1...@gmail.com>
> wrote:
>
>> Hi,
>>
>> BTW, in the catalina.out log file, I do see these lines:
>>
>> 01-Apr-2020 01:53:17.775 INFO [main]
>> org.apache.catalina.startup.VersionLoggerListener.log Command
>> line argument: -Dfile.encoding=UTF-8 01-Apr-2020 01:53:17.775
>> INFO [main] org.apache.catalina.startup.VersionLoggerListener.log
>> Command line argument: -Xms4096m 01-Apr-2020 01:53:17.775 INFO
>> [main] org.apache.catalina.startup.VersionLoggerListener.log
>> Command line argument: -Xmx4096m 01-Apr-2020 01:53:17.775 INFO
>> [main] org.apache.catalina.startup.VersionLoggerListener.log
>> Command line argument: -XX:NewSize=256m 01-Apr-2020 01:53:17.775
>> INFO [main] org.apache.catalina.startup.VersionLoggerListener.log
>> Command line argument: -XX:MaxNewSize=256m
>>
>> So from that logging, it seems like Tomcat IS seeing those
>> parameters, so why does it not seem to be using the larger
>> amounts of memory?
>>
>> Thanks, Jim
>>
>>
>> On Tue, Mar 31, 2020 at 9:44 PM o haya <ohaya1...@gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> I have Tomcat installed in /apps/apache-tomcat-9.0.20/
>>>
>>> In the /apps/apache-tomcat-9.0.20/bin/setenv.sh, I have:
>>>
>>> #!/bin/bash
>>>
>>> JAVA_HOME=/apps/jdk1.8.0_221
>>>
>>> CATALINA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
>>> -server \ -Xms4096m -Xmx4096m -XX:NewSize=256m
>>> -XX:MaxNewSize=256m -XX:+DisableExplicitGC \
>>> -Djava.security.egd=file:/dev/./urandom"
>>>
>>>
>>> Then to start Tomcat, I:
>>>
>>> cd /apps/apache-tomcat-9.0.20/
>>>
>>> bin/startup.sh
>>>
>>>
>>>
>>> Here's an example of running:
>>>
>>> [root@ip-192-168-218-224 apache-tomcat-9.0.20]# free total
>>> used        free      shared  buff/cache available Mem:
>>> 32780604      913012    27429012       16716     4438580
>>> 31441736 Swap:             0           0           0
>>> [root@ip-192-168-218-224 apache-tomcat-9.0.20]# cd
>>> /apps/apache-tomcat-9.0.20/ [root@ip-192-168-218-224
>>> apache-tomcat-9.0.20]# [root@ip-192-168-218-224
>>> apache-tomcat-9.0.20]# bin/startup.sh Using CATALINA_BASE:
>>> /apps/apache-tomcat-9.0.20 Using CATALINA_HOME:
>>> /apps/apache-tomcat-9.0.20 Using CATALINA_TMPDIR:
>>> /apps/apache-tomcat-9.0.20/temp Using JRE_HOME:
>>> /apps/jdk1.8.0_221 Using CLASSPATH:
>>> /apps/apache-tomcat-9.0.20/bin/bootstrap.jar:/apps/apache-tomcat-9.0
.20/bin/tomcat-juli.jar
>>>
>>>
Tomcat started.
>>> [root@ip-192-168-218-224 apache-tomcat-9.0.20]# free total
>>> used        free      shared  buff/cache available Mem:
>>> 32780604     1343288    26998784       16716     4438532
>>> 31011556
>>>
>>>
>>>
>>> You are right that it appears like it is not using the
>>> CATALINA_OPTS to set the memory, but I don't know why ???
>>>
>>>
>>> Thanks, Jim
>>>
>>>
>>>
>>>
>>>
>>> On Tue, Mar 31, 2020 at 12:52 PM Mark Thomas <ma...@apache.org>
>>> wrote:
>>>
>>>> On 31/03/2020 17:42, o haya wrote:
>>>>> Thanks for the infos.
>>>>>
>>>>> I was thinking the same thing you were thinking, that it
>>>>> might be
>>>> 32-bit
>>>>> JVM, but when I run "java -version" I am getting:
>>>>>
>>>>> java -version java version "1.8.0_221" Java(TM) SE Runtime
>>>>> Environment (build 1.8.0_221-b11) Java HotSpot(TM) 64-Bit
>>>>> Server VM (build 25.221-b11, mixed mode)
>>>>>
>>>>> Isn't that confirming that this is a 64-bit JVM?
>>>>>
>>>>> ALSO FYI, I did test where I also added "-d64" parameter to
>>>>> the CATALINA_OPTS, and same thing happened.
>>>>
>>>> Exactly how are you setting those? It looks like the changes
>>>> you are making aren't having any effect. If you specified a
>>>> 4Gb min heap on a 32-bit JVM I'd expect Java to either refuse
>>>> to start or crash on start.
>>>>
>>>> Mark
>>>>
>>>>
>>>>>
>>>>> Jim
>>>>>
>>>>> On Tue, Mar 31, 2020 at 11:10 AM Olaf Kock
>>>>> <tom...@olafkock.de> wrote:
>>>>>
>>>>>>
>>>>>> On 31.03.20 17:02, o haya wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I am running Tomcat 9.02 under RHEL 7 (under Oracle JDK
>>>>>>> 1.8), and I
>>>> would
>>>>>>> like to increase the memory that is available to Tomcat
>>>>>>> when it is
>>>>>> running.
>>>>>>>
>>>>>>> I have tried sourcing the following:
>>>>>>>
>>>>>>> JAVA_OPTS="-Djava.awt.headless=true
>>>>>>> -Dfile.encoding=UTF-8 -server \ -Xms4096m -Xmx4096m
>>>>>>> -XX:NewSize=256m -XX:MaxNewSize=256m
>>>>>>> -XX:+DisableExplicitGC \
>>>>>>> -Djava.security.egd=file:/dev/./urandom -d64"
>>>>>>
>>>>>> You want to use CATALINA_OPTS for memory settings, not
>>>>>> JAVA_OPTS.
>>>>>>
>>>>>> JAVA_OPTS are used for every JVM start, including when
>>>>>> you run shutdown.sh - that one needs only a minimal
>>>>>> amount of memory for short time.
>>>>>>
>>>>>>> and also:
>>>>>>>
>>>>>>> CATALINA_OPTS="-Djava.awt.headless=true
>>>>>>> -Dfile.encoding=UTF-8
>>>> -server \
>>>>>>> -Xms4096m -Xmx4096m -XX:NewSize=256m
>>>>>>> -XX:MaxNewSize=256m -XX:+DisableExplicitGC \
>>>>>>> -Djava.security.egd=file:/dev/./urandom"
>>>>>>
>>>>>> your CATALINA_OPTS will be combined with the JAVA_OPTS,
>>>>>> so that you configure the memory twice.
>>>>>>
>>>>>> But -Xms and -Xmx are the way to configure the memory.
>>>>>>
>>>>>>> but even with those, when I check memory using "free",
>>>>>>> it is only
>>>> using
>>>>>>> about 1.5GB.
>>>>>>>
>>>>>>> Can someone tell me how I can accomplish this?
>>>>>>
>>>>>> Sounds suspiciously like you're running on 32bit, either
>>>>>> the OS or
>>>> JVM.
>>>>>> Upgrade to 64bit to have access to more memory.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> -----------------------------------------------------------------
- ----
>>>>>>
>>>>>>
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>>>> For additional commands, e-mail:
>>>>>> users-h...@tomcat.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> -------------------------------------------------------------------
- --
>>>>
>>>>
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>> For additional commands, e-mail:
>>>> users-h...@tomcat.apache.org
>>>>
>>>>
>
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl6EkdcACgkQHPApP6U8
pFirhw/+JgLdSM+hgsOcCeifrhT3yG0LgPeoF/qXVxVSbP0slrSxr6dcFXtNfEH/
dvTbcIOk+sHx8e3vzJnLARQ2INpH0AtCQGYd7tR2jEklp/8KfAJYRFYqk93AEwph
guoRiUhs/4xqiG4KnuaOd1JC0PYKjZSSOVDiN9c0zq3808uomJeReyR1tj+NsqQN
fT8xKL5RTCWKcVKCbKpbS0lo0JNLgGTAWfDDmkostq1O8D/QnMYkxtPYLaux1UCv
vhohZGHxcetqkRTsWTW4jbqXQbJ9R+DZ+sahajpWArsUfNvF79Wcw0QHwxiyxlgW
BaIMG3KhGY07nW0FHd93jWkzT58BZ5XJw4K1yryF03QgGyR26tX6Wc95/Q4IgwFA
38eRxiOC3gGeN3TNc6+KmLbtZuoCbi2ajyVDVEzgskWLN069KIdeIcExYSPC1NCF
fqHRf1fPLgrde++tzJjWMWczhdTcsWZQyclhTRX8Fpqkq7mri7c/16T0yDRjrsdK
UKN6a18IC4kX5OhxHg3wS7sYpgqVsjq4RqNZyhz5ideMuTZUOL/24ywtAtRVjram
SFe9Q+hs1kR4MxdaE+8mkpd12cSZ7ScW6vj/80ndw5rQg0C8MCwqi3qQlEC36Huh
sFZq5xEl7hpJkbmZ1OWQIuJKCDqtwnG562JbZ4pYL0uPmwp3r3I=
=Wcgn
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to