Thanks Craig.
I'm trying to work out just what I should be doing. 'Fraid I'm rather a
novice here. I've used the top command to see what memory is being used (see
output below), but I'm not sure what to make of it. I can certainly start
the 7th tomcat session on its own, if I don't start the others first, so
tomcat settings are ok, I guess.
If I understand things correctly, each instance of Tomcat starts its own
JVM. The amount of memory each JVM then uses is governed by the starting
memory (eg -Xms64m) and then "it consumes as little memory as possible"
[from Sun site] until, presumably, it reaches the maximum allowable memory,
eg -Xmx256m.
The applications I am running are very small, and I don't imagine that they
would need a great deal of memory at all. The cpu is idle about 80% most of
the time. Does it therefore make sense to use smaller starting memories for
the JVMs, such as -Xms32m? If I'm allowing up to 256m maximum, is that
across all JVMs, or for each one? Does that mean I can then open 256 / 32 =
8 instances???
Sorry I'm asking so many dumb questions, but I'm having trouble finding the
right sort of info on this subject, most of it seems geared towards big
applications, and I think I really need to master this, before I rush out
and buy another server to run only 6 more tiny applications!
Thanks, Max Hugen
>>>>>>>>>>>>The console output of the top command>>>>>>>>>>>>>>>>>>
9:42am up 1 day, 14:17, 1 user, load average: 0.15, 0.06, 0.01
271 processes: 270 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: 2.9% user, 16.3% system, 0.0% nice, 80.6% idle
Mem: 517188K av, 509160K used, 8028K free, 193344K shrd, 75172K buff
Swap: 131536K av, 0K used, 131536K free 123504K cached
PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
30036 admin 15 0 1228 1228 880 R 0 17.1 0.2 0:19 top
2385 root 1 0 28144 27M 2516 S 48 1.4 5.4 0:01 java
2347 root 0 0 28144 27M 2516 S 48 0.3 5.4 0:03 java
16308 httpd 0 0 6456 6456 6032 S 0 0.1 1.2 0:00 httpd
1 root 0 0 120 120 48 S 0 0.0 0.0 0:04 init
2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd
3 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kupdate
4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kpiod
5 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kswapd
6 root -20 -20 0 0 0 SW< 0 0.0 0.0 0:00
mdrecoveryd
89 root 0 0 300 300 208 S 0 0.0 0.0 0:02 syslogd
98 root 0 0 416 416 0 S 0 0.0 0.0 0:00 klogd
649 root 0 0 152 152 68 S 0 0.0 0.0 0:00 crond
661 root 0 0 108 108 36 S 0 0.0 0.0 0:00 inetd
670 root 0 0 160 160 0 S 0 0.0 0.0 0:00 nlservd
678 root 0 0 3232 3232 2200 S 0 0.0 0.6 0:00 httpd
713 postgres 0 0 664 664 272 S 0 0.0 0.1 0:01
postmaster
>>>>>>>>>>>>>>>>>end>>>>>>>>>>>>>>>>>>>>>>>>>>>>
----- Original Message -----
From: Craig R. McClanahan
To: Tomcat Users List ; Max Hugen
Sent: Tuesday, August 28, 2001 1:20 AM
Subject: Re: OutOfMemory - Set Java Heap Size?
On Mon, 27 Aug 2001, Max Hugen wrote:
>
> Unfortunately, I still cannot launch a 7th Tomcat process, and I don't
> understand why not. I feel I'm missing something, but I just can't figure
it
> out. 6 works, but adding a seventh raises the OutOfMemoryError.
Well, have you checked your OS's memory and swap settings yet? Because
each JVM uses its own completely separate heap space, it's quite easy to
run out of either physical memory or swap space -- once that happens, it
doesn't matter how big you set Java's heap size to be, because the OS
won't be able to satisfy it anyway.
A quick way to check the settings in your 7th setup is to start that one
*alone* on the machine. If that works, then there's nothing wrong with
your Tomcat settings. If it's really an OS/memory you'll probably have
this problem with *whichever* JVM you try to start last.
Craig