Hálózat sebesség/forgalom mérése

 ( gyunix | 2009. július 1., szerda - 13:27 )

Sziasztok!

Hogyan lehet egy hálózat sebességét megmérni. Vagyis igazából azt szeretném kideríteni, hogy mitől lehet egy hálózat lassú. Adott pár desktop gép és egy linux szerver.
Ha desktop gépről hálózaton keresztül egy másik desktop gépre egy 30MB-os fájlt másolok akkor pillanatok alatt ármegy. Viszont ha a linux szerverre másolom akkor max 480Kb-al repeszt.
Ennek mi lehet az oka?
A szerveren a következők futnak.
-Exim4
-Apache2/openwebmail
-Intervase/firebird
-dovecot/pop3
-fetchmail
-hylafax
-dhcp
-bind9

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Ntop vagy iptraf?

ethtool -lal nézd meg, milyen speedre van állítva a kártya, és h full vagy half duplex-e.

Az ethtool kimenete. eth0 (internet) eth1 (lan)
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Current message level: 0x00000033 (51)
Link detected: yes

Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yes

iperf?

tcp/ip paraméterek? autotuning, read/write bufferek, stb. socket options?

----------------------------------
feel the beat - it's everywhere!

Milyen protokoll? Milyen kliensprogram?

--
The Net is indeed vast and infinite...
http://gablog.eu

A felsoroltak kozul melyik biztositja a halozati fájl kiszolgalast ? :)

Firebird ot mire hasznaljatok ??? Azzal en IGEN komoly mertekben szivtam linux alatt, erdekelne hogy mire hasznaljatok mert ha ugyanarra amire en anno akkor erdekelne hogy hogyan sikerult megoldani gondokat :)

Az eth0 az internet felöli kártya, az eth1 pedig megy a helyi hálózat felé.

A klienseken van egy szoftver amihez szükséges a firebird. Igazából csak ennyi. Szerintem különösebben nem lett konfigurálva.

Én pontosan ugyanezen filóztam :) Továbbá a jelenség konkrétan arra emlékeztet, amikor én smbfs-ként avagy cifs-ként mountolva írtam linux kliensről ugyanazon samba servert recent kernel/userland kombóval... a sebességfaktor nagyjából 3:1 lett a cifs javára - ma már szoktak is a utilityk szólni, hogy smbfs deprecated...

Tehát akkor ha jól értem a samba fájl szervet át kellene tenni cifs fájlrendszerré? Előfordulhat, hogy akkor csak a fájlszerver okozza ezt a lassúságot? Kernel okozhat ilyet?

Először azt kellene kideríteni, hogy maga a hálózat (port, drót, kártya, konfig) jó-e. Erre írták az iperf-et, amit azon két gép között, amelyek között lassú a net kell elindítani, azok kiabálnak egymásnak, és kiírják, hogy milyen gyorsan tudnak beszélgetni. Ha a net a lassú, akkor kábel hiba, duplexitáshiba, rossz routing vagy bármi más is lehet. Ha az derül ki, hogy maga a net (hálózat) az nem lassú, akkor kell nézegetni a samba konfigot, hogy miért is gondolkozik annyit szegény.

találkoztam olyan kiváló gigabit adapterrel (ic plus ip1000 csipes), aminek olyan remek volt a linux drivere, hogy hasonló sebességet tudott, viszont több szálon terhelve elkezdett normálisan menni. realtek cuccoknak is voltak ilyen jelenségei régebbi kernelekkel/driverekkel. szóval először is magát a hálókártyát ill. kernel modulját kéne csekkolni és gatyába rázni. ha az már jól működik, akkor lehet nézni a szoftveres részét.
samba alapból elég lassú, de azért ki lehet belőle hozni jó teljesítményt, csak előbb legyen jó alatta a "vas"

----------------------------------
feel the beat - it's everywhere!

A kernel az egy mepis alapú: 2.6.15-1-586tsc
A kliensek azokon nem XP van hanem Win200.
A szerverrő kliensre másolás jól megy viszont a linux szerverre kliensről nem akar.
Egy 122 MB-os fájlal próbáltam. max 350Kb/s-al megy fel a szerverre egy kliensről Ez neki vagy 7 percébe kerülne, hogy felmásoljon egy ekkora fájlt.
Elég régi samba telepítés. Lehet, hogy újabbat kellene feltenni?

Hát, a win200 már elég régi, és kevesen támogatják az ógörög és latin környezeteket :D

A viccet félretéve, indíts el egy iperf-et a szerveren, egyet a kliensen, mert addig amíg nem derül ki, hogy legalább a hálózat (nem) jó, addig csak vakon ötletelgethetünk.

Nem; dehogy, hagyd figyelmen kívül, amit írtam, mert megint nem figyeltem eléggé - linux kliens esetén lett volna értelme annak, amit mondtam.
Egyébként nem, kliensoldali változtatás lett volna. Bocs még egyszer, igyekszem majd csak éber állapotban hozzászólni bármihez is...

Közben kiderítettem, hogy a szerverben mindössze 1GB memória van. Lehet, hogy ez a gond? :)

Hat nezd meg abbol mennyi van hasznalva, mennyit hasznalnak appok es menni a cache.


free
top - ezt ram eseten tudod itt memorias oszlopokra rendezni processzeket
ps -aux - itt latod melyik process mennyit eszik kb.

Szerintem erdemes lenne feltenni 1 munin-t a serverre, az szepen grafikonon mutatja neked hogy mikor mennyi volt a RAM/CPU/NET hasznalat meg mindenfelet amihez felteszel/letezik munin plugin.

ha samba-val osztasz akkor a következőket raknám bele a konfigba:
[global]
......
socket options = SO_KEEPALIVE TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
read raw = yes
write raw = yes
oplocks = yes
max ximit = 65535
dead time = 15
getwd cache = yes
lpq cache = 30
......

ha reiserfs-t használsz akkor az fstab-ba:

reiserfs notail,noatime

samba reload
mount -o remount

nekem ~3500k (total commander mérése) volt az átlag, most ~11000k wifi: ~2500k

---------------------------------------------------------------------
„Az Univerzum már elég nagy és öreg ahhoz, hogy egy fél óráig vigyázzon magára.”

Ime az iperf teszt eredménye gép és szerver között.

root@server: iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 6] local 192.168.1.254 port 5001 connected with 192.168.1.12 port 1216
[ ID] Interval Transfer Bandwidth
[ 6] 0.0-10.0 sec 111 MBytes 93.4 Mbits/sec

root@server: iperf -c 192.168.1.12
------------------------------------------------------------
Client connecting to 192.168.1.12, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.1.254 port 50684 connected with 192.168.1.12 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 111 MBytes 93.2 Mbits/sec

Szerintem ez jó.

eth1-en, ami gigabit? mert akkor k**vára nem jó :) (mondjuk nem is 380kbit/s kategória... de a jótól igen messze van)

Gigabites hálókártya mind a kettő jelen pillanatban.
Ez az alaplapi: e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
Amúgy miért nem jó szerinted?

hát mert gigabiten nem 93Mbit-nek kéne lenni, hanem 930-nak inkább, nem??
valami ilyesmi:

user@server:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.2.10 port 5001 connected with 192.168.2.126 port 49880
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 1.10 GBytes 945 Mbits/sec

D:\temp\bin>iperf -c 192.168.2.10
------------------------------------------------------------
Client connecting to 192.168.2.10, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[132] local 192.168.2.126 port 49880 connected with 192.168.2.10 port 5001
[ ID] Interval Transfer Bandwidth
[132] 0.0-10.0 sec 1.10 GBytes 945 Mbits/sec

a switched is gigabites?

----------------------------------
feel the beat - it's everywhere!

A switch is gigabites. De két desktop gép között nem gigabites hálón jó a másolás, csak gép és szerver között nem.
Arra gondoltam, hogy beteszek egy wincseszter és arra átteszem a fájl szervert, így kiiktatva a raid5-öt.

nem azzal van a gond...
én még megnézném a következőket:
1. hdparm -iI /dev/sdX, és megnézni, hogy udma módban megye-e a vinyó
2. a fenti iperf-es cuccot, kiegészítve két dologgal: a "kliens" oldali gépen iperf -w 64k -c 192.168...., miközben a szerveren nyiss még egy terminált vagy screent vagy akármit, és abban fusson egy top, hogy mi és mennyire eszi a procit közben. valamint ha 64k window mérettel jelentősen javul a sávszél, akkor tovább lehet kísérletezni különböző window méretekkel és megkeresni a legjobb beállítást, és aztán azt beállítani a kliensen. a kerneled elég régi, nekem olyan régi kernellel nem igazán ment a tcp autotuning jól, így ott kézzel állítgattam be ezeket az értékeket fixre, és csodákat tett.
3. próbálj meg a két gép közt ftp-vel valamit átküldeni, hogy az hogy megy. ha az hozza legalább a fenti 90mbit/s-t (~10MB/s), akkor már leszűkül a kör a sambára valószínű
4. egy smb.conf esetleg?

----------------------------------
feel the beat - it's everywhere!

1. hdparm -iI /dev/sda
/dev/sda:
HDIO_GET_IDENTITY failed: Invalid argument
HDIO_DRIVE_CMD(identify) failed: Invalid argument

2.-3. Folyamatban...
4.smb.conf
[global]
workgroup = WORK
# socket options = TCP_NODELAY IPTOS_LOWDELAY
socket options = SO_KEEPALIVE TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
# socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
wins support = yes
dns proxy = no
server string = %h server (Samba %v)
log file = /var/log/samba/log.%m
panic action = /usr/share/samba/panic-action %d
syslog = 0
invalid users = root
security = user
encrypt passwords = true
unix charset = ISO8859-2
max log size = 1000
dos charset = CP852
announce as = win95
fstype = fat
strict sync = yes
share modes = yes
read raw = yes
write raw = yes
getwd cache = yes
oplocks = yes
max ximit = 65535
dead time = 15
lpq cache = 30
os level = 128

[Közös]
writeable = yes
browseable = yes
path = /home/samba/Közös
sync always = yes
comment = Közös
public = no
valid users = user1,user2,user3,stb...
create mode = 0755
force create mode = 0755
directory mask = 0755
force user = llaci
force group = write
oplocks = yes
level2 oplocks = yes

A hálózat tuningra találtam egy ilyet. Erre gondoltál esetleg a tcp autotuning-nál?
http://people.redhat.com/alikins/system_tuning.html#tcp
Illetve egy ilyet is találtam.
http://www.cyberciti.biz/faq/linux-tcp-tuning/

Nekem ilyenek az értékeim:
root@server:cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
root@server:cat /proc/sys/net/core/rmem_max
131071
root@server:cat /proc/sys/net/core/rmem_default
105472
root@server:cat /proc/sys/net/ipv4/tcp_rmem
4096 87380 174760
root@server:cat /proc/sys/net/ipv4/tcp_wmem
4096 16384 131072

Szűkült a kör. Bele lett téve egy 320MB-os winyó. Megosztottam ájl szerver szinten és egy nagyobb fájlt kliensről erre a vinyóra másoltam. kb. 2000kb/s-al ment.
Valószínű a raid5 körül lesz a hiba. Vagy wincseszter vagy vezérlő hiba lesz szerintem.