Mantis - Resin
Viewing Issue Advanced Details
213 minor always 05-24-05 00:00 11-30-05 14:43
mvr@citrixonline.com  
 
immediate  
closed 3.0.13  
3.0.13 fixed  
none    
none 3.0.14  
0000213: unloaded system has occaisional hiccups and failed incoming connections
RSN-236
test
See description

Notes
(0000246)
mvr@citrixonline.com   
05-24-05 00:00   
Hi,

we are running Resin Pro 3.0.13 on one of our production systems and although the system is not loaded we have occaisional "hiccups" and see some failed incoming connections. One thing we noticed is that mod_caucho doesn't seem to use keep-alive connection when connecting to servlet engine (both run on the same box): at any point in time there are around 30k connections for port 6802 but only a very small number in ESTABLISHED status.
We would like to use keep-alive connections between mod_caucho and Resin, please advise how to achieve this. We have tried different configuration but not succeeded in getting this to work.

Please find below information on the Java, Resin, Apache and OS versions we are using as well as the command line used to start Resin and relevant Apache config entries. The complete resin.conf file is attached. Let me know if you need any additional information.

Thanks,

Malte Muenke | Director, Software Engineering

Citrix Online Division
Citrix Systems, Inc.
5385 Hollister Avenue
Santa Barbara, CA 93111 USA
www.citrix.com


[broker@g2abr1 ec]$ /usr/j2se/bin/java -version java version "1.4.2_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04) BEA WebLogic JRockit(TM) 1.4.2_05 JVM R24.4.0-1 (build ari-38120-20041118-1131-linux-ia32, Native Threads, GC strategy: parallel)


[broker@g2abr1 ec]$ cat resin_stdout.log.20050521 Resin Professional 3.0.13 (built Fri, 06 May 2005 10:08:54 PDT)
Copyright(c) 1998-2004 Caucho Technology. All rights reserved.
  0003471 -- 2 Resin servers Citrix Systems Inc.


[broker@g2abr1 broker]$ /opt/ec/apache2/bin/httpd -V Server version: Apache/2.0.54
Server built: May 12 2005 14:01:32
Server's Module Magic Number: 20020903:9
Architecture: 32-bit
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/worker"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D HTTPD_ROOT="/opt/ec/apache2"
 -D SUEXEC_BIN="/opt/ec/apache2/bin/suexec"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

[broker@g2abr1 broker]$ uname -a
Linux g2abr1.sjc 2.4.21-27.0.2.ELsmp 0000001 SMP Wed Jan 12 23:35:44 EST 2005 i686 i686 i386 GNU/Linux

/usr/j2se/bin/java -server -Xms512m -Xmx1518m -Xgcprio:pausetime -Xgcreport -Xgcpause -Xverbosetimestamp -Xverbose:memory -Duser.region=US -Djava.rmi.server.hostname=127.0.0.1 -Xverboselog:/var/ec/gc.log -Xss1m -Dresin.home=
/opt/ec/resin-pro-3.0.13 -Djava.util.logging.manager=com.caucho.log.LogManagerImpl com.caucho.server.resin.Resin -conf /opt/broker/conf/resin.conf-DONTTOUCH -stdout /usr/opt/var/ec/resin_stdout.log -stderr /usr/opt/var/ec/resin_stderr.log


httpd.conf:

<IfModule worker.c>
StartServers 4
MaxClients 500
MinSpareThreads 100
MaxSpareThreads 150
ThreadsPerChild 50
MaxRequestsPerChild 0
</IfModule>
...

CauchoHost 127.0.0.1 6802
<LocationMatch /(servlet|axis)/*>
  SetHandler caucho-request
</LocationMatch>

(0000247)
ferg   
05-24-05 00:00   
The only configuration items which look odd are the MaxRequestsPerChild 0 and having thread-max be lower than the expected max Apache threads. I'd need to check if MaxRequestPerChild of 0 is the same as infinite. If 0 really means zero, then Apache should be closing the Apache process after each request.

The thread-max can be bumped up to 500.
(0000248)
ferg   
05-24-05 00:00   
checked with 3.0.14 snapshot with the mapping/keepalive fixes and the ESTABLISHED connections make up the strong majority of connections, i.e. keepalive is working as expected.