...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
작성 중
...
5. 문제해결
5.1. 환경
5.1.1 NIC 설정
...
- 증상
- drbdsim으로 측정한 DRX 대역폭이 서버의 네트워크 대역폭 지표와 차이가 발생
- 10G NIC간의 대역폭이 6~7G로 낮게 측정
- 성능 튜닝이 확인된 NIC
- Intel X520-DA2
- 해결
- 링크 : /wiki/spaces/QA/pages/725254228
- Windows
- Windows끼리의 NIC 대역폭이 6~7G에서 약 10G로 향상
- 드라이버 다운로드 : https://downloadcenter.intel.com/ko/download/22283/Ethernet–?product=68673
- 장치 관리자 → 고급 → 프로파일 → "낮은 대기시간 설정"
전원 옵션 → 고성능 설정
- 실행 → gpedit.msc → 컴퓨터 구성 → 관리 템플릿 → QoS 패킷스케쥴러 → 예약 대역폭 제한 → 사용안함
설정 후 적용(update) 명령어
Code Block C:\Users\dgkim>gpupdate /force
- Windows
- drbdsim으로 측정한 DRX 대역폭이 서버의 네트워크 대역폭 지표와 차이가 발생
- Linux
최신의 Linux 는 별다른 설정없이도 10G 의 성능을 내며, 성능이 미비할 경우 튜닝을 한다.
드라이버 빌드 및 적용
Code Block title 리눅스 Intel X520-DA2 설치 collapse true gcc 설치 yum -y install gcc 커널 소스 설치 (OS 와 동일한 버전) yum install /tmp/kernel-devel-3.10.0-693.el7.x86_64.rpm 압축 해제 및 커널 모듈 빌드 cd /pkg tar xvfz ixgbe-5.3.6.tar.gz cd ixgbe-5.3.6/src make install [root@proxy4 src]# make install make[1]: Entering directory `/usr/src/kernels/3.10.0-693.el7.x86_64' CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_main.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_api.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_common.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_dcb.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_dcb_82598.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_dcb_82599.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_ethtool.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_lib.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_mbx.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_sriov.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_param.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_phy.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_procfs.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_82598.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_82599.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_x540.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_x550.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_dcb_nl.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_debugfs.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_fcoe.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_ptp.o CC [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe_sysfs.o CC [M] /pkg/driver/ixgbe-5.3.6/src/kcompat.o LD [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe.o Building modules, stage 2. MODPOST 1 modules CC /pkg/driver/ixgbe-5.3.6/src/ixgbe.mod.o LD [M] /pkg/driver/ixgbe-5.3.6/src/ixgbe.ko make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.el7.x86_64' Copying manpages... Installing modules... make[1]: Entering directory `/usr/src/kernels/3.10.0-693.el7.x86_64' INSTALL /pkg/driver/ixgbe-5.3.6/src/ixgbe.ko Can't read private key DEPMOD 3.10.0-693.el7.x86_64 make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.el7.x86_64' Running depmod... 바이너리 파일 확인 /lib/modules/`uname -r`/updates/drivers/net/ethernet/intel/ixgbe/ixgbe.ko 기존드라이버 정보 확인 modinfo ixgbd | grep -i version version: 4.4.0-k-rh7.4 커널모듈 로딩 modprobe <ixgbe> [parameter=port1_value,port2_value] 신규 드라이버 정보 확인 modinfo ixgbd | grep -i version version: 5.3.6 커널모듈 드라이버 부팅시 로딩 설정 dracut --force ethtool -C p4p1 adaptive-tx on ethtool -C p4p1 adaptive-rx on ethtool -C p4p2 adaptive-tx on ethtool -C p4p2 adaptive-rx on tuned유틸 설치 yum install tuned tuned 설정 tuned-adm profile latency-performance
- 기타
- 위 튜닝을 했음에도 Windows ↔ Linux는 약 8~9G 성능밖에 나오지 않는데 정확한 원인은 알 수 없다.
5.1.2 네트워크 Bandwidth 확인
노드가 연결된 네트워크 환경의 Bandwidth를 확인해서 NIC의 성능을 낼 수 있는지 확인합니다.
- iperf3
- NIC
- Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
명령어
Code Block <로컬> [root@proxy1 drbd.d]# iperf3 -p 7795 -c 100.60.211.252 <원격> [root@proxy2 drbd.d]# iperf3 -p 7795 -s
실행결과
Code Block title iperf3 로컬 결과 collapse true < 로컬 출력 > [root@proxy1 drbd.d]# iperf3 -p 7795 -c 100.60.211.252 Connecting to host 100.60.211.252, port 7795 [ 4] local 100.60.211.251 port 46434 connected to 100.60.211.252 port 7795 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 1.10 GBytes 9.43 Gbits/sec 6 522 KBytes [ 4] 1.00-2.00 sec 1.10 GBytes 9.42 Gbits/sec 3 527 KBytes [ 4] 2.00-3.00 sec 1.09 GBytes 9.39 Gbits/sec 1 551 KBytes [ 4] 3.00-4.00 sec 1.10 GBytes 9.41 Gbits/sec 0 561 KBytes [ 4] 4.00-5.00 sec 1.09 GBytes 9.39 Gbits/sec 0 578 KBytes [ 4] 5.00-6.00 sec 1.10 GBytes 9.42 Gbits/sec 0 592 KBytes [ 4] 6.00-7.00 sec 1.10 GBytes 9.41 Gbits/sec 0 602 KBytes [ 4] 7.00-8.00 sec 1.10 GBytes 9.42 Gbits/sec 0 634 KBytes [ 4] 8.00-9.00 sec 1.10 GBytes 9.42 Gbits/sec 0 687 KBytes [ 4] 9.00-10.00 sec 1.10 GBytes 9.42 Gbits/sec 0 775 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 11.0 GBytes 9.41 Gbits/sec 10 sender [ 4] 0.00-10.00 sec 11.0 GBytes 9.41 Gbits/sec receiver iperf Done. [root@proxy1 drbd.d]# < 원격 출력 > [root@proxy2 drbd.d]# iperf3 -p 7795 -s ----------------------------------------------------------- Server listening on 7795 ----------------------------------------------------------- Accepted connection from 100.60.211.251, port 46432 [ 5] local 100.60.211.252 port 7795 connected to 100.60.211.251 port 46434 [ ID] Interval Transfer Bandwidth [ 5] 0.00-1.00 sec 1.06 GBytes 9.07 Gbits/sec [ 5] 1.00-2.00 sec 1.10 GBytes 9.42 Gbits/sec [ 5] 2.00-3.00 sec 1.09 GBytes 9.39 Gbits/sec [ 5] 3.00-4.00 sec 1.10 GBytes 9.41 Gbits/sec [ 5] 4.00-5.00 sec 1.09 GBytes 9.39 Gbits/sec [ 5] 5.00-6.00 sec 1.10 GBytes 9.41 Gbits/sec [ 5] 6.00-7.00 sec 1.10 GBytes 9.41 Gbits/sec [ 5] 7.00-8.00 sec 1.10 GBytes 9.41 Gbits/sec [ 5] 8.00-9.00 sec 1.10 GBytes 9.41 Gbits/sec [ 5] 9.00-10.00 sec 1.10 GBytes 9.42 Gbits/sec [ 5] 10.00-10.04 sec 40.9 MBytes 9.40 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec sender [ 5] 0.00-10.04 sec 11.0 GBytes 9.37 Gbits/sec receiver -----------------------------------------------------------
NIC 10G 측정 결과
- 송신 : 약 9.42 Gbps
- 수신 : 약 9.41 Gbps
- NIC
...