Zbr's days.

About :: TODO :: Blog :: RSS :: Old blog :: Projects :: GIT :: Gallery :: Notes

Mon, 16 Jan 2006

Updated kevent patch.


Patch and dumb http server, which uses kevent poll()/select() notifications, are available in archive.

:: Link / Comments ()


Kevent benchmarking. Step 1.


Groovy!

Static index.html on kevent based single-threaded handmade http server (using read()/send() for file) on Xeon 2.4 Ghz, 512 Mb RAM, HT enabled, 1Gb network:

httperf --client=0/1 --server=pcix --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=10000 --num-calls=1
Maximum connect burst length: 1

Total: connections 10000 requests 10000 replies 10000 test-duration 5.684 s

Connection rate: 1759.4 conn/s (0.6 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 0.2 avg 0.6 max 204.5 median 0.5 stddev 3.5
Connection time [ms]: connect 0.1
Connection length [replies/conn]: 1.000

Request rate: 1759.4 req/s (0.6 ms/req)
Request size [B]: 55.0

Reply rate [replies/s]: min 1810.8 avg 1810.8 max 1810.8 stddev 0.0 (1 samples)
Reply time [ms]: response 0.2 transfer 0.2
Reply size [B]: header 198.0 content 3931.0 footer 0.0 (total 4129.0)
Reply status: 1xx=0 2xx=0 3xx=0 4xx=10000 5xx=0

CPU time [s]: user 1.46 system 4.23 (user 25.6% system 74.4% total 100.0%)
Net I/O: 7188.6 KB/s (58.9*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

Using sendfile():
Connection rate: 2586.5 conn/s (0.4 ms/conn, <=1 concurrent connections)

The same index.html on Apache/2.0.54 from FC4 (default config) on P4 3.00GHz, 512 Mb RAM, HT enabled, 1Gb network.
[s0mbre@uganda httperf-0.8]$ ./httperf --server kano --num-conns 10000
httperf --client=0/1 --server=kano --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=10000 --num-calls=1
Maximum connect burst length: 1

Total: connections 10000 requests 10000 replies 10000 test-duration 7.947 s

Connection rate: 1258.4 conn/s (0.8 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 0.2 avg 0.8 max 561.2 median 0.5 stddev 5.6
Connection time [ms]: connect 0.2
Connection length [replies/conn]: 1.000

Request rate: 1258.4 req/s (0.8 ms/req)
Request size [B]: 55.0

Reply rate [replies/s]: min 1348.2 avg 1348.2 max 1348.2 stddev 0.0 (1 samples)
Reply time [ms]: response 0.6 transfer 0.0
Reply size [B]: header 198.0 content 3931.0 footer 0.0 (total 4129.0)
Reply status: 1xx=0 2xx=0 3xx=0 4xx=10000 5xx=0

CPU time [s]: user 1.92 system 5.90 (user 24.2% system 74.3% total 98.4%)
Net I/O: 5141.7 KB/s (42.1*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

:: Link / Comments ()


Kevent benchmarking. Step 2.


Using 10k requests with maximum 1k requests in burst and 1 second timeout between bursts.

Static index.html on kevent based single-threaded handmade http server (using sendfile() for file) on Xeon 2.4 Ghz, 512 Mb RAM, HT enabled, 1Gb network:

[s0mbre@uganda httperf-0.8]$ ./httperf --server pcix --num-conns 10000 --rate 1000 --timeout 1
httperf --timeout=1 --client=0/1 --server=pcix --port=80 --uri=/ --rate=1000 --send-buffer=4096 --recv-buffer=16384 --num-conns=10000 --num-calls=1
Maximum connect burst length: 207

Total: connections 10000 requests 8742 replies 8519 test-duration 11.001 s

Connection rate: 909.0 conn/s (1.1 ms/conn, <=453 concurrent connections)
Connection time [ms]: min 96.8 avg 149.0 max 854.3 median 141.5 stddev 36.5
Connection time [ms]: connect 0.2
Connection length [replies/conn]: 1.000

Request rate: 794.7 req/s (1.3 ms/req)
Request size [B]: 55.0

Reply rate [replies/s]: min 812.0 avg 851.8 max 891.6 stddev 56.3 (2 samples)
Reply time [ms]: response 148.8 transfer 0.0
Reply size [B]: header 198.0 content 3931.0 footer 0.0 (total 4129.0)
Reply status: 1xx=0 2xx=0 3xx=0 4xx=8519 5xx=0

CPU time [s]: user 0.19 system 10.40 (user 1.7% system 94.5% total 96.3%)
Net I/O: 3165.3 KB/s (25.9*10^6 bps)

Errors: total 1481 client-timo 1481 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

The same index.html on Apache/2.0.54 from FC4 (default config) on P4 3.00GHz, 512 Mb RAM, HT enabled, 1Gb network.
[s0mbre@uganda httperf-0.8]$ ./httperf --server kano --num-conns 10000 --rate 1000 --timeout 1
httperf --timeout=1 --client=0/1 --server=kano --port=80 --uri=/ --rate=1000 --send-buffer=4096 --recv-buffer=16384 --num-conns=10000 --num-calls=1
Maximum connect burst length: 21

Total: connections 10000 requests 4731 replies 4731 test-duration 10.976 s

Connection rate: 911.1 conn/s (1.1 ms/conn, <=813 concurrent connections)
Connection time [ms]: min 0.2 avg 1.2 max 20.9 median 0.5 stddev 1.5
Connection time [ms]: connect 0.1
Connection length [replies/conn]: 1.000

Request rate: 431.0 req/s (2.3 ms/req)
Request size [B]: 55.0

Reply rate [replies/s]: min 401.6 avg 472.9 max 544.3 stddev 100.9 (2 samples)
Reply time [ms]: response 1.1 transfer 0.0
Reply size [B]: header 198.0 content 3931.0 footer 0.0 (total 4129.0)
Reply status: 1xx=0 2xx=0 3xx=0 4xx=4731 5xx=0

CPU time [s]: user 0.20 system 10.55 (user 1.9% system 96.1% total 98.0%)
Net I/O: 1761.2 KB/s (14.4*10^6 bps)

Errors: total 5269 client-timo 5269 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

:: Link / Comments ()


Climbed today with Grange.


It was definitely good time - I've finished several complex old and new traces, although not everything was done right. It was excellent training.

:: Link / Comments ()


Grange started w1 project.


He even has first results:

gpioow1 at gpio1 pins 21: DQ[21] open-drain pull-up
onewire1 at gpioow1
onewire1: found ROM 0xf00008005343fb10
It took him two years after we bought first couple of ds18b20 thermal sensors to start this project :)

:: Link / Comments ()