Versions Compared

Key

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

Table of Contents

...

Info

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

...

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

압축 타입명령출력 예시
IQAdrx-ctl set compress iqa [level] [connect name] 


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

[root@c73-qat-1 drbd.d]#


ZLIB drx-ctl set compress zlib [level] [connect name] 


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

[root@c73-qat-1 drbd.d]#


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


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

[root@c73-qat-1 drbd.d]#


NONEdrx-ctl set compress none 0 [connect name] 


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

[root@c73-qat-1 drbd.d]#


...

  • 성능에 미치는 영향에 대한 QA팀의 분석 자료
    • /wiki/spaces/QA/pages/819396836 

      압축 종류CPU Core 개수자동 계산된 thread 개수
      S/W Zlib Level 18 Core / 1GBps 4개
      H/W Zlib Level 116 Core / 2GBps8개


  • 명령어 


    Code Block
    themeDJango
    titleprocess-thread-count
    collapsetrue
    < 설정 >
    [root@c73-qat-1 drbd.d]# drx-ctl set process-thread-count 10
    Result: done.
    
    [root@c73-qat-1 drbd.d]# 
    
    
    < 설정 확인 > 
    [root@c73-qat-1 drbd.d]# drx-ctl show all
    ...(생략)...
    ip-verification=on
    process-thread-count=10
    
    [root@c73-qat-1 drbd.d]#
    
    




7.4. 기타

...

7.4.1 Linux Kernel Network Parameter

DRX 전용 어플라이언스의 경우 DRBD와 연동되는 로컬 복제 I/O 수신 구간에 대해 최적화를 수행할 수 있습니다. DRX는 기본적으로 응용주소 공간에서 버퍼링을 수행하도록 되어 있어서 DRBD와 직접적으로 연동되는 어플라이언스의 OS 커널의 수신성능에 따라 버퍼링 성능 차이가 있을 수 있습니다. 따라서 이 OS 커널 소켓의 수신버퍼를 조절하여 RX 수신 성능이 더욱 향상되도록 조절할 수 있습니다. OS 커널의 수신버퍼를 충분히 확보할 수 있도록 다음과 같은 내용을 OS 커널에 적용할 필요가 있습니다.

7.4.1 Linux Kernel Network Parameter

Info

sysctl을 이용해서 값을 변경하는 것은 시스템이 crash될 위험 요소가 있다는 것을 인지해야 합니다. 

시스템에 무리한 값을 설정했을 경우 그 즉시 시스템이 멈출 수도 있기 때문에 충분한 테스트 후에 진행되야 합니다. 

...

  • TCP socket buffer size 변경
    • 테스트에 사용한 서버 : Appendix D. Appliance Configuration Guide의 서버
    • 참고 문서 링크 : https://www.ibm.com/support/knowledgecenter/en/SSZTET_10.1/smpi01/smpi01_tysfbpjp.html
    • Default : 208KBytes


      Code Block
      themeDJango
      [root@c73-qat-1 drbd.d]# sysctl -a | grep net.core.[rw]mem
      net.core.rmem_default = 212992
      net.core.rmem_max = 212992
      net.core.wmem_default = 212992
      net.core.wmem_max = 212992
      [root@c73-qat-1 drbd.d]#
      
      


    • 수정 명령어 : max만 2 MBytes로 변경합니다.


      Code Block
      themeDJango
      sysctl -w net.core.rmem_max="2097152"
      sysctl -w net.core.wmem_max="2097152" 


      Info

      설정한 값은 절대 수치가 아니며 서버 및 네트워크 환경에 따라서 성능 결과가 다를수 있습니다. 


7.4.2 VIRT 사용량 조정

VIRT는 프로세스가 사용하는 총 메모리양이며, 환경 변수 MALLOC_ARENA_MAX를 통해서 조정할 수 있습니다. 

Info

환경 변수 MALLOC_ARENA_MAX설정은 프로세스의 메모리풀을 조정하기 때문에 전체 시스템에 대한 영향이 있을 수 있습니다. 

충분한 테스트 후에 진행되야 합니다. 

  • 환경 변수 MALLOC_ARENA_MAX 값을 설정하는 방법


    Code Block
    $> export MALLOC_ARENA_MAX=1 



    Info

    예제로 설정한 "1"은 절대값이 아니며 서버 및 환경에 따라서 다르게 설정되야 합니다. 


  • 고려 사항
    • MALLOC_ARENA_MAX 값을 변경하면 VIRT 사용률을 줄여서 메모리풀을 확보하지만 CPU 사용률이 증가할 수 있습니다.