|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Tue, 08 May 2007
Unified socket storage.
I've just released a second patchset which implements unified cache of sockets for
network instead of old hash tables. It stores all types of sockets
(although I only implemented af_inet, unix, netlink and raw ones for now)
in single object structure called multidimensional trie (which is
similar to judy array in some way).
I performed simple performance test with handmade client and httperf.
The former is just epoll driven client which issues requested number of
requests one-by-one (or with some concurrency, which does not yet proven
to work correctly).
With mpm apache on test machine I got sustained 2k/s requests for mdt
and about 1200/s for (untuned) hash. With lighttpd and httperf
(10k max, 1k rate) I got sustained 1k/s for mdt and 550-1000/s for
untuned hash. With tuned hash (thash_entries=1000000) I got both 1k/s,
with 30k max, 3k rate httperf I got 1650 for mdt and 1k for tuned hash.
Server was with lighttpd 1.4.13. (handmade server as long as
'echo -en "GET / HTTP/1.0\n\n" | nc server 80' does not work due to
unknown reason, I did not investigate).
Results are quite small for that machine (amd athlon64 3500+ with 1gb of
ram and gigabit r8169 adapter), but I have all debug options turned on
(including heavy slab/vm).
Patch has been sent to @netdev
for review. I asked about discussion about future of this project before making
any further steps (mainly statistics code).
/devel/networking :: Link / Comments (0)
Please solve this captcha to be allowed to post (need to reload in a minute): 40 - 61
|