vlambda博客
学习文章列表

研究实践 | 数据库防火墙系统性能测试参考

1

测试准备

测试类别

测试主要目的是研究和验证数据库防火墙系统的 性能指标、测试方法,是否满足业务实际需求,本次以 汉领信息的下一代数据库应用安全防御系统NGDAP为测试案例
序号 测试类目
1
高负载下审计处理丢失率
2 高负载下策略告警审计丢失率
3
多条sql过多条策略每条策略对sql语句的影响
4 超长sql过多条策略每条策略对sql语句的影响

测试环境

服务端软硬件环境:

系统 处理器参数 配置 数据库版本
Centos 7

Intel(R) Xeon(R) CPU E3-1220 V2 @ 3.10GHz

4核4g 40G硬盘 mysql5.7
Windows Server 2012 R2

Intel® Xoen® CPU E5-2670 v2 @ 2.50GHz

4核4g 40G硬盘 Oracle 12c
Windows 2008 R2

Intel® Xoen® CPU E5-2670 v2 @ 2.50GHz

4核4g 40G硬盘 Sql server
2012
数据库防火墙系统

Intel(R) Xeon(R) CPU E3-1220 V2 @ 3.10GHz

4核8g 500G硬盘

 客户端软硬件环境:

系统 处理器参数 配置 测试工具
Windows 10

Intel® Core(TM) i5-4210M CPU  @ 2.60GHz

4核8G 500G硬盘

1.虚机版数据库性能测试工具(自研)

2.Jmeter

网络拓扑图:

未接入数据库防火墙系统前测试环境网络拓扑图

接入数据库防火墙系统后的测试环境网络结构图

研究实践 | 数据库防火墙系统性能测试参考

2

测试指标


软件指标

(1)Averge/ms:服务器处理事务平均响应时间(表示客户端请求到服务器处理信息且反馈至客户端的时间)
(2)Throughput/s:服务器每秒处理请求数(表示服务器每秒处理客户端请求数(单位:个/秒))
(3)Error%:数据库审计丢失率

硬件指标

(1)%Processor time:CPU使用率
(2)System:Processor Queue Length:CPU队列中的线程数
(3)Mermory:Page/sec:内存错误页数
(4)Physical Disk-%Disk time:磁盘使用率


3

测试工具及策略

测试工具:数据库性能测试工具(自研)、Apache-jmeter
测试数据:  正常业务交易SQL语句、超长SQL语句
数据说明:选取数据均为代表性数据
测试场景:
1)模拟真实业务场景,多并发用户执行多条SQL语句,数据库防火墙系统SQL语句审计信息丢失率Error%)。
2)模拟真实业务场景,多并发用户执行多条SQL(均匹配到数据库防火墙的安全策略),数据库防火墙系统策略告警审计丢失率(Error%)。
3)模拟真实业务场景,用户执行多条SQL语句,数据库防火墙系统事务响应时间的影响。
4)模拟异常场景,用户执行多条超长SQL语句,数据库防火墙系统对事务响应时间的影响。
4

测试结果

高负载下审计处理丢失率

语句

并发用户数

单用户执行SQL条数

审计丢失率

语句1:insert into test values(1,’foo’,’10’,’male’)

语句2:update test set name = ’bar’ where id = 1

语句3:delete from test where age = 0

20

500

0

20

1000

0

20

10000

0

语句4:select id,name,sex,age from test(表大小500k)

20

500

0

20

1000

0

20

10000

0

语句5:select * from MOCKDATA(表大小10m)

20

500

0

20

1000

0

20

10000

0


高负载下策略告警审计丢失率

语句

并发用户数

单用户执行SQL条数

告警条数/测试条数(%)

审计丢失率(%)

语句1:insert into test values(1,’foo’,’10’,’male’)

语句2:update test set name = ’bar’ where id = 1

语句3:delete from test where age = 0

20

500

100

0

20

1000

100

0

20

10000

100

0

语句4:select id,name,sex,age from test(表大小100k

20

500

100

0

20

1000

100

0

20

10000

100

0

语句5:select * from MOCKDATA(表大小10m

20

500

100

0

20

1000

100

0

20

10000

100

0


多条SQL语句经过多条安全策略时每条策略对事务平均响应时间的影响

增删改语句

测试次数

响应时间(s)

经过NGDAP对每条sql语句的影响(us)

每条策略对每条sql语句的影响(us)

无NGDAP

500条insert语句

10

2.229637



未经过策略

500条insert语句

10

2.253291

47


经过策略 (50条)

500条insert语句

10

2.347866


      3.78

经过策略 (125条)

500条insert语句

10

2.488195


      3.75


无NGDAP

1000条insert语句

10

4.257787



未经过策略

1000条insert语句

10

4.331429

73


经过策略(50条)

1000条insert语句

10

4.480193


      2.97

经过策略 (125条)

1000条insert语句

10

4.686897


      2.84


无NGDAP

1500条insert语句

10

6.949762



未经过策略

1500条insert语句

10

7.113779

109


经过策略(50条)

1500条insert语句

10

7.428970


      4.20

经过策略(125条)

1500条insert语句

10

7.733414


      3.30



查询语句

次数

平均时间(s)

经过设备对每条sql语句的影响(us)

每条策略对每条sql语句的影响(us)




表空间100k

表空间10m





无NGDAP

500条select语句

10

1.282831

44.640803





未经过策略

500条select语句

10

1.306056

46.732554

46

418



经过策略(50条)

500条select语句

10

1.331296

47.337280



1

24.18

经过策略(125条)

500条select语句

10

1.388015

48.722731



1.31

31.84


无NGDAP

1000条select语句

10

2.354470

105.852258





未经过策略

1000条select语句

10

2.385278

107.952276

31

610



经过策略(50条)

1000条select语句

10

2.431258

109.218826



2.65

25.33

经过策略(125条)

1000条select语句

10

2.518184

110.688709



1.06

21.89


无NGDAP

1500条select语句

10

3.835029

176.396553





未经过策略

1500条select语句

10

3.998377

180.328666

108

693



经过策略(50条)

1500条select语句

10

4.040296

185.123962



0.55

63.93

经过策略(125条)

1500条select语句

10

4.208166

189.914894



1.11

51.12


超长SQL语句经过多条安全策略时每条策略对事务平均响应时间的影响

语句

执行语句次数

响应时间(ms)

每条策略对每条sql语句的影响(us)

无NGDAP

超长1

20

516

未经过策略

超长1

20

526


经过策略(50条)

超长1

20

548

22

经过策略(125条)

超长1

20

589

25

注:1.响应时间的计算公式为Tmax+(n-1)*(Tmin+Tavg)/2

研究实践 | 数据库防火墙系统性能测试参考

2.观测数据库防火墙及数据库服务器,数据库服务器CPU使用率大部分时候介于30%~55%,高峰时达到70%到85%,最高峰是达到90.2%,而数据库防火墙设备(NGDAP)的CPU使用率一直维持在20%~30%之间。
5

测试结论

  • 1.数据库防火墙系统即使在串联方式下,也能友好支持在高并发高负载业务场景下的数据库SQL审计(测试的汉领信息NGDAP在串联高并发业务场景下的审计完整性100%)。

  • 2.数据库防火墙系统在实验室环境下,串联进网络防护策略对业务交易SQL语句的延迟影响可达到微秒级别(测试的汉领信息NGDAP在串联时每条策略对SQL语句的影响在平均在50微秒级别)。

  • 3.数据库防火墙系统对超长SQL语句的审计对其性能的影响很小(测试的汉领信息NGDAP支持对超长SQL语句等恶意语句的审计,超长SQL语句对其性能的影响较小)。



研究实践 | 数据库防火墙系统性能测试参考
研究实践 | 数据库防火墙系统性能测试参考