Hello.
Recently I made some tests with netem under high load. I used Linux
2.4.30 kernel on 2*Xeon-2.4 box with 2 e1000 NICs, 3G RAM. I
configured netem to add 200 ms delay with 200 ms variation for packets
travelling from one NIC to another.
[root@godzilla linux-2.4.30-highmem]# tc -s qdisc show
qdisc netem 8001: dev eth0 limit 500000 delay 200.0ms 200.0ms
Sent 3072854817148 bytes 1777594601 pkts (dropped 0, overlimits 0)
qdisc netem 8002: dev eth1 limit 500000 delay 200.0ms 200.0ms
Sent 5310 bytes 60 pkts (dropped 0, overlimits 0)
To achieve maximum performance I had to increase limit up to 500000.
Also, I applied patch that allow kernel to use more than 1G RAM
(
http://www.kernel.org/pub/linux/kernel/people/andrea/
kernels/v2.4/2.4.23aa1/00_3.5G-address-space-5). Under this
conditions, maximum throughput is approx. 250000 packets/sec (60 byte
packets).
But I noticed that memory reserved by kernel for packets processing
not being freed after removing traffic (same without memory patch
applied).
[root@godzilla linux-2.4.30-highmem]# free -l
total used free shared buffers
cached
Mem: 3105252 2671332 433920 0 117864
340768
Low: 2974244 2542608 431636
High: 131008 128724 2284
-/+ buffers/cache: 2212700 892552
Swap: 2040212 0 2040212
Does anybody know, is it possible to fix this memory leak somehow?
Thanks!