Re: tcp/ip performance problem
From: Pekka Savola
Date: Fri Sep 26 2008 - 06:30:57 EST
On Fri, 26 Sep 2008, Vitaly Ivanov wrote:
We have a problem with linux tcp/ip. There are two equal servers
connected to 1Gbit switch, one with FreeBSD, another with Linux. On
each server we use nginx http server. FreeBSD server output is about
450Mbit/s, but Linux server maximum 70Mibt/s only.
Accept any ideas.
Output how? A single-stream output, or output to multiple (hundreds
or thousands?) clients? Where is the test client, in the same lan or
further away in the network?
It seems you have tuned Linux TCP variables. Have you tried without
them?
# uname -a
Linux telecom2 2.6.26.5-x86_64-common_server #2 SMP Thu Sep 25
23:35:06 MSD 2008 x86_64 Intel(R) Xeon(R) CPU 5130 @ 2.00GHz
GenuineIntel GNU/Linux
# cat /etc/sysctl.conf
net.ipv4.tcp_max_syn_backlog = 131072
net.ipv4.tcp_max_orphans = 262144
net.core.somaxconn = 16384
net.ipv4.tcp_fin_timeout=10
net.ipv4.tcp_max_tw_buckets = 360000
net.core.netdev_max_backlog = 3000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_no_metrics_save=1
net.ipv4.tcp_moderate_rcvbuf=1
net.ipv4.tcp_timestamps = 0
net.ipv4.ip_local_port_range = 10000 65535
net.ipv4.tcp_congestion_control = htcp
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
fs.file-max = 2097152
# iptables -L -n -v
firewall empty
ifconfig eth0
RX packets:4934238 errors:0 dropped:0 overruns:0 frame:0
TX packets:5572963 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:695642752 (663.4 Mb) TX bytes:4010944866 (3825.1 Mb)
# lspci -vvv -s 04:00.0
04:00.0 Ethernet controller: Intel Corporation PRO/1000 EB Network
Connection with I/O Acceleration (rev 01)
Subsystem: Super Micro Computer Inc Unknown device 1096
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr+ Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 760
Region 0: Memory at d8020000 (32-bit, non-prefetchable) [size=128K]
Region 1: Memory at d8000000 (32-bit, non-prefetchable) [size=128K]
Region 2: I/O ports at 2000 [size=32]
[virtual] Expansion ROM at d8400000 [disabled] [size=64K]
Capabilities: [c8] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [d0] Message Signalled Interrupts: Mask- 64bit+
Queue=0/0 Enable+
Address: 00000000fee0f00c Data: 41a1
Capabilities: [e0] Express Endpoint IRQ 0
Device: Supported: MaxPayload 256 bytes, PhantFunc 0, ExtTag-
Device: Latency L0s <512ns, L1 <64us
Device: AtnBtn- AtnInd- PwrInd-
Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
Link: Supported Speed 2.5Gb/s, Width x4, ASPM unknown, Port 0
Link: Latency L0s <128ns, L1 <64us
Link: ASPM Disabled RCB 64 bytes CommClk+ ExtSynch-
Link: Speed 2.5Gb/s, Width x4
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number 6e-69-61-ff-ff-48-30-00
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Pekka Savola "You each name yourselves king, yet the
Netcore Oy kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html