7.1. 최적화 요소
DRX의 최적화는 DRX가 제공하는 버퍼링과 압축 기능이 최적의 성능을 낼 수 있도록 DRX 내부 파라미터를 조절하거나 또는 시스템의 설정을 변경하는 것으로 수행합니다. DRX가 낼 수 있는 버퍼링의 성능은 10Gbps 네트워크에서 최대 6~7 Gbps 수준이며 압축 수행 시 이 수치에 1.5배 이상의 처리량을 보일 때 적절한 성능을 낸다고 볼 수 있습니다. 그러나 이러한 고성능 처리 수치는 TX 측면의 DRX 전송 네트워크 대역이 충분하다는 전제하의 수치이며, WAN 구간 상에서는 보통 이런 처리량을 보일 수 없으므로 이러한 고수준의 I/O 부하가 있을 시 대부분의 경우에 있어서 DRX 버퍼가 혼잡상태에 이르게 됩니다. 이렇게 낮은 전송대역에서 무작위적인 고수준의 I/O 부하가 발생하는 상황에선 DRX의 성능을 최적화하기 어려우며 I/O 에 대한 적정한 수준의 시뮬레이션을 통해 WAN 구간의 대역 상황을 미리 점검할 필요가 있습니다. DRX는 이러한 점검을 수행할 수 있도록 drbdsim 도구를 제공합니다.
일반적으로 네트워크 대역은 iperf 와 같은 도구로 확인할 수 있으며 iperf 는 네트워크가 낼 수 있는 최대 대역을 산출합니다. drbdsim은 로컬 drbdsim에서 DRX 로 I/O 부하를 주입시키고 원격으로 릴레이한 데이터를 원격 drbdsim 에서 수신하여 DRX가 네트워크에서 처리할 수 있는 처리량을 산출 합니다. 따라서 iperf 의 수치와 drbdsim 의 수치가 같거나 또는 drbdsim 수치가 그 이상일 때(압축을 할 경우) DRX가 최상의 성능을 발휘한다고 할 수 있습니다.
이상의 내용을 토대로 최적화의 요소는 다음으로 요약됩니다.
- 복제 I/O 부하
- 네트워크 대역
- DRX 버퍼링
- 압축
로컬 I/O 측면의 지연(latency), 처리량(throughput) 최적화는 복제 측면의 최적화로 다루어져야 합니다. 이에 대해선 다음의 내용을 참고하십시요
7.2. 성능지표
DRX의 성능지표는 DRX에서 제공하는 CLI 명령들을 통해 확인 할 수 있습니다.
- 버퍼: memusage
- 압축: statistics
7.3. 최적화 절차
7.3.1 버퍼 크기 조절
7.3.2 압축 쓰레드 개수 조절
7.4. 기타
DRX 전용 어플라이언스의 경우 DRBD와 연동되는 로컬 복제 I/O 수신 구간에 대해 최적화를 수행할 수 있습니다. DRX는 기본적으로 응용주소 공간에서 버퍼링을 수행하도록 되어 있어서 DRBD와 직접적으로 연동되는 어플라이언스의 OS 커널의 수신성능에 따라 성능이 차이가 있을 수 있습니다. 따라서 이 OS 커널 소켓의 수신버퍼를 조절하여 RX 수신 성능이 더욱 향상되도록 조절할 수 있습니다. OS 커널의 수신버퍼를 충분히 확보할 수 있도록 다음과 같은 내용을 OS 커널에 적용할 필요가 있습니다.