Since our last upgrade to Solaris 10U8 on a Sun Fire X4200(2 cores, 8GB
memory) and Sun Fire X4450 (16 cores, 36GB memory), we notice a serious apache performance drop. Especially when you disable the keepalive directive, web pages seems to hang for a moment before completing. The following tests show that it might be related to the combination of Solaris 10 U 8, Apache APR and the Intel e1000g Gigabit Ethernet Adapter. When we inject an extra layer based on NCA into the network stack, the problem is gone. These are the results of benchmark tests with the apache benchmark tool 'ab'. In every case the ab tool requests a static html page of 33K and a dynamic PHP page. Tests were done both with Apache 2.2.14 and Sun JWS 7. The tables shows 'request per second'. Testcase 1: Solaris 10U8, ab on localhost (no HTTP requests through the intel NIC) ---------------------------------------------------------------------------------- apache,html: 0.3ms apache,php: 2.8ms SunJWS,html: 3ms SunJWS,php: 11ms On localhost: no problem Testcase 2: Solaris 10U8, ab from a client PC in a LAN (100Mb connection) ------------------------------------------------------------------------------ Apache,no keepalive,html 2200ms ! ,no keepalive,php 3600ms ! ,keepalive,html 4ms ,keepalive,php 650ms ! SunJWS,no keepalive,html 8ms ,no keepalive,php 13ms ,keepalive,html 4ms Obviously Apache has a problem with traffic flowing through the NIC. Testcase 3: Solaris 10U6, ab from a client PC in a LAN (100Mb connection) ------------------------------------------------------------------------------ Apache,no keepalive,html 10ms ,no keepalive,php 20ms Solaris 10U6 on the same server: no problem We also did tests with other projects based on the Apache APR and they all have the same problem. So it looks like there is a problem with Solaris 10U8, Apache APR and the intel NIC card. Testcase 4: Solaris 10U8, NCA enabled, ab from a client PC in a LAN (100Mb connection) -------------------------------------------------------------------------------------- The Apache webserver does not make use of NCA caching, we just add the extra NCA layer in the network stack. Apache,no keepalive,html 10ms ,no keepalive,php 20ms ,keepalive,html 6ms ,keepalive,php 19ms SunJWS,no keepalive,html 10ms ,no keepalive,php 13ms ,keepalive,html 3ms ,keepalive,php 12ms So by adding an extra layer (NCA) in the network stack the problem is solved ! Anybody with the same problem ? Maybe on another platform ? All suggestions are welcome. Regards, Luc |