|
你好!
最近在内网测试lvs,性能很不理想。出现的问题是:当压力较大时,Lvs服务器CPU的其中一个核使用率达到100%(处理软中断)。
1、 当Lvs服务器处理软中断的那个核使用率达到100%,就到达系统处理上限。
2、 占用CPU的是进程“ksoftirqd”,它未能使用到多核。
测试环境:
系统:CentOS release 5.4 (Final) Linux TestServer 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
硬件:Intel(R) Xeon(R) CPU E5405 @ 2.00GHz缓存大小:6.14MB (4核)、 4G内存 、 千兆网卡
网络:千兆局域网(同一个机房)
Lvs配置方法:
ipvsadm-1.24.tar.gz + libnet.tar.gz :
VIP=10.20.223.105
RSIP="10.20.223.106 10.20.223.107" //测试过程最多使用了7台
PORT=80
ALGORITHM="rr"
/sbin/iptables -I INPUT -p tcp --dport ${PORT} -j ACCEPT
/sbin/iptables -I OUTPUT -p tcp --dport ${PORT} -j ACCEPT
/sbin/iptables -I FORWARD -p tcp --dport ${PORT} -j ACCEPT
/sbin/sysctl -w net.ipv4.conf.lo.arp_ignore=0
/sbin/sysctl -w net.ipv4.conf.lo.arp_announce=0
/sbin/sysctl -w net.ipv4.conf.all.arp_ignore=0
/sbin/sysctl -w net.ipv4.conf.all.arp_announce=0
/sbin/ifconfig lo:0 down > /dev/null
echo "1" >/proc/sys/net/ipv4/ip_forward
/sbin/ifconfig eth0:0 ${VIP} broadcast ${VIP} netmask 255.255.255.255 up
/sbin/route add -host ${VIP} dev eth0:0
/sbin/ipvsadm -C
/sbin/ipvsadm -A -t ${VIP}{PORT} -s ${ALGORITHM}
for IP in $RSIP
do
/sbin/ipvsadm -a -t ${VIP}{PORT} -r ${IP} -g
done
测试方法:
使用三种场景进行性能对比:
1、 使用lvs进行负载均衡,转向RealServer上的nginx_status页面
2、 使用Nginx进行负载均衡,转向RealServer上的nginx_status页面
3、 直接访问单台服务器Nginx状态页面
测试结果:
一、 单台Lvs负载均衡的最大处理能力约1.5万
二、 单台Nginx负载均衡的最大处理能力约2万
三、 单台Nginx服务nginx_status最大处理能力约4万
尝试过的改进:(结果均无效,性能没有明显提升)
一、 升级系统内核至2.6.34
二、 修改网卡最大传输单元(MTU),交换机支持MTU最大为9216
三、 使用不同的模式DR、TUN
----------------------------------------------------
使用其它应用,软中断不会只用一个核
系统有一个irq均衡的服务,似乎没有什么作用? |
|