Hi Andre, thanx very much for the detailed answer ...
> > Maxclinets is defined for two v-hosts - prod with 40 and dev with 3 so > > your right, I can save 7 processes here :-) > > I am not sure, but you may have the wrong understanding of v-hosts. Are you > talking about Apache VirtualHosts, or (VMware) virtual machines here ? > What I mean is that the MaxClients setting for Apache httpd is global, and > does not apply to VirtualHosts separately. Sorry for beeing not precise enough. I was talking about apache VirtualHosts. I've two sites enabled www and dev. So I've to set Maxclients to the total of both maximums concurrent requests - righ? While writing this - I tend to two seperated apache instances - so I can set maxclients per web. > I have no idea how the following is going to show up in an email, but this > is what I get when I enter "pstree" on one of my linux Debian production > systems running Apache httpd and tomcat : > > evm2:~# pstree > init─┬─acpid > ├─apache2───25*[apache2] > ├─avahi-daemon───avahi-daemon > ├─cron > ├─dbus-daemon > ├─6*[getty] > ├─2*[java───14*[{java}]] > ├─jsvc─┬─jsvc > │ └─jsvc───40*[{jsvc}] > ├─klogd > ├─nmbd > ├─nullmailer-send > ├─portmap > ├─rpc.statd > ├─smbd───3*[smbd] > ├─sshd─┬─sshd───bash > │ └─sshd───bash───pstree > ├─syslogd > ├─udevd > └─vmware-guestd Youre right. Unfortunately the difference between thread and process is not important to numproc. You can simulate this by entering the following line in /etc/security/limits.conf (location for ubuntu): "{tomcat-user} hard nproc 60" My pstres looks like: init-+-apache2---8*[apache2] |-cron |-java---109*[{java}] |-java---52*[{java}] |-master-+-pickup | |-qmgr | `-tlsmgr |-mysqld---48*[{mysqld}] |-sshd-+-sshd---sshd---bash---less | `-sshd---bash---pstree `-syslogd So I'm wondering why tomcat needs all these threads and whether I can limit these threads ... (on my system tomcat runs as java). It seams to me that my tomcat rus about 50 threads in idle mode ... thats quite a lot. > In the case above, the relevant part of the Tomcat (5.5) configuration is > (I am not using an Executor, just plain Connectors) : As I know in 5.5 executor is not working - shared executor workes not until tomcat7. > <Connector port="8180" maxHttpHeaderSize="8192" > maxThreads="50" minSpareThreads="5" maxSpareThreads="25" > enableLookups="false" redirectPort="8443" acceptCount="100" > connectionTimeout="20000" disableUploadTimeout="true" /> > > <Connector port="8009" protocol="AJP/1.3" > connectionTimeout="2000" maxThreads="50" minSpareThreads="10" > maxSpareThreads="25" /> So in my undaerstanding you have two executor pools - each configured for maxthreads 50 - in total 100. > and Apache httpd settings are : > > <IfModule mpm_prefork_module> > StartServers 15 > MinSpareServers 15 > MaxSpareServers 25 > MaxClients 200 > MaxRequestsPerChild 0 > </IfModule> > > (So as you see, I am not even following my own principles ;-) ). We all hav to live with diminution :)). > Are you sure that the problems you have in starting scripts/connecting to > the system are really due to that process limit ? Definitely yes. > What for instance does the command "netstat -an --tcp" show ? I've: * 5 CloseWaits on Port 80 * 2 Established ssh on Port 22 * 5 Established on Port 8009 (ajp dev) * 5 Established on Port 8039 (ajp www) * 40 Established on Port 3306 (mysql) While writing this - I will have a look to the c3po connection pool settings - there is a c3po / spring bug (c3po configuration with <props> works not with every versions) ... and ... gotcha :-) The correct c3p0 config leads to the following pstree: init-+-apache2---6*[apache2] |-cron |-java---109*[{java}] |-java---22*[{java}] |-master-+-pickup | |-qmgr | `-tlsmgr |-mysqld---36*[{mysqld}] |-sshd-+-sshd---bash---su---bash | |-sshd---sftp-server | |-sshd---sshd---bash---less | `-sshd---bash---pstree `-syslogd Thanx & Kind regards, Michael
signature.asc
Description: This is a digitally signed message part.