RE: Close to solution ( WAS RE: mod_jk testing)

2002-06-21 Thread Jan Singer

Your solution to Glenn's concern for jk 1.2.0 is just a change to my patch for 
timeouts of connections. I didn't implement a timer, so the connections aren't closed 
if they are not used. The timeout-evaluation is done in jk_get_endpoint.

I'll try to add this, but since I'm new to this maybe someone should beat me ;-)

d:-> Jan

-Ursprüngliche Nachricht-
Von: GOMEZ Henri [mailto:[EMAIL PROTECTED]] 
Gesendet: Freitag, 21. Juni 2002 12:49
An: Tomcat Developers List
Cc: Mladen Turk; Glenn Nielsen; Jan Singer
Betreff: RE: Close to solution ( WAS RE: mod_jk testing)


>Think we can close that!

Ouf.

>I've created the worker pool modifiable through workers.properties with 
>the worker.ajp13.poolsize.

Good

>The sadest thing is that I was so close the solution on day 0 (remember 
>the  mutexes?). Well what ever!

ok

>There is some minor bug when using loglevel=debug, and it works 
>currently only for ajp13 (well, ajp common).

Minor bug with loglevel=debug, tell su more ...

>Also I'll need the Sleep() for unix.

Hum, I really dislike to use Sleep/sleep in mod_jk. Delaying something is not an issue.

>Since I newer commited the code ever, and the changes are in (4 or 5 
>files I think), I'll mail it to Henri or someone else to do the dirty 
>work ;).

Send the patches to the list

>Now the crucial (see at the bottom the TC and date.jsp results
>statet at
>different times):
>
>Test results:
>
>worker.ajp13.poolsize=1
>worker.ajp13.cachesize=1
>
>Server Software:Apache/2.0.40-dev
>Server Hostname:localhost
>Server Port:8000
>
>Document Path:  /examples/jsp/snp/snoop.jsp
>Document Length:712 bytes
>
>Concurrency Level:  200
>Time taken for tests:   103.5572 seconds
>Complete requests:  1
>Failed requests:0
>
>
>Test results:
>
>worker.ajp13.cachesize=25
>worker.ajp13.poolsize=25
>
>
>
>Server Software:Apache/2.0.40-dev
>Server Hostname:localhost
>Server Port:8000
>
>Document Path:  /examples/jsp/snp/snoop.jsp
>Document Length:712 bytes
>
>Concurrency Level:  100
>Time taken for tests:   41.586847 seconds
>Complete requests:  1
>Failed requests:0
>
>Test with 200:
>
>Concurrency Level:  200
>Time taken for tests:   38.962629 seconds
>Complete requests:  1
>Failed requests:0
>
>
>Document Path:  /examples/jsp/dates/date.jsp
>Document Length:453 bytes
>
>Concurrency Level:  200
>Time taken for tests:   47.274576 seconds
>Complete requests:  1
>Failed requests:2180
>   (Connect: 0, Length: 2180, Exceptions: 0)
>
>
>TC Test started on 12:09:11 secs (all the XX seconds)
>
>Server Software:Apache
>Server Hostname:localhost
>Server Port:8080
>
>Document Path:  /examples/jsp/dates/date.jsp
>Document Length:452 bytes
>
>Concurrency Level:  200
>Time taken for tests:   44.850752 seconds
>Complete requests:  1
>Failed requests:0
>
>Server Software:Apache
>Server Hostname:localhost
>Server Port:8080
>
>TC Test started on 12:11:01 secs (first we have X, then XX seconds)
>
>Document Path:  /examples/jsp/dates/date.jsp
>Document Length:452 bytes
>
>Concurrency Level:  200
>Time taken for tests:   40.644117 seconds
>Complete requests:  1
>Failed requests:7966
>   (Connect: 0, Length: 7966, Exceptions: 0)

I re-tested mod_jk 1.2.0 against TC 3.3.1 / TC 4.0.4 under Apache 1.3 and 2.0 with 
helloworld servlet, and didn't find anymore errors (ab requested 10 Millions pages 
with 127 concurrents)

The problem was problably due to the way ab works, and many thanks to have discovered 
it :)

We should revue your patches and also the keep-alive add-on 
proposal sent by Jan Singer (firewall/keepalive)

I also listen to Glenn concern about childs/ajp13 and also he's rigth here. Imagine 
the following situation.

An Apache server is used to handle statics pages and route requests to 
tomcat(s).

Under load Apache will create many childs/threads. 

At some times, requests will be for tomcat, so the child/thread 
which got the request will create the ajp13 connection.

You could end-up with an Apache where all childs/threads will 
open an ajp13 connection, even if they do not send any more requests to tomcats.

A solution could be to close open connection after some moments of inactivity, ie a 
stressed child will see if it didn't used 
it's ajp13 connection for some minutes, and will drop it if 
the request it has to process is not for tomcat.
This should be simple to a

RE: Close to solution ( WAS RE: mod_jk testing)

2002-06-21 Thread GOMEZ Henri

>Think we can close that!

Ouf.

>I've created the worker pool modifiable through workers.properties with
>the worker.ajp13.poolsize.

Good

>The sadest thing is that I was so close the solution on day 0 (remember
>the  mutexes?).
>Well what ever!

ok

>There is some minor bug when using loglevel=debug, and it works
>currently only for ajp13 (well, ajp common).

Minor bug with loglevel=debug, tell su more ...

>Also I'll need the Sleep() for unix.

Hum, I really dislike to use Sleep/sleep in mod_jk. Delaying something
is not an issue.

>Since I newer commited the code ever, and the changes are in (4 or 5
>files I think), I'll mail it to Henri or someone else to do the dirty
>work ;).

Send the patches to the list

>Now the crucial (see at the bottom the TC and date.jsp results 
>statet at
>different times):
>
>Test results:
>
>worker.ajp13.poolsize=1
>worker.ajp13.cachesize=1
>
>Server Software:Apache/2.0.40-dev
>Server Hostname:localhost
>Server Port:8000
>
>Document Path:  /examples/jsp/snp/snoop.jsp
>Document Length:712 bytes
>
>Concurrency Level:  200
>Time taken for tests:   103.5572 seconds
>Complete requests:  1
>Failed requests:0
>
>
>Test results:
>
>worker.ajp13.cachesize=25
>worker.ajp13.poolsize=25
>
>
>
>Server Software:Apache/2.0.40-dev
>Server Hostname:localhost
>Server Port:8000
>
>Document Path:  /examples/jsp/snp/snoop.jsp
>Document Length:712 bytes
>
>Concurrency Level:  100
>Time taken for tests:   41.586847 seconds
>Complete requests:  1
>Failed requests:0
>
>Test with 200:
>
>Concurrency Level:  200
>Time taken for tests:   38.962629 seconds
>Complete requests:  1
>Failed requests:0
>
>
>Document Path:  /examples/jsp/dates/date.jsp
>Document Length:453 bytes
>
>Concurrency Level:  200
>Time taken for tests:   47.274576 seconds
>Complete requests:  1
>Failed requests:2180
>   (Connect: 0, Length: 2180, Exceptions: 0)
>
>
>TC Test started on 12:09:11 secs (all the XX seconds)
>
>Server Software:Apache
>Server Hostname:localhost
>Server Port:8080
>
>Document Path:  /examples/jsp/dates/date.jsp
>Document Length:452 bytes
>
>Concurrency Level:  200
>Time taken for tests:   44.850752 seconds
>Complete requests:  1
>Failed requests:0
>
>Server Software:Apache
>Server Hostname:localhost
>Server Port:8080
>
>TC Test started on 12:11:01 secs (first we have X, then XX seconds)
>
>Document Path:  /examples/jsp/dates/date.jsp
>Document Length:452 bytes
>
>Concurrency Level:  200
>Time taken for tests:   40.644117 seconds
>Complete requests:  1
>Failed requests:7966
>   (Connect: 0, Length: 7966, Exceptions: 0)

I re-tested mod_jk 1.2.0 against TC 3.3.1 / TC 4.0.4 under
Apache 1.3 and 2.0 with helloworld servlet, and didn't find
anymore errors (ab requested 10 Millions pages with 127 concurrents)

The problem was problably due to the way ab works, and many thanks
to have discovered it :)

We should revue your patches and also the keep-alive add-on 
proposal sent by Jan Singer (firewall/keepalive)

I also listen to Glenn concern about childs/ajp13 and also he's rigth here.
Imagine the following situation.

An Apache server is used to handle statics pages and route requests to 
tomcat(s).

Under load Apache will create many childs/threads. 

At some times, requests will be for tomcat, so the child/thread 
which got the request will create the ajp13 connection.

You could end-up with an Apache where all childs/threads will 
open an ajp13 connection, even if they do not send any more requests
to tomcats.

A solution could be to close open connection after some moments
of inactivity, ie a stressed child will see if it didn't used 
it's ajp13 connection for some minutes, and will drop it if 
the request it has to process is not for tomcat.
This should be simple to add to jk 1.2.0

On jk 2.0.0, another solution, could be to add to 
workers.properties a maxconnection  :

worker.myhost-ajp13.maxconnection=25

In that case, we should have in jk2 a shared pool of connections
between threads (for IIS/AP2.0/IPLANET - easy) and between childs 
(AP 1.3 - how to do this ?) and get the connection from here.

What do you think ?


 


 

--
To unsubscribe, e-mail:   
For additional commands, e-mail: