У меня проблемы с производительностью сети на сервере Linux под управлением Ubuntu 9.10. Скорость передачи для всех типов трафика составляет около 1,5 МБ / с при проводном соединении Ethernet со скоростью 1000 Мбит / с. Этот сервер достиг 55 МБ / с по сравнению с Samba в недавнем прошлом. Я не изменил аппаратную или сетевую настройку. Я регулярно запускаю обновления, и последние и самые лучшие из репозиториев Ubuntu работают на этой машине.
Аппаратная настройка
Настольный ПК с Windows - коммутатор 1000 - коммутатор 1000 - сервер Linux
Все коммутаторы являются netgear, и все они показывают зеленый свет для их соединений, что означает, что соединение составляет 1000 Мбит / с. Индикаторы желтого цвета, когда скорость соединения составляет всего 100 Мбит / с. Другая диагностическая информация:
root@server:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:6e:3e:ae:36
inet addr:192.168.1.30 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:6eff:fe3e:ae36/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28678 errors:0 dropped:0 overruns:0 frame:0
TX packets:73531 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2109780 (2.1 MB) TX bytes:111039729 (111.0 MB)
Interrupt:22
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:113 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:23469 (23.4 KB) TX bytes:23469 (23.4 KB)
root@server:~# ethtool eth0
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: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: g
Current message level: 0x00000037 (55)
Link detected: yes
root@server:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok
Сервер считает, что имеет соединение 1000 Мбит / с. Я проверил скорость передачи путем копирования файлов с помощью Samba. Я также использовал netcat (nc target 10000 <aBigFile) на сервере для передачи в Windows (nc -l -p 10000) и видел аналогичные уровни низкой производительности.
Я проверил скорость жестких дисков с помощью hdparm и получил:
root@server:~# hdparm -tT /dev/md0
/dev/md0:
Timing cached reads: 1436 MB in 2.00 seconds = 718.01 MB/sec
Timing buffered disk reads: 444 MB in 3.02 seconds = 147.24 MB/sec
Чтение того же файла для передачи с использованием DD привело к следующему:
paul@server:/home/share/Series/New$ dd if=aBigFile of=/dev/null
3200369+1 records in
3200369+1 records out
1638589012 bytes (1.6 GB) copied, 12.7091 s, 129 MB/s
Я в тупике. Что может быть причиной низкой производительности сети, которая на 2 порядка ниже, чем то, на что способна сеть?
источник
Ответы:
Некоторые вещи, которые вы должны рассмотреть, чтобы проверить:
Netperf отлично справляется с диагностикой производительности сети. Но Netcat не плохо в крайнем случае.
источник
В своем профессиональном опыте я изо всех сил пытался добиться хорошей стабильной работы сети с Samba на GNU / Linux. Вы упомянули, что вы достигли скорости 55 Мбит / с с этим, я верю, поэтому я предполагаю, что определенно что-то еще в игре.
Тем не менее, вы пробовали NFS, FTP и SCP? Являются ли проблемы пропускной способности одинаковыми для разных протоколов? Если это так, то, скорее всего, оно сузится до физического соединения. Если вы получите противоречивые результаты, то это скорее всего проблема с программным обеспечением.
Помимо тестирования других протоколов, вы используете шифрование при передаче? Например, использование
rsync -z
сжатия полезно для включения сжатия, но оно требует затрат на процессор, что серьезно влияет на общую скорость передачи. При использованииSSH
сrsync
, тогда у вас есть шифрование поверх сжатия, и ваш процессор будет испытывать небольшую нагрузку, что приведет к серьезным потерям скорости.источник
netstat -i
найти ошибки rx / tx.netstat -s
поискать проблемы с tcp - сравните значения до и после копирования файла и поищите большие всплески при перезагрузке или повторной передаче.источник
Вы можете проверить загруженность вашей сети; возможно, некоторые другие устройства потребляют всю вашу пропускную способность?
Кроме того, возможно, что-то не так с вашим сетевым интерфейсом и / или его драйвером. Довольно странно.
источник
Если это вообще возможно, чтобы устранить большинство сомнений в том, что это действительно проблема ОС / драйвера / карты, соедините компьютеры вместе, используя перекрестный кабель. Это удалит коммутатор и другие возможные проблемы с сетью из вашего уравнения.
источник