关于内核处理中断只使用一个CPU核,导致lvs出现性能瓶颈
时间:2010-06-06
来源:互联网
你好!
最近在内网测试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均衡的服务,似乎没有什么作用?
最近在内网测试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均衡的服务,似乎没有什么作用?
作者: higkoo 发布时间: 2010-06-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28