Versions Compared

Key

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

Table of Contents

...

DRX의 최적화는 DRX가 제공하는 버퍼링과 압축 기능이 최적의 성능을 낼 수 있도록 DRX 내부 파라미터를 조절하거나 또는 시스템의 설정을 변경하는 것으로 수행합니다.

DRX가 낼 수 있는 버퍼링의 버퍼링 성능은 10Gbps 네트워크에서 최대 6~7 Gbps 수준이며 압축 수행 시 이 수치에 수치의 최소 1.5배 이상의 처리량을 보일 때 적절한 성능을 낸다고 볼 수 있습니다. 그러나 이러한 고성능의 고성능 수치는 TX 측면의 네트워크 대역이 충분하다는 전제하의 수치이며, 보통 WAN 구간 상에선 충분할 때 측정 가능하며 보통의 WAN 구간에선 TX 네트워크 대역이 상당히 낮기 때문에 I/O 부하가 커지는 즉시  DRX 버퍼가 채워지면서 결국 혼잡상태에 이르게 되어 최적화를 수행하기 위한 여건을 만들기 어렵습니다즉시 혼잡에 이르게 됩니다. 실제 운영 I/O 를 통해 최적화를 수행하기는 쉽지 않은 것 입니다. 이러한 상황을 감안하여 DRX에선 복제 I/O에 대한 적정한 수준의 시뮬레이션을 수행하는 drxsim(구 drbdsim)을 drxsim을 별도 도구로 제공하고 있으며 drxsim 을 통해 DRX 운영환경의 여건들을 복제 대역 상황을 미리 파악할 수 있습니다있게 합니다.

일반적으로 네트워크 대역은 iperf 와 같은 도구로 확인할 측정할 수 있으며 iperf 는 네트워크가 낼 수 있는 최대 대역을 산출합니다. drxsim은 로컬 drxsim에서 DRX로 I/O 부하를 주입시키고 WAN 구간으로 릴레이된 데이터를 원격 drxsim에서 수신하여 DRX가 네트워크에서 처리할 수 있는 순수한 처리량을 산출 합니다. 따라서 drxsim에서 산출한 처리량이 iperf 의 수치와 비슷하거나 또는 drxsim 수치가 그 이상일 때(압축을 할 경우) DRX가 적절한 성능을 발휘한다고 할 수 있습니다. 반대로 drxsim의 수치가 iperf 수치에 비해 상당히 낮다면 DRX 설정에 일부 조정이 필요하다고 판단할 수 있습니다.

이런 방식으로 WAN 구간의 대역 상황을 미리 파악함과 더불어 DRX의 기본 버퍼링 성능을 점검하고 그에 따라 DRX 버퍼의 적정한 크기를 산정하거나 압축 기능 도입 여부를 판단할 수 있습니다. drxsim의 자세한 사용방법은 drxsim usage guide사용 가이드 의 내용을 참고하세요.

이상의 내용을 토대로 했을 때 최적화의 요소는 다음으로 요약됩니다.

  • 복제 I/O 부하
  • 네트워크 대역
  • DRX 버퍼링
  • 압축
Info

로컬 I/O 측면의 지연(latency), 처리량(throughput) 최적화는 복제 측면의 최적화로 다루어져야 합니다. 이에 대해선 다음의 내용을 참고하십시요

BSR 최적화 (https://mantech.jira.com/wiki/spaces/BSRUG/pages/1366164136)

BSR 최적화의 내용을 참고하십시요


성능지표

DRX의 성능지표는 DRX에서 제공하는 CLI 명령들을 통해 확인 할 수 있습니다.

버퍼링 성능: memusage

...

  • 버퍼의 사용량과 지연을 통해 성능을 확인합니다.
    • 2.4 물리 메모리 사양 항목에서 계산으로 설정한 버퍼 사용량을 확인할 수 있습니다. 

    • 지연(Latency)값의 변동을 통해서 병목이 발생하는 상태를 확인할 수 있습니다. 
  • 출력 예시

    • Capacity: 리소스에 설정한 버퍼의 크기이며 단위는 KB 입니다. 
    • Use (Size): 버퍼 사용량과 (크기)입니다. Size의 단위는 KB 입니다. 
    • BAB Latency는 TX, RX, Compress, Decompress 항목에 대한 현재(cur), 평균(avg), 최대(max), 최소(min)값을 microseconds 단위로 출력합니다. 


      Code Block
      themeDJango
      titlememusage
      collapsetrue
      < 일반 모드 >
      [root@c73-p1 drx]# drx-ctl mem all
      --------------------------------------------------------------------------------------
      Name                 Capacity Use (Size)                                  Full Counts 
      --------------------------------------------------------------------------------------
      DR-1-3-c73-p2-c73-p1 716800   [>>>>>>>.....................] 23% (163277) 0           
                           10240    [............................]  0% (0)      -           
      --------------------------------------------------------------------------------------
      DR-2-3-c73-p2-c73-p1 512000   [............................]  0% (0)      0           
                           10240    [............................]  0% (0)      -           
      --------------------------------------------------------------------------------------
       Active bab counts : 2
      
      <상세 모드>
      [root@c73-p1 drx]# drx-ctl mem all -v
      ----------------------------------------------------------------------------------------------------------
      Name                 Capacity Begin     End       Use (Size)                                  Full Counts 
      ----------------------------------------------------------------------------------------------------------
      DR-1-3-c73-p2-c73-p1 716800   340236152 504137496 [>>>>>>>.....................] 22% (160060) 0           
                           10240    0         0         [............................]  0% (0)      -           
      ----------------------------------------------------------------------------------------------------------
      DR-2-3-c73-p2-c73-p1 512000   64273922  64273922  [............................]  0% (0)      0           
                           10240    0         0         [............................]  0% (0)      -           
      ----------------------------------------------------------------------------------------------------------
       Active bab counts : 2
      ----------------------------------------------------------------------------------------------------------
      name                 Latency    cur             avg             max             min             
      ----------------------------------------------------------------------------------------------------------
      DR-1-3-c73-p2-c73-p1 TX BAB     00:00:00.000000 00:00:00.443516 00:00:06.765142 00:00:00.000101 
                           RX BAB     00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 
                           Compress   00:00:00.000088 00:00:00.000087 00:00:00.001439 00:00:00.000001 
                           Decompress 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 
      ----------------------------------------------------------------------------------------------------------
      DR-2-3-c73-p2-c73-p1 TX BAB     00:00:00.000000 00:00:00.001627 00:00:00.004173 00:00:00.000261 
                           RX BAB     00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 
                           Compress   00:00:00.000000 00:00:00.000113 00:00:00.001440 00:00:00.000001 
                           Decompress 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 
      ----------------------------------------------------------------------------------------------------------
       Active bab counts : 2
      [root@c73-p1 drx]#
      
      


압축 성능

...

: statistics

DRX의 통계 정보를 확인하는 명령어입니다. 

...

압축 플러그인을 설정하는 명령어는 아래와 같습니다. 

압축 타입명령출력 예시
ZLIB drx-ctl set compress zlib [level] [connect name] 


Code Block
themeDJango
titleset compress
collapsetrue
< 압축 플러그인을 ZLIB로 설정 >
[root@c73-1 bsr.d]# drx-ctl set compress zlib 1 r0-c73-2-c73-1
r0-c73-2-c73-1: updated.
Result: 1 resource(s) updated.

[root@c73-1 bsr.d]#


LZ4drx-ctl set compress lz4 [level] [connect name] 


Code Block
themeDJango
titleset compress
collapsetrue
< 압축 플러그인을 LZ4로 설정 >
[root@c73-1 bsr.d]# drx-ctl set compress lz4 1 r0-c73-2-c73-1
r0-c73-2-c73-1: updated.
Result: 1 resource(s) updated.

[root@c73-1 bsr.d]#


NONEdrx-ctl set compress none 0 [connect name] 


Code Block
themeDJango
titleset compress
collapsetrue
< 압축 플러그인을 OFF >
[root@c73-1 bsr.d]# drx-ctl set compress none 0 r0-c73-2-c73-1
r0-c73-2-c73-1: updated.
Result: 1 resource(s) updated.

[root@c73-1 bsr.d]#


...