Linux 软路由性能测试及分析

发表于:2008-11-24 14:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

  ##把原地址为局域网内的数据报通过Linux软路由转发出去

#log-level:debug,info,notice,warn/warning,err/error,crit,alert,emerg/panic

iptables-AFORWARD-ptcp-mlimit--limit6/minute--limit-burst1-jLOG\

--log-leveldebug--log-prefix"NAT:"

  ##开启日志记录功能

iptables-tnat-APREROUTING-d211.155.226.121-ptcp--dport80\

-jDNAT--to10.1.10.2:80

  ##映像HTTP协议80端口

modprobeip_nat_ftp

iptables-tnat-APREROUTING-d211.155.226.121-ptcp--dport21\

-jDNAT--to10.1.10.3:21

  ##映射FTP端口

  3.2、计算机配置

  表1.硬件配置

设备

型号

实际带宽约

100M 网络卡×2

DLink DFE-530TX

10.7 MBps

32位33MHz PCI总线

MSI865PE

60.0 MBps

7200rpm 硬盘

SAMSUNG SP0812C

39.3 MBps

400MHz 内存

威刚512M DDR400

405.8 MHz

800MHz System Bus

Pentium4 2.4c

811.5 MHz

  由表1可知,网络卡的实际数据传输速度为10.7MBps,若使用两块PCI网络卡则带宽需2×10.7MBps=21.4MBps,小于32位33MHzPCI总线带宽60MBps;而计算机CPU、内存传输速度远远大于PCI总线和网络卡数据传输速度,因此理论上软路由数据报转发速度取决于网络卡速度。

  4、测试结果

  软路由稳定运行10天后系统性能:

  内核空间CPU占用率(sy)为0.3%,空闲CPU(id)为99.7%

  系统占用物理内存稳定在198M(系统启动时占用物理内存74M)

  5Min内TCP连接数最大值为4120

  网络卡eth0平均数据流量2.77MBps,网络卡eth1平均数据流量2.45MBps,网络负载较轻

  通过网关传输文件实测平均速度约为7.64MBps,最高速度10.8MBps,较好的符合了表1中的实际带宽。这个数值约为网络卡理论速度的86.4%(网络卡理论速度为12.5MBps)

  开启并使用VPN和DHCP服务10天后,测试系统性能:

  内核空间CPU占用率(sy)为0.7%

  系统占用物理内存稳定在297M

  5Min内TCP连接数最大值为4108

  网络卡eth0平均数据流量2.81MBps,网络卡eth1平均数据流量2.52MBps,网络负载较轻

  通过网关传输文件实测平均速度约为7.57MBps;最高速度即10.21MBps。这个数值约为网络卡理论速度的81.68%

  加载Linux软路由防火墙策略,测试系统性能:

  内核空间CPU占用率0.9%

  系统占用物理内存提升为在301M

  通过网关传输文件实测平均速度约为7.31MBps,最高速度9.64MBps。这个数值约为网络卡理论速度的77.1%

  5、带宽和并发连接数讨论

  5.1、带宽的分配和计算

  由测试结果可知,Linux软路由CPU占用率极低,内存稳定。而网络传输平均速度7.64MBps+2.77MBps=10.41MBps,最高速度10.8MBps,较好符合表1中的网络卡的实际速度10.7MBps。因此,百兆的网络中软路由数据报转发速度取决于网络卡速度。在网络繁忙时期,软路由的网络卡负载会很重,损耗几率也大大增加。实际使用中,某些网络卡在高负载下往往容易坏。

  如果软路由为纯NAT应用,由于NAT表工作在网络层,理论上应比应用层服务IIS测出的网络卡实际速度要高,估计可以接近或达到网络卡理论速度的90%,即11.25MBps带宽。但如果在软路由中配置高级应用服务,如VPN,DHCP,HTTP等和复杂防火墙策略;那么就会占用掉有限的网络卡资源,降低软路由数据报转发速度。根据高级应用服务的数量、开销等实际情况差异,Linux软路由实际数据报转发速度大约为网络卡理论速度的70%-90%。

  假如纯NAT总带宽约为11.25MBps,某时刻有200台机器共享网络,那么平均每台机器可分到带宽57.6Kbytes/sec,实际带宽由软路由根据每台PC计算机的TCP连接数量动态分配。57.6Kbytes/sec是一个比较理想的数值,因为这样的速度可以保留充足的带宽以预防P2P软件的增多和蠕虫病毒突发所带来的冲击。

  5.2、局域网并发连接数计算

  在Linux中运行“cat/proc/sys/net/ipv4/netfilter/ip_conntrack_max”命令可得到ip_conntrack_max值,该参数标志着Linux软路由可承受的TCP最大并发连接数,它随着计算机物理内存增加而增加,256M内存时为16384个;512M为32696;1G为65392…

  在局域网任意PC计算机上运行“netstat–s”可得到该计算机的当前TCP连接数。当一台PC计算机仅为浏览网页,聊天和单线程下载檔等应用,实际TCP连接数量不会大于20个。当它运行P2P软件时,根据实际使用情况,TCP连接数约为200~400个。以200台PC计算机共享网络为例,正常情况下有15%的PC计算机正在使用P2P软件,则并发TCP连接可能会达到400×30+170×20=12190个。该数量随P2P软件使用数量和对外WEB、FTP网站流量情况而有所变化。

  6、结论

  软路由的CPU、内存处理速度已经远远超过网络卡和PCI总线速度;在百兆以太网中软路由数据报转发速度仅决定于网络卡的线速度。笔者曾用赛扬450MHZ的CPU,256M的旧机器架构,软路由在数据包转发性能上完全没有损失。因此Linux软路由完全可以采用更低主频率的内存和CPU的旧机器来架构。

  软路由数据报转发速度与机器应用情况相关,在软路由上运行较多的高级应用服务会占据有限的网络卡资源,降低数据报转发速度。若采用文中的测试代码和计算机配置,Linux软路由能带200~300台PC计算机,该数量因实际网络情况稍有不同。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号