Почему я считаю, что проблема носит программный характер:
- машина достаточно мощная, чтобы обслуживать гигабитное сетевое соединение (конфигурация - dmesg частично):
Код: Выделить всё
FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz (2814.02-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf34 Stepping = 4 Logical CPUs per core: 2 real memory = 527302656 (502 MB) mskc0: <Marvell Yukon 88E8056 Gigabit Ethernet> port 0x9000-0x90ff mem 0xf5000000-0xf5003fff irq 16 at device 0.0 on pci3 msk0: <Marvell Technology Group Ltd. Yukon EC Ultra Id 0xb4 Rev 0x02> on mskc0 msk0: Ethernet address: 00:16:e6:87:53:c5 miibus0: <MII bus> on msk0 e1000phy0: <Marvell 88E1149 Gigabit PHY> PHY 0 on miibus0 e1000phy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, auto mskc0: [ITHREAD]
- она практически простаивает при скачивании файла (top):
Код: Выделить всё
CPU states: 0.0% user, 0.0% nice, 1.5% system, 4.7% interrupt, 93.8% idle Mem: 35M Active, 356M Inact, 70M Wired, 16M Cache, 59M Buf, 3696K Free
- файловая система работает достаточно быстро (dd файла ~4Гб):
Код: Выделить всё
9887974+1 records in 9887974+1 records out 5062643108 bytes transferred in 147.009730 secs (34437470 bytes/sec)
- сетевое соединение - полнодуплексный гигабит:
Код: Выделить всё
msk0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=9a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM> ether **:**:**:**:**:** inet **** netmask 0x******** broadcast ******** media: Ethernet autoselect (1000baseTX <full-duplex,flag0,flag1>) status: active
- полоса в 7Мб/с делится между всеми клиентами фтп - я пробовал качать на двух машинах одновременно, скорости упали до 2.5..3Мб/с (поэтому, кстати, даже неважно, какие у меня клиенты - гигабитные, или нет);
- я попробовал исключить влияние хаба - вдруг у него только снаружи написано, что он гигабитный - и соединил два компа кроссом; в результате те же 6..7Мб/с;
- понятно, что если полоса 6..7Мб/с делится между всеми клиентами фтп, и хаб тут непричем, то значит затык происходит где-то на самом сервере:
Код: Выделить всё
+-------+ +-------------+ | | 1Gbps | | | FTP X---------| 1Gbps HUB | | | | | +-------+ +-------------+ | | +-----------+ +-----------+ | clnt #1 | | clnt #2 | +-----------+ +-----------+ X - затык
- поэтому сначала я попробовал поменять сетевушку (на RealTek 8169 Gigabit Ethernet) - в результате те же 6..7Мб/с;
- потом я попробовал поменять ftp-сервер - был pureftpd, поставил proftpd - результат тот же;
- наконец, я даже пробовал отключить ipnat - вдруг он где-то что-то ограничивает (кроме ipnat на машине никаких ipfw, ipf и т.п. вещей не включено);
- разумеется, траффик я нигде не ограничивал - ни в настройках фтп-сервера, ни в конфигурации самой системы.