【金仓数据库】kingbase ES性能提升之传输压缩

【金仓数据库】kingbase ES性能提升之传输压缩,第1张

文章目录
  • 前言
  • 一、为什么需要传输压缩
  • 二、什么场景使用传输压缩
  • 三、怎么进行传输压缩
    • 前提条件
    • 测试验证
    • 测试结果对比分析
  • 四、尝鲜小妙招


前言

数据库应用场景复杂且多样,本文介绍金仓数据库在网络条件较差(小于10MB/s)场景,提供传输压缩特性进行性能提升。


一、为什么需要传输压缩

当应用需要并发查询大量结果集时,容易出现网络资源争用问题。造成服务端CPU空闲而网络繁忙的状况,因为大结果集需要占用非常多的网络带宽,从而导致网络带宽称为系统性能瓶颈。
针对这种场景kingbaseES提供了传输压缩特性,即利用数据库服务侧CPU资源,对查询的数据结果集进行压缩打包后再通过网络传输。减少网络资源排队,提高CPU在网络资源排队时利用率,从而提升整体查询性能。一共提供了0-9个压缩等级,0表示关闭压缩。数字越大表示压缩级别越高,压缩后的传输数据量越小,对应CPU消耗越高。

二、什么场景使用传输压缩

在应用需要并发查询大量结果集,跨网段传输,网络条件差时,建议使用传输压缩特性。kingbaseES传输压缩特性是针对在网络传输低于10MB/s场景进行使用。可以使用scp命令拷贝大文件测试网络传输速度,例如下场景(scp速率为450KB/s):

三、怎么进行传输压缩

选取500条数据,5分钟并发查询,使用jmeter进行对比验证,使用传输压缩特性和不使用传输压缩特性性能验证。

前提条件
  • 配置kingbaseES数据库服务侧,传输压缩特性所需so环境变量

  • 将数据库安装包中提供的“kingbase8-8.6.0.jar”包,拷贝至jmeter工具bin目录

  • 将传输压缩jmeter工具所需so拷贝至jmeter的lib目录,并配置环境变量

测试验证

步骤一:数据准备,500条测试数据,表结构及数据如下:

步骤二:配置jmeter压测JDBC参数,不使用传输压缩特性
jdbc:kingbase8://xxx.xxx.xxx.xxx:port/perf_test

步骤三:配置jmeter压测查询参数,40并发,循环查询3分钟

步骤四:运行jmeter压力测试脚本,观察数据库服务CPU及网络情况

  • 数据库测

  • 客户端段侧


    步骤五:脚本执行完成后,查看“聚合报告”,jmete测试结果


    步骤六:配置jmeter压测JDBC参数,使用传输压缩特性,并运行jmeter脚本
    jdbc:kingbase8://xxx.xxx.xxx.xxx:port/perf_test?ziplevel=2

    观察服务器和客户端侧CPU及网络情况

  • 数据库侧

  • 客户端侧


    步骤七:查看数据库服务CPU及网络情况,脚本执行完成后,查看“聚合报告”数据,jmeter测试结果

测试结果对比分析
是否压缩SamplesAverage95% LineThroughputReceived
不使用传输压缩8018004219730812.9/min1722.86
使用传输压缩9051342015275174.0/min23569.04

对比分析是否使用传输压缩特性测试两组测试数据,使用传输压缩比不使用传输压缩:

  1. 响应时间提升92.26%,吞吐率提升92.69%。
  2. 网络传输带宽未明显变化,CPU利用率增加90%左右。
  3. 可见在网络传输条件较差,而CPU比较空闲的场景。使用kingbase ES提供的传输压缩特性,查询性能会有较大幅度提升,可以有效解决在特殊场景下的性能问题。
四、尝鲜小妙招

如果您想先试一试kingbase ES提供的传输压缩功能,可以移步人大金仓官方网站下载V8R6版本数据库安装包并完成安装。然后按如下方式“制造”网络堵塞现场:
参考命令如下:
删除限速:
/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


参数说明:

  • burst :桶的大小,指定了最多可以有多少令牌能够即刻使用,若令牌数量不够可能会导致网口不可用,通过重启服务器解决。
  • mbps和MB/s单位转换
    Mbps(Mb/s):每秒传输的位数量(b:bit)
    MB/s:每秒传输的字节数量(B:Byte)
    1Byte=8bit,8Mbps=1MB/s

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/722103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存