[FreeBSD] Traag netwerk

Pagina: 1
Acties:

  • Ridcully
  • Registratie: December 2002
  • Laatst online: 24-01 17:00
Ik draai op het moment FreeBSD 8-CURRENT-200902 en heb een ietwat markant probleem met het netwerk. Dit gaat doorgaans heel traag als ik dingen wil schrijven naar de FreeBSD machine, terwijl er van lezen wel met een redelijk snelheid gaat.

Dit heb ik getest met zowel iperf als SMB (Samba) en AFP (netatalk). Met beiden haal ik slechts rond de 6MB/s bij schrijven, maar bij lezen gaat het wel rond de 10. Nou is beiden niet het maximum dat je kan halen bij een 100Mbps netwerk, maar 10MB/s is nog wel te doen. Het schrijven veranderde niet als het ding wel gigabit deed trouwens, noch is het een switch die de boel verstoort. Het enige dat ik niet uitgesloten heb hardwarematig is de NIC in de FreeBSD machine, maar die heeft het in het verleden onder Windows wel naar behoren gedaan, dus ik neem aan dat dat niet het probleem is hardwarematig.

Ik heb één iemand gevonden online die en ietwat lijkend probleem had, maar dit is al jaren geleden. Hier was ook geen oplossing voor gevonden, maar bij hem hielp het wisselen van NICs helaas niet. Zie hier.

Tevens heb ik getracht dingen als de buffers aan te passen, maar dit heeft niet mogen baten, wellicht deed ik hier wat fout. Zie hieronder de tests met iperf die ik gedaan heb, en wat overige wellicht relevante gegevens. De iperf copy paste is gedaan vanaf mijn laptop, dus niet de FreeBSD machine.

sebas$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:   256 KByte (default)
------------------------------------------------------------
[  4] local 192.168.178.16 port 5001 connected with 192.168.178.33 port 51713
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec    111 MBytes  93.4 Mbits/sec
[  4] local 192.168.178.16 port 5001 connected with 192.168.178.33 port 39597
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec    114 MBytes  95.5 Mbits/sec


sebas$ iperf -c 192.168.178.33
------------------------------------------------------------
Client connecting to 192.168.178.33, TCP port 5001
TCP window size:   129 KByte (default)
------------------------------------------------------------
[  3] local 192.168.178.16 port 56264 connected with 192.168.178.33 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  63.2 MBytes  53.0 Mbits/sec
[  3]  0.0-10.0 sec  62.9 MBytes  52.7 Mbits/sec


dmesg | grep rgephy0
rgephy0: <RTL8169S/8110S/8211B media interface> PHY 1 on miibus0
rgephy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto

ifconfig re0
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
	ether 00:0c:f6:3f:64:d9
	inet 192.168.178.33 netmask 0xffffff00 broadcast 192.168.178.255
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
sysctl net.inet.tcp :
net.inet.tcp.rfc1323: 1
net.inet.tcp.mssdflt: 512
net.inet.tcp.keepidle: 7200000
net.inet.tcp.keepintvl: 75000
net.inet.tcp.sendspace: 32768
net.inet.tcp.recvspace: 65536
net.inet.tcp.keepinit: 75000
net.inet.tcp.delacktime: 100
net.inet.tcp.v6mssdflt: 1024
net.inet.tcp.hostcache.purge: 0
net.inet.tcp.hostcache.prune: 300
net.inet.tcp.hostcache.expire: 3600
net.inet.tcp.hostcache.count: 0
net.inet.tcp.hostcache.bucketlimit: 30
net.inet.tcp.hostcache.hashsize: 512
net.inet.tcp.hostcache.cachelimit: 15360
net.inet.tcp.wlock_looped: 0
net.inet.tcp.wlock_relocked: 0
net.inet.tcp.wlock_upgraded: 1
net.inet.tcp.tcp_wlock_atfirst: 1
net.inet.tcp.rlock_atfirst: 317
net.inet.tcp.read_locking: 1
net.inet.tcp.recvbuf_max: 262144
net.inet.tcp.recvbuf_inc: 16384
net.inet.tcp.recvbuf_auto: 1
net.inet.tcp.insecure_rst: 0
net.inet.tcp.ecn.maxretries: 1
net.inet.tcp.ecn.enable: 0
net.inet.tcp.abc_l_var: 2
net.inet.tcp.rfc3465: 1
net.inet.tcp.rfc3390: 1
net.inet.tcp.rfc3042: 1
net.inet.tcp.drop_synfin: 0
net.inet.tcp.delayed_ack: 1
net.inet.tcp.blackhole: 0
net.inet.tcp.log_in_vain: 0
net.inet.tcp.sendbuf_max: 262144
net.inet.tcp.sendbuf_inc: 8192
net.inet.tcp.sendbuf_auto: 1
net.inet.tcp.tso: 1
net.inet.tcp.newreno: 1
net.inet.tcp.local_slowstart_flightsize: 4
net.inet.tcp.slowstart_flightsize: 1
net.inet.tcp.path_mtu_discovery: 1
net.inet.tcp.reass.overflows: 0
net.inet.tcp.reass.maxqlen: 48
net.inet.tcp.reass.cursegments: 0
net.inet.tcp.reass.maxsegments: 1600
net.inet.tcp.sack.globalholes: 0
net.inet.tcp.sack.globalmaxholes: 65536
net.inet.tcp.sack.maxholes: 128
net.inet.tcp.sack.enable: 1
net.inet.tcp.inflight.stab: 20
net.inet.tcp.inflight.max: 1073725440
net.inet.tcp.inflight.min: 6144
net.inet.tcp.inflight.rttthresh: 10
net.inet.tcp.inflight.debug: 0
net.inet.tcp.inflight.enable: 1
net.inet.tcp.isn_reseed_interval: 0
net.inet.tcp.icmp_may_rst: 1
net.inet.tcp.pcbcount: 8
net.inet.tcp.do_tcpdrain: 1
net.inet.tcp.tcbhashsize: 512
net.inet.tcp.log_debug: 0
net.inet.tcp.minmss: 216
net.inet.tcp.syncache.rst_on_sock_fail: 1
net.inet.tcp.syncache.rexmtlimit: 3
net.inet.tcp.syncache.hashsize: 512
net.inet.tcp.syncache.count: 0
net.inet.tcp.syncache.cachelimit: 15360
net.inet.tcp.syncache.bucketlimit: 30
net.inet.tcp.syncookies_only: 0
net.inet.tcp.syncookies: 1
net.inet.tcp.timer_race: 0
net.inet.tcp.finwait2_timeout: 60000
net.inet.tcp.fast_finwait2_recycle: 0
net.inet.tcp.always_keepalive: 1
net.inet.tcp.rexmit_slop: 200
net.inet.tcp.rexmit_min: 30
net.inet.tcp.msl: 30000
net.inet.tcp.nolocaltimewait: 0
net.inet.tcp.maxtcptw: 5120

(Ik hoopte dat dit niet zo'n hele lijst zou worden als ik het tussen [code] tags zou doen, maar kennelijk wordt het dat wel.)

Weet iemand hoe ik weer een normale doorvoer kan krijgen van 100Mbps, of als ik een betere kabel gebruik gigabit?

  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

FreeBSD7 heeft als het goed is auto-sizing van TCP buffers (net.inet.tcp.recvbuf_auto e.d.), maar ik weet niet precies de relatie tussen die sysctls en net.inet.tcp.recvspace en sendspace.

Je zou kunnen proberen net.inet.tcp.recvspace en net.inet.tcp.sendspace eens flink te verhogen. Je moet dan ook kern.ipc.maxsockbuf (als die er nog is) verhogen, anders gaat het stuk. Ik houd altijd maxsockbuf aan die 2x send/recv space is en houd send en recv gelijk.

  • Ridcully
  • Registratie: December 2002
  • Laatst online: 24-01 17:00
Ik heb dit zojuist geprobeerd, de send en recvspace opgehoogd naar 524288 en de kern.ipc.maxsockbuf naar 1048576, ook heb ik de auto-sizing uitgezet.

Helaas mocht dit wederom niet baten, ook spelen met buffers met iperf veranderde niets zover ik kon zien.

[ Voor 4% gewijzigd door Ridcully op 25-03-2009 11:25 ]


  • Ridcully
  • Registratie: December 2002
  • Laatst online: 24-01 17:00
Even omhoog schoppen, ik heb helaas nog altijd dit niet kunnen oplossen.