7.1. Optimization Factor
Optimization of DRX is accomplished by adjusting the DRX internal parameters or by changing the settings of the system so that the buffering and compression functions provided by DRX can achieve optimal performance. The performance of DRX can be buffered up to 6 to 7 Gbps in a 10 Gbps network, and it can be said that the performance is adequate when the compression is 1.5 times more than that. However, these high-performance processing results are based on the assumption that the DRX transmission network bandwidth of the TX side is sufficient, and usually can not show such throughput in the WAN interval. Therefore, in the case of such a high level I/O load state, It is difficult to optimize the performance of DRX in situations where random high level I/O load occurs in such a low transmission band, and it is necessary to check the bandwidth situation of WAN section in advance through proper level simulation for I/O load. DRX provides the drbdsim tool to perform these checks.
In general, the network bandwidth can be checked with tools such as iperf, and iperf calculates the maximum bandwidth the network can make. drbdsim injects I/O load into DRX from local drbdsim and receives remote relayed data from remote drbdsim to calculate the throughput that DRX can process on the network. Therefore, DRX will perform best when iperf's result is equal to drbdsim's or when drbdsim's is greater than it by compression. Please refer to Appendix F. drbdsim usage guide for more information on how to use drbdsim.
Based on the above, the factors of optimization are summarized as follows:
- Replication I/O load
- Network Bandwidth
- DRX Buffering
- Compression
Latency and throughput optimization on the local I/O side should be handled with optimization on the replication side. For this, please refer to the following.
7.2. Performance Indicator
Performance for the DRX can be viewed through the CLI commands provided by the DRX.
7.2.1 BAB Performance : memusage
This command checks the usage rate and latency of the BAB.
- Check the performance of BAB through BAB usage and latency.
You can check the usage rate of the BAB set by calculation of "2. Operating Environment".
- You can see where bottlenecks have occurred by increasing or decreasing the latency value.
Output Sample
- Capacity : Indicates the BAB size set in the resource, in Kilobytes.
- Use (Size) : Indicates BAB usage rate and Size. The unit of size is Kilobytes.
- BAB Latency is the current (cur), average (avg), maximum (max), and minimum (min) values for the TX, RX, Compress, and Decompress items. The unit is microseconds.
7.2.2 Compression performance statistics.: statistics
This command checks the DRX statistics information.
- To view compression statistics, use the filter option in Output mode.
- The compression ratio represents the average value and the compression efficiency of the data to be transmitted can be checked.
- Compression plug-in performance can be checked by the average compression time (cp-avg) and the decompression average time (dc-avg).
Sample command.
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
- Output Sample
- The unit of size is Kilobytes.
압축 ratio는 (압축전 사이즈 / 압축후 사이즈)로 계산되기 때문에 가독성을 위해서 소수점 둘째 자리까지 출력됩니다.
- The unit of compress(cp), decompress(de), encypto(ec), decrypto(dc) is microseconds.
- 축약어 설명
축약어 설명 축약어 설명 축약어 설명 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-raw RX-Network 전송 사이즈 cp compress r-net RX RAW 사이즈 de decompress
7.3. Optimization procedure
7.3.1 Adjust the buffer size
7.3.2 Adjusting the number of compressing threads
7.4. Others
For DRX Appliance, you can perform optimizations on the local replication I/O reception intervals that work with DRBD. DRX is primarily designed to perform buffering in the application address space, so performance may vary depending on the receiving performance of the OS kernel of the appliance, which is directly linked to DRBD. Therefore, you can tune the receive buffer of this OS kernel socket to further enhance RX receive performance. To ensure that the OS kernel has enough receive buffers, it is necessary to apply the following to the OS kernel.