一直研究iptables 性能,这几天刚好有硬件资源,于是发始下手测试iptables NAT 性……

硬件环境  :

服务器: IBM x3650 ( 4G  E5645 6核 12线程) ESXi

测试服务器  : Ser1 配置 ( 1.5G 4核心 redhat 6.2 x64 iptables v 1.4)

测试服务器  : windows xp (512内存,2核心 ),Endpoint 用

网络环境  :Gbps

测试软件:业界公认的Ixchariot

TOP图

NAT FORWARD 默认为DROP

生成测试所需要的 iptables 规则,下面贴出生成iptables 脚本:

#!/bin/bash
###
##regard
#default output iptables policy file name is "iptables_policy",Please completed renamed
#default output mac bandding file name is "mac_policy",please completed renamed
###
start_ip=1
end_ip=3000
ip_n=0
## ip_n is subnet [ example 192.168.iP_n.x ] ###----------------------------------------------------------------------------
### PRIGRAM
###---------------------------------------------------------------------------- ##############
while [ $start_ip -le $end_ip ]
# echo "[ $start_ip -gt $end_ip ]"
do
if [ $start_ip -eq 254 ]
then
ip_n=$(($ip_n + 1))
start_ip=1
end_ip=$(($end_ip - 253))
#reserve end_ip.254 (SSH control port)
fi
iptables -A FORWARD -i eth0 -s 192.168.$ip_n.$start_ip -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "#arp -i" '$in_net' " -s 192.168.$ip_n.$start_ip " >> mac_policy
##display
echo "#iptables -A FORWARD add 192.168.$ip_n.$start_ip [OK] ; arp -i [ interface ] -s 192.168.$ip_n.$start_ip [OK] "
start_ip=$(($start_ip + 1 ))
done

30k 条规则测试 测试主机ACCEPT 在最后一条,ixchariot 测试结果:

Test Execution (Endpoint 1 to Endpoint 2)

Group/ Pair Endpoint 1 Endpoint 2 Network Protocol Service Quality Script/Stream Name
All Pairs          
Pair 1 192.168.10.249 192.168.100.24 TCP   Throughput.scr

Throughput

Group/ Pair Average (Mbps) Minimum (Mbps) Maximum (Mbps) Throughput 95% Confidence Interval Measured Time (secs) Relative Precision
All Pairs 81.009 52.875 94.787      
Pair 1 81.059 52.875 94.787 3.497 98.694 4.314
Totals: 81.009 52.875 94.787      


服务器使用率:

关于si 、ksoftirqd 等这里就不作解释。

50k 条规则测试 测试主机ACCEPT 在最后一条,ixchariot 测试结果:

Test Execution (Endpoint 1 to Endpoint 2)

Group/ Pair Endpoint 1 Endpoint 2 Network Protocol Service Quality Script/Stream Name
All Pairs          
Pair 1 192.168.10.249 192.168.100.24 TCP   Throughput.scr

Throughput

Group/ Pair Average (Mbps) Minimum (Mbps) Maximum (Mbps) Throughput 95% Confidence Interval Measured Time (secs) Relative Precision
All Pairs 78.976 60.286 94.787      
Pair 1 79.023 60.286 94.787 3.418 101.236 4.326
Totals: 78.976 60.286 94.787      

服务器性能:

把测试主机放在第一条时测试:

无论是 30k规则还是50k规则

Measured Time (secs)  < 15 secs

说明iptables 规则顺序与延时有极为重要的关系,稍后附测试数据,与NetBSD 的PF 性能,敬请关注!

[置顶] iptables 性能 测试的更多相关文章

  1. [置顶] Android开发笔记(成长轨迹)

    分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...

  2. QQ好友列表向左滑动出现置顶、删除--第三方开源--SwipeMenuListView

    SwipeMenuListView是在github上的第三方开源项目,该项目在github上的链接地址是:https://github.com/baoyongzhang/SwipeMenuListVi ...

  3. [置顶]Win2012R2的一个Bug安装群集后可能引发的软件崩溃问题及相应补丁

    [置顶]Win2012R2的一个Bug安装群集后可能引发的软件崩溃问题及相应补丁 如标题,笔者查阅资料发现微软声称安装故障转角色后就可能发生上述描述问题,但不止于SSMS崩溃.建议使用win2012R ...

  4. Delphi窗体置顶及失去焦点后取得焦点

    unit u_FrmTopMostActive; interface uses Winapi.Windows; implementation // 窗体置顶 procedure SetXwForegr ...

  5. JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念

    JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念 <html> <body> <script type="t ...

  6. Qt::QWindow多窗口争抢置顶状态解决方案

    有时候我们会有这种需求,自己的桌面程序需要置顶,但是程序包含了很多窗口,可能我们要求窗口1,2都在其它桌面程序之上,但是窗口1必须随时在窗口2之上. Qt提供的置顶方式是在windowsflags上增 ...

  7. [置顶] IIS应用程序池多工作进程设置及Session共享

    [置顶] IIS应用程序池多工作进程设置及Session共享   在调优iis的时候,朋友分享给我一个特别棒的设置方法步骤,感谢好朋友的分享. IIS应用程序池多工作进程设置及Session共享 1  ...

  8. [置顶] SQL Server 2005 双机热备的实现

    [置顶] SQL Server 2005 双机热备的实现 分类: SQLSERVER2011-08-24 21:25 901人阅读 评论(0) 收藏 举报 sql servermicrosoftsql ...

  9. [置顶] Silverlight之控件应用总结(一)(3)

    [置顶] Silverlight之控件应用总结(一)(3) 分类: 技术2012-04-02 20:35 2442人阅读 评论(1) 收藏 举报 silverlightradiobuttondatat ...

随机推荐

  1. ExecuteReader

    最近在做winform的编程,想到一真没有使用过ExecuteReader.可能以前以后它的用户不大,或者 不大好用,故没有用过.今天在这里将学习记录写下来,供读者参考: 1.MSDN上说:Sends ...

  2. 编程框架—Autofac

    Autofac是一款轻量级的IOC框架,性能高. Autofac基本使用步骤: 1.创建容器建造者(Builder): 2.对Builder注册类型. 3.Buildder创建容器(Container ...

  3. C#委托(Delegate)学习日记

    在.NET平台下,委托类型用来定义和响应应用程序中的回调.事实上,.NET委托类型是一个类型安全的对象,指向可以以后调用的其他方法.和传统的C++函数指针不同,.NET委托是内置支持多路广播和异步方法 ...

  4. Tomcat架构(四)

    8标准覆盖机制J2SE 1.4 and 1.5 都包含了一个XML处理解析器的Java API .Bootstrap 类加载器加载这个解析器的类文件,所以这个解析器会优先于任何一个安装在CLASSPA ...

  5. Crazy Search

    poj1200:http://poj.org/problem?id=1200 题意:给你一个有m种字符串,求长度为n的连续子串由多少种. 题解:网上的代码都是hash,但是本人觉得hash有问题,就是 ...

  6. VC++6.0 编写插件(图文并茂)

    下午偶然注意到VC++6.0新建工程标签页下的DevStudio Add-in Wizard,没有接触过,看名字是给Developer Studio开发插件,心生喜感,于是百度之,发生百度检索几乎找不 ...

  7. ​? super T ? extends T

    ​? super T ?保存的是  T类型或者T类型的父类 ​ ? extends T ?保存的是  T类型或者T类型的子类

  8. java学习面向对象之final关键字

    之前我们讲过继承的相关知识了,继承就是子类继承父类的属性和方法并且还可以覆盖父类的方法.但是这样有一个缺陷是什么呢,就是当我们一个类当中涉及一些封装的核心的东西或者对整个系统非常关键的方法或者类的时候 ...

  9. Google Map API 学习三

  10. MYSQL仅仅向某个字段进行插入

    例子: mysql> show create table student \G . row *************************** Table: student Create T ...