Ubuntu 9.10을 실행하는 Linux 서버에서 네트워크 성능 속도에 문제가 있습니다. 모든 유형의 트래픽에서 전송 속도는 1000mbit / s 유선 이더넷 연결에서 약 1.5MB / s입니다. 이 서버는 최근에 삼바에서 55MB / s를 달성했습니다. 하드웨어 나 네트워크 설정을 변경하지 않았습니다. 정기적으로 업데이트를 실행하고 있으며 Ubuntu의 리포지토리에서 가장 크고 가장 최신 버전 이이 컴퓨터에서 실행 중입니다.
하드웨어 설정
데스크탑 Windows PC-1000 스위치-1000 스위치-Linux 서버
모든 스위치는 넷기어이며 연결에 대해 녹색 표시등이 표시되어 연결이 1000mbit / s임을 의미합니다. 연결이 100mbit / s에 불과한 경우 표시등이 노란색입니다. 다른 진단 정보 :
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
서버는 1000mbit / s 연결을 가지고 있다고 생각합니다. 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 배 낮은 네트워크 성능 저하 원인은 무엇입니까?
답변
확인해야 할 사항 :
- 이중-한쪽이 링크가 전이중이라고 생각하고 다른 쪽은 링크가 반이중이라고 생각하면 불량을 예상합니다.
- 결함이있는 스위치? 우회하십시오.
- 점보 프레임. 9000 바이트 MTU는 오버 헤드를 줄여 처리량을 늘려야합니다 (대기 시간이 약간 단축 됨). 그래도 문제가 너무 나빠 도움이되지 않는 것 같습니다.
- TCP 기능 : ECN, SACK, 혼잡 제어 알고리즘
- TCP 송신 / 수신 창 크기 ( Linux에 대한 세부 사항 )
netperf는 네트워크 성능 문제 해결에 탁월합니다. 그러나 netcat은 꼬집음에 나쁘지 않습니다.
답변
전문적인 경험으로, GNU / Linux에서 Samba를 사용하여 우수한 네트워크 성능을 얻기 위해 고심했습니다. 당신은 당신이 그것으로 55MBps의 속도를 달성했다고 언급했습니다. 그래서 나는 다른 무언가가 확실히 진행되고 있다고 생각합니다.
그러나 NFS, FTP 및 SCP를 사용해 보셨습니까? 다른 프로토콜에서 대역폭 문제가 일관됩니까? 그렇다면 물리적 연결로 좁혀 질 가능성이 있습니다. 결과가 일치하지 않으면 소프트웨어 문제 일 수 있습니다.
다른 프로토콜을 테스트하는 것 외에도 전송시 암호화를 사용하고 있습니까? 예를 들어, rsync -z압축을 활성화하는 데 사용하는 것은 좋지만 CPU 비용이 들기 때문에 전체 전송 속도에 심각한 영향을 미칩니다. SSHwith를 사용 하는 경우 rsync압축시 암호화가 적용되며 CPU에 약간의 스트레스가 가해져 심각한 속도 저하가 발생합니다.
답변
netstat -irx / tx 오류를 찾아 보십시오 .netstat -sTCP 문제를 찾아 보십시오 -파일 복사 전후의 값을 비교하고 재설정 또는 재전송에서 큰 스파이크를 찾으십시오.
답변
네트워크의 정체를 확인할 수 있습니다. 다른 장치가 모든 대역폭을 소비하고 있습니까?
그 외에도 네트워크 인터페이스 및 / 또는 드라이버에 문제가있을 수 있습니다. 꽤 이상합니다.
답변
가능하면 OS / 드라이버 / 카드 문제인 의심을 없애려면 크로스 오버 케이블을 사용하여 컴퓨터를 함께 연결하십시오. 그러면 방정식에서 스위치 및 기타 가능한 네트워킹 문제가 제거됩니다.