Http connector performance test AS7
claudio4j Feb 28, 2012 4:18 PMHi, I am doing some performance testing related to the http connector of jbossweb, and I see AS 7.1 is not good as EAP 5.1.2.
Therefore I ask some help, as the settings may need some adjustments.
Sees like I can perform 800.000 connections from ab to EAP 5.1.2, but cannot submit 150.000 to AS 7.1
The EAP 5.1.2 configurations and results at http://pastebin.com/F729pygq
The AS 7.1 configurations and results at http://pastebin.com/qhrQ1def
The relevant pieces are
1) EAP 5.1.2 http connector (server.xml)
connectionTimeout="10000" redirectPort="8443" acceptCount="50" maxThreads="2048"
2) EAP 5.1.2 JVM configurations
-XX:NewSize=768m -XX:MaxNewSize=768m -Xms2048m -Xss256k -Xmx2048m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC
3) ab test to EAP 5.1.2
ab -n 800000 -c 100 'http://10.1.201.99:8080/images/logo.gif'
4) EAP 5.1.2 results
Concurrency Level: 100 Time taken for tests: 130.762 seconds Complete requests: 800000 Failed requests: 0 Write errors: 0 Total transferred: 1690524667 bytes HTML transferred: 1452107085 bytes Requests per second: 6118.00 [#/sec] (mean)
1) AS 7.1 http connector (standalone-lab1.xml)
<subsystem xmlns="urn:jboss:domain:threads:1.1"> | |
<thread-factory name="my_tf" group-name="group1" thread-name-pattern="my_tf_" priority="1"/> | |
<bounded-queue-thread-pool name="http_queue" allow-core-timeout="true"> | |
<core-threads count="100"/> | |
<queue-length count="50"/> | |
<max-threads count="2048"/> | |
<keepalive-time time="30" unit="seconds"/> | |
<thread-factory name="my_tf"/> | |
</bounded-queue-thread-pool> |
2) AS 7.1 JVM configurations
-XX:NewSize=768m -XX:MaxNewSize=768m -Xms2048m -Xss256k -Xmx2048m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC
3) ab test to AS 7.1
ab -n 50000 -c 100 'http://10.1.201.99:8180/logo.gif'
I copied logo.gif from EAP 5.1.2 to AS 7.1
4) AS 7.1 results
$ ab -n 150000 -c 100 'http://10.1.201.99:8180/logo.gif' ; date This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 10.1.201.99 (be patient) Completed 15000 requests Completed 30000 requests Completed 45000 requests Completed 60000 requests Completed 75000 requests Completed 90000 requests Completed 105000 requests Completed 120000 requests Completed 135000 requests apr_poll: The timeout specified has expired (70007) Total of 149958 requests completed Tue Feb 28 18:17:02 BRT 2012
OS configuration
$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 47440 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65536 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 16384 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
Observations related to the test.
a) before each test run, must wait for 1 minute for the OS to finish all TIME_WAIT connections. I found out that for my computer, around 27.000 connections is the limit
b) I choose not to use ab keepalive, to force the connector usage
c) When running ab against AS 7.1 it quickly top the max-threads=2048 and the connections keeps around 28.000 then ab finish with timeout errors.
I ask if there are other settings I must look at or suggestions on how to configure the system.