Versions Compared

Key

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

...

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

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

이런 방식으로 drbdsim을 통해 WAN 구간의 대역 상황을 미리 파악하여 파악함과 더불어 DRX의 기본 버퍼링 성능을 점검하고 그에 따라 DRX 버퍼의 적정한 크기를 산정하거나 압축 사용 여부를 판단합니다기능 도입 여부를 판단할 수 있습니다

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

...

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

  • 버퍼 링성능지표 확인: memusage
  • 압축 성능지표 확인: statistics

7.3. 최적화 절차

최적화는 DRX의 버퍼를 적절한 크기로 조정하고 압축을 위한 압축 인자를 조절하는 과정입니다.

7.3.1 버퍼 크기

...


7.3.2 압축

...


7.4. 기타

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

Info

작성 중

4. 성능 최적화

원격지로 복제 데이터를 전송할 때 DRX가 사용하는 버퍼링(이하 BAB) 사용률로 성능을 가늠할 수 있습니다. 

4.1. BAB 최적화

복제가 진행중일 때도 BAB의 Full Counts값은 0이 유지되야하며 사용률(Use)은 지속적으로 증가하지 않고 균일한 사용량를 유지해야 합니다. 

4.1.1 BAB 사이즈 

운영 머신에서 측정한 I/O로 BAB 사이즈를 결정했으나 실운영에서 사용률(Use)이 높다면 BAB 사이즈를 조정해야 합니다. 

...

BAB 사용률 확인 명령어 

명령어 

Code Block
[root@c73-p1 logs]# drx-ctl show memusage

출력 결과 

Code Block
titleprint memusage
collapsetrue
[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]#

...

  • 사용률 : 총 500MB를 BAB로 설정했으며 Full Counts 는 0이며 사용률(Use)도 0%입니다.
  • 지연 시간 : TX BAB의 지연 시간 평균(avg)은 0.001136초(1.136 ms) 입니다. 
4.1.2 BAB 사용률 

대역폭보다 평균 I/O가 크면 압축 플러그인을 적용해서 원격지로 전송되는 데이터를 줄여서 BAB의 사용률(Use)을 줄일 수 있습니다.

...

플러그인 항목

Code Block
proxy { 
	plugin {
		compressor iqa level 1;
	}
}

...

Code Block
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

...

  • drbdsim을 이용해서 1Gbps의 대역폭으로 전송
  • 압축 플러그인 QAT Level 1으로 설정

...

사용률(Use)의 증가는 미미한 수준을 유지하고 있습니다.

TX BAB의 평균 Latency는 0.33초로써 비압축보다 약 10배의 빠른 속도를 보이고 있습니다. 

Code Block
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
-------------------------------------------------------------------------------------------------------------

4.2 압축 쓰레드 개수 조정 (작성중)

압축  쓰레드의 개수를 조정해서 

...