前言
數(shù)據(jù)庫應(yīng)用場景復(fù)雜且多樣,本文介紹金倉數(shù)據(jù)庫在網(wǎng)絡(luò)條件較差(小于10MB/s)場景,提供傳輸壓縮特性進(jìn)行性能提升。
一、為什么需要傳輸壓縮
當(dāng)應(yīng)用需要并發(fā)查詢大量結(jié)果集時(shí),容易出現(xiàn)網(wǎng)絡(luò)資源爭用問題。造成服務(wù)端CPU空閑而網(wǎng)絡(luò)繁忙的狀況,因?yàn)榇蠼Y(jié)果集需要占用非常多的網(wǎng)絡(luò)帶寬,從而導(dǎo)致網(wǎng)絡(luò)帶寬稱為系統(tǒng)性能瓶頸。
針對這種場景kingbaseES提供了傳輸壓縮特性,即利用數(shù)據(jù)庫服務(wù)側(cè)CPU資源,對查詢的數(shù)據(jù)結(jié)果集進(jìn)行壓縮打包后再通過網(wǎng)絡(luò)傳輸。減少網(wǎng)絡(luò)資源排隊(duì),提高CPU在網(wǎng)絡(luò)資源排隊(duì)時(shí)利用率,從而提升整體查詢性能。一共提供了0-9個(gè)壓縮等級,0表示關(guān)閉壓縮。數(shù)字越大表示壓縮級別越高,壓縮后的傳輸數(shù)據(jù)量越小,對應(yīng)CPU消耗越高。
二、什么場景使用傳輸壓縮
在應(yīng)用需要并發(fā)查詢大量結(jié)果集,跨網(wǎng)段傳輸,網(wǎng)絡(luò)條件差時(shí),建議使用傳輸壓縮特性。kingbaseES傳輸壓縮特性是針對在網(wǎng)絡(luò)傳輸?shù)陀?0MB/s場景進(jìn)行使用??梢允褂胹cp命令拷貝大文件測試網(wǎng)絡(luò)傳輸速度,例如下場景(scp速率為450KB/s):
三、怎么進(jìn)行傳輸壓縮
選取500條數(shù)據(jù),5分鐘并發(fā)查詢,使用jmeter進(jìn)行對比驗(yàn)證,使用傳輸壓縮特性和不使用傳輸壓縮特性性能驗(yàn)證。
前提條件
-
配置kingbaseES數(shù)據(jù)庫服務(wù)側(cè),傳輸壓縮特性所需so環(huán)境變量
-
將數(shù)據(jù)庫安裝包中提供的“kingbase8-8.6.0.jar”包,拷貝至jmeter工具bin目錄
-
將傳輸壓縮jmeter工具所需so拷貝至jmeter的lib目錄,并配置環(huán)境變量
測試驗(yàn)證
步驟一:數(shù)據(jù)準(zhǔn)備,500條測試數(shù)據(jù),表結(jié)構(gòu)及數(shù)據(jù)如下:
步驟二:配置jmeter壓測JDBC參數(shù),不使用傳輸壓縮特性
jdbc:kingbase8://xxx.xxx.xxx.xxx:port/perf_test
步驟三:配置jmeter壓測查詢參數(shù),40并發(fā),循環(huán)查詢3分鐘
步驟四:運(yùn)行jmeter壓力測試腳本,觀察數(shù)據(jù)庫服務(wù)CPU及網(wǎng)絡(luò)情況
-
數(shù)據(jù)庫測
-
客戶端段側(cè)
步驟五:腳本執(zhí)行完成后,查看“聚合報(bào)告”,jmete測試結(jié)果
步驟六:配置jmeter壓測JDBC參數(shù),使用傳輸壓縮特性,并運(yùn)行jmeter腳本
jdbc:kingbase8://xxx.xxx.xxx.xxx:port/perf_test?ziplevel=2
觀察服務(wù)器和客戶端側(cè)CPU及網(wǎng)絡(luò)情況 -
數(shù)據(jù)庫側(cè)
-
客戶端側(cè)
步驟七:查看數(shù)據(jù)庫服務(wù)CPU及網(wǎng)絡(luò)情況,腳本執(zhí)行完成后,查看“聚合報(bào)告”數(shù)據(jù),jmeter測試結(jié)果
測試結(jié)果對比分析
是否壓縮 | Samples | Average | 95% Line | Throughput | Received |
---|---|---|---|---|---|
不使用傳輸壓縮 | 80 | 180042 | 197308 | 12.9/min | 1722.86 |
使用傳輸壓縮 | 905 | 13420 | 15275 | 174.0/min | 23569.04 |
對比分析是否使用傳輸壓縮特性測試兩組測試數(shù)據(jù),使用傳輸壓縮比不使用傳輸壓縮:
- 響應(yīng)時(shí)間提升92.26%,吞吐率提升92.69%。
- 網(wǎng)絡(luò)傳輸帶寬未明顯變化,CPU利用率增加90%左右。
- 可見在網(wǎng)絡(luò)傳輸條件較差,而CPU比較空閑的場景。使用kingbase ES提供的傳輸壓縮特性,查詢性能會(huì)有較大幅度提升,可以有效解決在特殊場景下的性能問題。
四、嘗鮮小妙招
如果您想先試一試kingbase ES提供的傳輸壓縮功能,可以移步人大金倉官方網(wǎng)站下載V8R6版本數(shù)據(jù)庫安裝包并完成安裝。然后按如下方式“制造”網(wǎng)絡(luò)堵塞現(xiàn)場:
參考命令如下:
刪除限速:
/sbin/tc qdisc del dev em1 root tbf rate 1mbit latency 50ms burst 30k
添加限速:
/sbin/tc qdisc add dev em1 root tbf rate 1mbit latency 50ms burst 30k #scp帶寬約為12.5MB/s
/sbin/tc qdisc add dev em1 root tbf rate 512kbit latency 50ms burst 30k #scp帶寬約為6MB/s
刪除限速:
/sbin/tc qdisc del dev em1 root tbf rate 1mbit latency 50ms burst 30k文章來源:http://www.zghlxwxcb.cn/news/detail-410889.html
參數(shù)說明:文章來源地址http://www.zghlxwxcb.cn/news/detail-410889.html
- burst :桶的大小,指定了最多可以有多少令牌能夠即刻使用,若令牌數(shù)量不夠可能會(huì)導(dǎo)致網(wǎng)口不可用,通過重啟服務(wù)器解決。
- mbps和MB/s單位轉(zhuǎn)換
Mbps(Mb/s):每秒傳輸?shù)奈粩?shù)量(b:bit)
MB/s:每秒傳輸?shù)淖止?jié)數(shù)量(B:Byte)
1Byte=8bit,8Mbps=1MB/s
到了這里,關(guān)于【金倉數(shù)據(jù)庫】kingbase ES性能提升之傳輸壓縮的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!