Steen Suder wrote:
> Hvad er jeres erfaring mht. RAMforbrug på en Linux 2.4.x, der skal køre
> masquerading for ca. 100 brugere imod en 4Mb/s forbindelse?
Jeg har kørt 100 brugere bag en 2mbit-linje på en 486 med 20Mb RAM. Den er
opgraderet nu, men det skyldtes nu lige så meget skift til PCI og en
hurtigere CPU
> Jeg regner med 128MB RAM; kan det med sikkerhed siges at være for lidt?
Nej, det er rigeligt. Hvis vi regner 4Mb fra til kernen og 10Mb til kørende
programmel er der 114Mb tilbage. Når du kører NAT skal du køre med
connection tracking. Hver etableret forbindelse bruger ca. 300 byte til
connection tracking.
Forudsætter vi nu, at hver bruger har 1000 samtidige etablerede forbindelser
(*meget* højt sat; men worst-case er nu altid rart at tage højde for), får
du 100*1000*300=30000000=28Mb. Så er der 86Mb hukommelse til buffere og
cache.
Jeg kører en firewall med 128Mb RAM (K6-2/350MHz). Den kører iptables+NAT
samt WRR traffic shaping:
root@wiibroe:/home/moffe# cat /proc/net/ip_conntrack |wc
501 7002 79709
root@wiibroe:/home/moffe# iptables -L -t nat -n | wc
78 449 5582
root@wiibroe:/home/moffe# iptables -L -t filter -n | wc
1026 13375 111960
moffe@wiibroe
# procinfo
Linux 2.4.18 (moffe@carlsberg) (gcc 2.96 20000731 ) #5 tir mar 5 09:59:51
CET 2002 1CPU [wiibroe.amagerkollegiet.dk]
Memory: Total Used Free Shared Buffers
Cached
Mem: 127284 113628 13656 0 18920
50476
Swap: 166612 3364 163248
Bootup: Thu May 2 09:17:36 2002 Load average: 0.08 0.10 0.08 2/43 19112
user : 1d 8:54:29.06 2.5% page in : 180165 disk 1: 25621r
8444656w
nice : 0:00:00.00 0.0% page out: 40300677
system: 2d 14:33:35.25 4.8% swap in : 138
idle : 50d 16:05:48.12 92.7% swap out: 835
uptime: 54d 15:33:52.42 context :2929303566
Dvs. free+cache+buffers = ~81Mb og 92.7% idle. Omkring 1100 regler og 500
samtidige etablerede forbindelser (jeg ser meget sjældent over 2000).
Når du har så meget RAM, kan jeg anbefale nedenstående:
echo 65535 > /proc/sys/net/ipv4/ip_conntrack_max
Så skulle du være nogenlunde sikker. Husk at hver forbindelse bruger 300
byte, så sørg for ikke sætte ip_conntrack_max til så meget, at du kan komme
til at bruge mere end den fysiske hukommelse (det allokeres nemlig
dynamisk) - dvs. ikke over en kvart million forbindelser
/Rasmus
--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
If a trainstation is the place where trains stop, what is a workstation?
----------------------------------[ moffe at amagerkollegiet dot dk ] --