Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

작성 중

...

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


    • Linux 
      • 최신의 Linux 는 별다른 설정없이도 10G 의 성능을 내며, 성능이 미비할 경우 튜닝을 한다.

        • 드라이버 다운로드 : https://downloadcenter.intel.com/ko/download/14687/Ethernet-Intel-Network-Adapter-Driver-for-PCIe-Intel-10-Gigabit-Ethernet-Network-Connections-Under-Linux-?v=t

          • 드라이버 빌드 및 적용

            Code Block
            title리눅스 Intel X520-DA2 설치
            collapsetrue
            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
      titleiperf3 로컬 결과
      collapsetrue
      < 로컬 출력 >
      [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

...