DRX의 최적화는 DRX가 제공하는 버퍼링과 압축 기능이 최적의 성능을 낼 수 있도록 DRX 내부 파라미터를 조절하거나 또는 시스템의 설정을 변경하는 것으로 수행합니다. DRX가 낼 수 있는 버퍼링의 성능은 10Gbps 네트워크에서 최대 6~7 Gbps 수준이며 압축 수행 시 이 수치에 1.5배 이상의 처리량을 보일 때 적절한 성능을 낸다고 볼 수 있습니다. 그러나 이러한 고성능의 수치는 TX 측면의 네트워크 대역이 충분하다는 전제하의 수치이며, 보통 WAN 구간 상에선 TX 네트워크 대역이 상당히 낮기 때문에 I/O 부하가 커지는 즉시 DRX 버퍼가 채워지면서 결국 혼잡상태에 이르게 되어 최적화를 수행하기 위한 여건을 만들기 어렵습니다. 이러한 상황을 감안하여 DRX에선 복제 I/O에 대한 적정한 수준의 시뮬레이션을 수행하는 drbdsim 을 별도 도구로 제공합니다. 일반적으로 네트워크 대역은 iperf 와 같은 도구로 확인할 수 있으며 iperf 는 네트워크가 낼 수 있는 최대 대역을 산출합니다. drbdsim은 로컬 drbdsim에서 DRX로 I/O 부하를 주입시키고 WAN 구간으로 릴레이한 데이터를 원격 drbdsim에서 수신하여 DRX가 네트워크에서 처리할 수 있는 순수한 처리량을 산출 합니다. 따라서 drbdsim에서 산출한 처리량이 iperf 의 수치와 비슷하거나 또는 drbdsim 수치가 그 이상일 때(압축을 할 경우) DRX가 적절한 성능을 발휘한다고 할 수 있습니다. 반대로 drbdsim의 수치가 iperf 수치에 비해 상당히 낮다면 DRX 설정에 일부 조정이 필요하다고 생각될 수 있습니다.
이런 방식으로 drbdsim을 통해 WAN 구간의 대역 상황을 미리 파악하여 DRX의 기본 버퍼링 성능을 점검하고 그에 따라 DRX 버퍼의 적정한 크기를 산정하거나 압축 사용 여부를 판단합니다.
이상의 내용을 토대로 했을 때 최적화의 요소는 다음으로 요약됩니다.
로컬 I/O 측면의 지연(latency), 처리량(throughput) 최적화는 복제 측면의 최적화로 다루어져야 합니다. 이에 대해선 다음의 내용을 참고하십시요 |
DRX의 성능지표는 DRX에서 제공하는 CLI 명령들을 통해 확인 할 수 있습니다.
DRX 전용 어플라이언스의 경우 DRBD와 연동되는 로컬 복제 I/O 수신 구간에 대해 최적화를 수행할 수 있습니다. DRX는 기본적으로 응용주소 공간에서 버퍼링을 수행하도록 되어 있어서 DRBD와 직접적으로 연동되는 어플라이언스의 OS 커널의 수신성능에 따라 버퍼링 성능 차이가 있을 수 있습니다. 따라서 이 OS 커널 소켓의 수신버퍼를 조절하여 RX 수신 성능이 더욱 향상되도록 조절할 수 있습니다. OS 커널의 수신버퍼를 충분히 확보할 수 있도록 다음과 같은 내용을 OS 커널에 적용할 필요가 있습니다.
작성 중
원격지로 복제 데이터를 전송할 때 DRX가 사용하는 버퍼링(이하 BAB) 사용률로 성능을 가늠할 수 있습니다.
복제가 진행중일 때도 BAB의 Full Counts값은 0이 유지되야하며 사용률(Use)은 지속적으로 증가하지 않고 균일한 사용량를 유지해야 합니다.
운영 머신에서 측정한 I/O로 BAB 사이즈를 결정했으나 실운영에서 사용률(Use)이 높다면 BAB 사이즈를 조정해야 합니다.
BAB 사용률 확인 명령어
명령어
[root@c73-p1 logs]# drx-ctl show memusage |
출력 결과
[root@c73-p1 logs]# drx-ctl show memusage Command id (2) : show memusage ================================================================================================================================================ Name Capacity Begin End Size Full Counts Use ================================================================================================================================================ DR-4-6-c73-p2-c73-p1 524288000 (500.00 MB) 997 997 0 (0.00 B) 0 0 % 10485760 (10.00 MB) 0 0 0 (0.00 B) - 0 % ------------------------------------------------------------------------------------------------------------------------------------------------ Active bab counts : 1 ------------------------------------------------------------------------------------------------------------- name Latency cur avg max min ============================================================================================================= DR-4-6-c73-p2-c73-p1 TX BAB 00:00:00.001359 00:00:00.001136 00:00:00.001730 00:00:00.000206 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.000000 00:00:00.000000 00:00:00.000000 Decompress 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 ------------------------------------------------------------------------------------------------------------- [root@c73-p1 logs]# |
대역폭보다 평균 I/O가 크면 압축 플러그인을 적용해서 원격지로 전송되는 데이터를 줄여서 BAB의 사용률(Use)을 줄일 수 있습니다.
플러그인 항목
proxy { plugin { compressor iqa level 1; } } |
Command id (2) : show memusage ================================================================================================================================================ Name Capacity Begin End Size Full Counts Use ================================================================================================================================================ r0-74qat-p2-74qat-p1 524288000 (500.00 MB) 129088 482456776 482327688 (459.98 MB) 7690 91 % 10485760 (10.00 MB) 0 0 0 (0.00 B) - 0 % ------------------------------------------------------------------------------------------------------------------------------------------------ Active bab counts : 1 ------------------------------------------------------------------------------------------------------------- name Latency cur avg max min ============================================================================================================= r0-74qat-p2-74qat-p1 TX BAB 00:00:03.578904 00:00:03.069622 00:00:04.859810 00:00:00.000200 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.000000 00:00:00.000000 00:00:00.000000 Decompress 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 |
사용률(Use)의 증가는 미미한 수준을 유지하고 있습니다.
TX BAB의 평균 Latency는 0.33초로써 비압축보다 약 10배의 빠른 속도를 보이고 있습니다.
Command id (2) : show memusage ================================================================================================================================================ Name Capacity Begin End Size Full Counts Use ================================================================================================================================================ r0-74qat-p2-74qat-p1 524288000 (500.00 MB) 53524805 53524805 0 (0.00 B) 0 0 % 10485760 (10.00 MB) 0 0 0 (0.00 B) - 0 % ------------------------------------------------------------------------------------------------------------------------------------------------ Active bab counts : 1 ------------------------------------------------------------------------------------------------------------- name Latency cur avg max min ============================================================================================================= r0-74qat-p2-74qat-p1 TX BAB 00:00:00.685379 00:00:00.333085 00:00:00.703398 00:00:00.000978 RX BAB 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 Compress 00:00:00.000364 00:00:00.000365 00:00:00.011063 00:00:00.000039 Decompress 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 ------------------------------------------------------------------------------------------------------------- |
압축 쓰레드의 개수를 조정해서