为什么使用IPVS在Web性能测试时服务能力会出现波动?

最近我在使用IPVS进行Web服务的测试,发现使用IPVS后会在Web性能测试中产生服务能力的波动,请各位看看问题的症结所在,先谢谢各位了:)。
测试工具为WebBench5.0,为了对比不使用IPVS时的情况,后端只使用一个真实节点。先不使用IPVS单独测试WebBench对应一个真实服务节点的情况,数据很平稳,没有出现波动。再使用WLC算法进行配置,仍然只使用刚才测试中用的那个后端真实节点,测试得到的结果随着WebBench模拟客户端数目的变化上下起伏,而且是很有规律性的变化,截图在下面,有没有哪位做过相关的测试,是否出现了类似的情况?
在不使用IPVS,直接测试一个客户机对应一个服务节点时的数据,单位时间处理连接数和吞吐量都很平稳:

[inline:1.JPG]

使用了IPVS后,仍然只使用一个客户机对应一个真实服务节点,两者之间是LB 节点,测试数据出现上下波动:

[inline:2.JPG]

附件大小
Image icon 1.jpg35.06 KB
Image icon 2.jpg20.56 KB

Forums:

我的其实也是这样的:
eth0 eth1
KB/s in KB/s out KB/s in KB/s out
0.00 0.00 0.00 0.00
748.49 785.98 0.06 0.00
0.00 0.00 0.00 0.00
767.00 804.24 0.06 0.00
0.00 0.00 0.00 0.00
776.95 814.17 0.06 0.00
0.00 0.00 0.00 0.00
711.28 746.85 0.06 0.00
0.00 0.00 0.00 0.00
715.40 752.94 0.06 0.00
0.00 0.00 0.00 0.00

哥们我用Loadrunner去压Lsv也是波动非常大,直接压后面的应用却非常平稳,是哪里的原因?

环境:lbs:cent os 5.2 lvs 1.25 keepalived 1.1.5(6) GB SWITCH GB NIC

real server:rhel5.2,apache2.0.63

vip:10.0.0.2 rip:10.0.0.20,10.0.0.25

lvs DR RR

REAL SERVER TEST
./ab -c 1000 -n 10000 http://10.0.0.20:8080/images/logo.png

Requests per second: 5233.11 [#/sec] (mean)
Time per request: 191.091 [ms] (mean)
Time per request: 0.191 [ms] (mean, across all concurrent requests)
Transfer rate: 47260.18 [Kbytes/sec] received

./ab -c 1000 -n 10000 http://10.0.0.25:8080/images/logo.png

Requests per second: 4168.05 [#/sec] (mean)
Time per request: 239.920 [ms] (mean)
Time per request: 0.240 [ms] (mean, across all concurrent requests)
Transfer rate: 36730.53 [Kbytes/sec] received

VIP TEST
./ab -c 1000 -n 10000 http://10.0.0.2:8080/images/logo.png

Requests per second: 359.43 [#/sec] (mean)
Time per request: 2782.182 [ms] (mean)
Time per request: 2.782 [ms] (mean, across all concurrent requests)
Transfer rate: 3182.29 [Kbytes/sec] received

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
:RH-Firewall-1-OUTPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
#vrrp protcol
-A RH-Firewall-1-INPUT -p vrrp -j ACCEPT
-A RH-Firewall-1-OUTPUT -p vrrp -j ACCEPT
#vip 10.0.0.2 forward---------------------------还是不行,速度慢,把iptables关了,一下就能上到5000多请求响应
-A FORWARD -p tcp -d 10.0.0.2 -j ACCEPT

I am totally wowed and praeerpd to take the next step now.

Thanks for being on point and on tatgre!

我不知道你有没有将服务设置为持久服务(Persistent)?

如果是,则调度器会将来自同一IP地址的调度到同一台服务器上。如果你的客户机数目有限,则取决于先前的持久调度分配是怎么样。图上的波动应该说明两台服务器的负载是不均匀的,很大可能是持久调度分配造成的。

如果确实是这样,你可以考虑每次用偶数个Client,每次测试前等所有持久调度模板过期。

没有设置为持久服务方式,我在测试中只是用了一个后端真实节点,应该不会出现负载不均衡的问题。最早我怀疑是WebBench这个测试工具的问题,于是就只用一个真实节点分别在使用了ipvs和不使用的情况下做了比照测试,使用一样的测试用例和测试过程,但是使用了wlc、rr等几种调度算法都出现了服务能力波动的情况,而不使用时测试结果是正常的。请教一下测试使用了IPVS的Web虚拟服务有哪些比较好的测试工具?

我也一时想不出来原因。

可以考虑试试SpecWeb测试程序(http://www.spec.org/web2005/),不过好像这东西是要钱的。

也可以考虑运行多个ab或者httperf来测试性能。

Wow! Great thikning! JK

If your arectlis are always this helpful, "I'll be back." http://suqqdkqlc.com [url=http://pzercgzql.com]pzercgzql[/url] [link=http://srtops.com]srtops[/link]

And to think I was going to talk to soemone in person about this.

Thanks for the great info dog I owe you biytggi.

Cheers pal. I do apcieprate the writing.

God help me, I put aside a whole afetonron to figure this out.

randomness