Systemen: Debian 6.0.5 x64 server (specs) en Ubuntu 12.04 x64 + Windows 7 x64 client (specs).
Server: 3x Western Digital Caviar Green 1.5TB SATA, met / in raid1 en /home in raid5. Software raid met mdadm.
Netwerk: Gbit lan over CAT5e kabels van 1 en <10m en Netgear gbit switch en Linksys WRT120N die DHCP uitdeelt en internet verzorgt.
Probleem: Langzame file transfers tussen client en server. Zowel via SFTP, SMB als HTTP. SMB en HTTP halen zo'n 35-45MB/s (beide kanten op), SFTP haalt zo'n 24MB/s met de wind mee, 15MB/s bij wind tegen
RAID details:
SFTP test server -> client, SFTP locatie gemount op /server/ (dd van de raid5 array naar dev/null op de client):
LAN test met iperf, beide kanten op:
raid1 read/write:
raid5 read/write:
Alle relevante afzonderlijke onderdelen lijken dus sneller te zijn dan de snelheden die ik daadwerkelijk behaal. Een server->client copy over SFTP resulteert in een cpu usage van gemiddeld 35-40% op 1 core van de server, dus daar lijkt de bottleneck ook niet te liggen. Bij SMB en HTTP is dit zoals verwacht lager (encryptie overhead).
Zou er een rotte schrijf tussen zitten (raid5 write lijkt me wat laag?) of is hier iets anders aan de hand?
Wat ik al geprobeerd heb:
- Met cpufreq beide cores van de server CPU op performance gezet. Bij ondemand schakelde hij te snel heen en weer, wat resulteerde in schokkerige SFTP performance.
- Bovenstaande tests vanaf desktop client.
- Laptop, SFTP+SMB op Ubuntu 12.04 en SMB op Win7, met dezelfde resultaten als hierboven. Dit tevens met een andere switch-laptop UTP kabel.
Server: 3x Western Digital Caviar Green 1.5TB SATA, met / in raid1 en /home in raid5. Software raid met mdadm.
Netwerk: Gbit lan over CAT5e kabels van 1 en <10m en Netgear gbit switch en Linksys WRT120N die DHCP uitdeelt en internet verzorgt.
Probleem: Langzame file transfers tussen client en server. Zowel via SFTP, SMB als HTTP. SMB en HTTP halen zo'n 35-45MB/s (beide kanten op), SFTP haalt zo'n 24MB/s met de wind mee, 15MB/s bij wind tegen
RAID details:
code:
1
2
3
4
5
6
7
8
9
| wesley@databeest:~$ cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md1 : active raid5 sda2[0] sdc2[2] sdb2[1]
2912102400 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
md0 : active raid1 sda1[0] sdc1[2] sdb1[1]
7815488 blocks [3/3] [UUU]
unused devices: <none> |
SFTP test server -> client, SFTP locatie gemount op /server/ (dd van de raid5 array naar dev/null op de client):
code:
1
2
3
4
| wesley@wesley-desktop:~$ dd if=/server/raid5/some/file of=/dev/null ^C1907425+0 records in 1907424+0 records out 976601088 bytes (977 MB) copied, 37.6879 s, 25.9 MB/s |
LAN test met iperf, beide kanten op:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| wesley@wesley-desktop:~$ iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 192.168.1.4 port 5001 connected with 192.168.1.7 port 42626 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec ^Cwesley@wesley-desktop:~$ iperf -c 192.168.1.7 ------------------------------------------------------------ Client connecting to 192.168.1.7, TCP port 5001 TCP window size: 23.5 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.1.4 port 46044 connected with 192.168.1.7 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.10 GBytes 943 Mbits/sec |
raid1 read/write:
code:
1
2
3
4
5
6
7
8
9
| databeest:/# dd if=/dev/md0 of=/dev/null ^C1802737+0 records in 1802736+0 records out 923000832 bytes (923 MB) copied, 10.9583 s, 84.2 MB/s databeest:/# dd if=/dev/zero of=/testfile ^C1419395+0 records in 1419395+0 records out 726730240 bytes (727 MB) copied, 11.1076 s, 65.4 MB/s |
raid5 read/write:
code:
1
2
3
4
5
6
7
8
9
| databeest:/# dd if=/dev/md1 of=/dev/null ^C3407274+0 records in 3407273+0 records out 1744523776 bytes (1.7 GB) copied, 9.55614 s, 183 MB/s databeest:/# dd if=/dev/zero of=/home/testfile ^C1572044+0 records in 1572044+0 records out 804886528 bytes (805 MB) copied, 11.8417 s, 68.0 MB/s |
Alle relevante afzonderlijke onderdelen lijken dus sneller te zijn dan de snelheden die ik daadwerkelijk behaal. Een server->client copy over SFTP resulteert in een cpu usage van gemiddeld 35-40% op 1 core van de server, dus daar lijkt de bottleneck ook niet te liggen. Bij SMB en HTTP is dit zoals verwacht lager (encryptie overhead).
Zou er een rotte schrijf tussen zitten (raid5 write lijkt me wat laag?) of is hier iets anders aan de hand?
Wat ik al geprobeerd heb:
- Met cpufreq beide cores van de server CPU op performance gezet. Bij ondemand schakelde hij te snel heen en weer, wat resulteerde in schokkerige SFTP performance.
- Bovenstaande tests vanaf desktop client.
- Laptop, SFTP+SMB op Ubuntu 12.04 en SMB op Win7, met dezelfde resultaten als hierboven. Dit tevens met een andere switch-laptop UTP kabel.
[ Voor 7% gewijzigd door geez op 27-06-2012 12:06 ]