Table of Contents |
---|
7.1. 최적화 요소
DRX의 최적화는 DRX가 제공하는 버퍼링과 압축 기능이 최적의 성능을 낼 수 있도록 DRX 내부 파라미터를 조절하거나
Table of Contents |
---|
7.1. 최적화 요소
DRX의 최적화는 DRX가 제공하는 버퍼링과 압축 기능이 최적의 성능을 낼 수 있도록 DRX 내부 파라미터를 조절하거나 또는 시스템의 설정을 변경하는 것으로 수행합니다. DRX가 낼 수 있는 버퍼링의 성능은 10Gbps 네트워크에서 최대 6~7 Gbps 수준이며 압축 수행 시 이 수치에 1.5배 이상의 처리량을 보일 때 적절한 성능을 낸다고 볼 수 있습니다. 그러나 이러한 고성능의 수치는 TX 측면의 네트워크 대역이 충분하다는 전제하의 수치이며, 보통 WAN 구간 상에선 TX 네트워크 대역이 상당히 낮기 때문에 I/O 부하가 커지는 즉시 DRX 버퍼가 채워지면서 결국 혼잡상태에 이르게 되어 최적화를 수행하기 위한 여건을 만들기 어렵습니다. 이러한 상황을 감안하여 DRX에선 복제 I/O에 대한 적정한 수준의 시뮬레이션을 수행하는 drbdsim을 별도 도구로 제공하고 drbdsim 을 통해 DRX 운영환경의 여건들을 미리 파악할 수 있습니다.
...
- 사용자 출력 모드인 filter옵션을 사용해서 압축 통계 정보를 확인합니다.
- 압축률의 평균(ratio)값으로 복제가 이루어지는 데이터의 압축 효율을 확인할 수 있습니다.
- 압축시 평균시간(cp-avg)과 압축 해제시 평균시간(dc-avg)으로 압축 성능을 확인할 수 있습니다.
사용한 명령어
Code Block drx-ctl st all -v --filter=name,type,ratio,cur,best,worst,cp-avg,cp-cur,cp-min,cp-max,dc-avg,dc-cur,dc-min,dc-max
- 출력 예시
- 출력되는 단위는 KiloBytes입니다.
압축 ratio는 (압축전 사이즈 / 압축후 사이즈)로 계산되기 때문에 가독성을 위해서 소수점 둘째 자리까지 출력됩니다.
- compress(cp), decompress(de), encypto(ec), decrypto(dc)의 Latency 단위는 microseconds입니다.
Code Block theme DJango title statistics collapse true < 상세 모드 > [root@c69-1 drbd.d]# drx-ctl st all -v ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ name type tx rx t-raw t-net r-raw r-net ratio cur best worst cp-avg cp-cur cp-min cp-max ec-avg ec-cur ec-min ec-max dc-avg dc-cur dc-min dc-max de-avg de-cur de-min de-max ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ r0-c69-2-c69-1 data 184 0 13660 6821 0 1 1.93 0.00 18.07 1.00 0.000098 0 0.000001 0.013818 0 0 0 0 0 0 0 0 0.000189 0 0.000001 0.002338 r0-c69-2-c69-1 meta 0 0 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ All connections : 2, Established : 2 [root@c69-1 drbd.d]# < 사용자 출력 모드로 압축 항목만 출력 > [root@c69-1 drbd.d]# drx-ctl st all -v --filter=name,type,ratio,cur,best,worst,cp-avg,cp-cur,cp-min,cp-max,dc-avg,dc-cur,dc-min,dc-max ----------------------------------------------------------------------------------------------------------- name type ratio cur best worst cp-avg cp-cur cp-min cp-max dc-avg dc-cur dc-min dc-max ----------------------------------------------------------------------------------------------------------- r0-c69-2-c69-1 data 1.91 1.94 18.07 1.00 0.000088 0.000139 0.000001 0.013818 0 0 0 0 r0-c69-2-c69-1 meta ---- ------------------------------------------------------------------------------------------------------- All connections : 2, Established : 2 [root@c69-1 drbd.d]#
축약어 설명
축약어 설명 축약어 설명 축약어 설명 tx TX speed ratio compress average ratio ec encrypto trx RX speed cur compress current ratio dc decrypto
netTX-
Network 전송 사이즈-
worst compress worst ratio t
raw-
TX RAW 사이즈 best compress best ratio r
net-
RX-Network 전송 사이즈 cp compress r-raw RX RAW 사이즈 de decompress
7.3. 최적화 절차
최적화는 DRX의 BAB를 적절한 크기로 조정하고 압축을 위한 압축 인자를 조절하는 과정입니다.
7.3.1 버퍼(BAB) 크기
DRBD 구성파일 내의 "proxy" 섹션에서 "memlimit"의 값으로 BAB의 크기를 설정합니다.
Code Block |
---|
proxy {
memlimit 1G;
} |
7.3.2 압축 종류 및 레벨
DRX에서 제공하는 압축 플러그인은 아래와 같습니다.
...
...
...
...
...
압축 플러그인을 설정하는 명령어는 아래와 같습니다.
...
theme | DJango |
---|---|
title | set compress |
collapse | true |
...
- All connections : 2, Established : 2 [root@c69-1 drbd.d]#
축약어 설명
축약어 설명 축약어 설명 축약어 설명 tx TX speed ratio compress average ratio ec encrypto rx RX speed cur compress current ratio dc decrypto t-net TX-Network 전송 사이즈 worst compress worst ratio t-raw TX RAW 사이즈 best compress best ratio r-net RX-Network 전송 사이즈 cp compress r-raw RX RAW 사이즈 de decompress
7.3. 최적화 절차
최적화는 DRX의 BAB를 적절한 크기로 조정하고 압축을 위한 압축 인자를 조절하는 과정입니다.
7.3.1 버퍼(BAB) 크기
DRBD 구성파일 내의 "proxy" 섹션에서 "memlimit"의 값으로 BAB의 크기를 설정합니다.
Code Block |
---|
proxy {
memlimit 1G;
} |
7.3.2 압축 종류 및 레벨
DRX에서 제공하는 압축 플러그인은 아래와 같습니다.
압축 종류 | 방식 | 압축률 설정 범위 | ETC |
---|---|---|---|
ZLIB | SW | 1~9 | - |
LZ4 | SW | 1~9 | - |
NONE | - | - | OFF |
압축 플러그인을 설정하는 명령어는 아래와 같습니다.
압축 타입 | 명령 | 출력 예시 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ZLIB | drx-ctl set compress zlib [level] [connect name] |
| |||||||||
LZ4 | drx-ctl set compress lz4 [level] [connect name] |
| |||||||||
NONE | drx-ctl set compress none 0 [connect name] |
|
...
Thread 개수는 설정 파일의 "process-thread-count"값으로 설정됩니다. 설정하지 않거나 "-1"로 설정하면 "auto"모드로 동작하며 CPU core개수의 1/2로 계산되어 입력됩니다.
...
/wiki/spaces/QA/pages/819396836
...
...
8개 명령어Code Block theme DJango title process-thread-count collapse true < 설정 > [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]#
...
- TCP socket buffer size 변경
- 테스트에 사용한 서버 : Appendix D. Appliance Configuration Guide/wiki/spaces/PX/pages/901873851의 서버
- 참고 문서 링크 : https://www.ibm.com/support/knowledgecenter/en/SSZTET_10.1/smpi01/smpi01_tysfbpjp.html
- Default : 208KBytes
Code Block theme DJango [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 theme DJango sysctl -w net.core.rmem_max="2097152" sysctl -w net.core.wmem_max="2097152"
Info 설정한 값은 절대 수치가 아니며 서버 및 네트워크 환경에 따라서 성능 결과가 다를수 있습니다.
...