We run our servers out of 2 different data centers. Earlier in the week, we switched all of our traffic to one side, and found that all of our HTTP transactions take an incredibly long time to serve. At a peak, we receive about 200concurrent requests across both locations. So on average, each pound server handles about 100 connections. However, when one side was hit with 200 concurrent requests, pound started to take a really long time to serve pages, with all of the additional content (images, css, javascript, etc.). Going directly to the backend web servers was returning normal results, but pound was being bottle necked.

At a peak, we were seeing about 30-40 Mbs on our firewall (a PIX 515E, with 100Mb card). Pound v2.4.2 runs on RedHat ES 4 (2.6.9-67.ELsmp), and sits in front of 4 web servers on the back end, located on the local network. I've put some trace in pound code, and found that at the peak, pound could take up to 3 seconds in the "for" loop between lines 624-700, where its looking at the headers it just received from the client. A request to a homepage, normally takes .5 seconds, now was taking 8-10 seconds. I understand that our network might be saturated, but I don't understand why pound is being bottlenecked within code where no network operations are being performed. This sounds like a thread-management problem in the kernel. Has anybody heard of this type of problem?

Under normal conditions (with 100 concurrent requests), the same "for" loop takes under 0.100 milliseconds -- 30,000 times faster. Is there anything I should check?

Below are the ldd output for pound:

libpcreposix.so.0 => /usr/lib/libpcreposix.so.0 (0x0039c000)
libssl.so.4 => /lib/libssl.so.4 (0x04e81000)
libcrypto.so.4 => /lib/libcrypto.so.4 (0x04d95000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00580000)
libdl.so.2 => /lib/libdl.so.2 (0x00111000)
libm.so.6 => /lib/tls/libm.so.6 (0x003a2000)
libtcmalloc.so.0 => /usr/lib/libtcmalloc.so.0 (0x00921000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x004b8000)
libc.so.6 => /lib/tls/libc.so.6 (0x0026e000)
libpcre.so.0 => /lib/libpcre.so.0 (0x003c7000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x0023b000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00664000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x00595000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x0059a000)
libz.so.1 => /usr/lib/libz.so.1 (0x004cc000)
/lib/ld-linux.so.2 (0x00254000)
libstacktrace.so.0 => /usr/local/lib/libstacktrace.so.0 (0x00eae000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00a58000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00115000)


--
To unsubscribe send an email with subject unsubscribe to [EMAIL PROTECTED]
Please contact [EMAIL PROTECTED] for questions.

Reply via email to