ipset性能测试
测试方法 基于使用场景,最后⽣成的规则会是按照 ip 或者 ip:port 来进行过滤,测试时将使用10万条 iptables 规则来模拟对性能的压力;为了最大化测试压力情况,10万条 iptables 规则将都是==不会匹配==机房流量,通俗来讲,就是链式匹配会进行所有匹配并最后以无匹配告终。 网络负载的模拟将使用同机房 scp 来模拟,并按照下述条件进行匹配: 查看正常的拷贝速度,cpu负载等 我们建⽴10万条的普通 iptables 规则,查看规则建立速度,拷贝速度,CPU负载,CPU主要耗时操作等 我们建⽴10万的 ipset ,并把普通的 iptables 规则转为结合 ipset 的规则,查看规则建立速度,拷贝速度,CPU负载,CPU主要耗时等。 实验开始 步骤一:在同机房的⼀个机器构造⼀个大文件 同机房拷贝 观察网卡速度,CPU,系统主要耗时操作的等,此场景将在iptables 规则为空的情况下进行观察 使用 sar 观测网卡速度 使用 top 观察CPU负载 使用 perf top -G 观察CPU占用 步骤二:创建10万条iptables,观察⽹卡速度、cpu、系统主要耗时操作的等,会发现cpu利⽤率⼤部分被ipt占⽤,拷⻉速度下降到不到⼗分之⼀ bash 1 2 3 4 5 6 7 8 #!/bin/bash echo *filter for ((i=1;i<=$1;i++)) do echo -I INPUT -S $i -j ACCEPT done echo COMMIT 执行脚本 bash 1 $ time ....