【转】ksoftirqd进程耗尽单核100%si处理软中断导致性能瓶颈

最近测试LVS性能,发现当CPU其中一个核耗尽后系统达到性能顶峰。 消耗CPU资源的是ksoftirqd进程,全部用于处理软中断(从进程名也能识别出了)。
搜了一下,很多人都遇到这类问题,似乎也没有解决。了解到并尝试过的解决方案有:
1、减少集群成员的数量;
2、修改集群模式(NAT、TURNL、DR);
3、修改集群调度算法;
4、升级操作系统内核到2.6.20以上;
5、调整网卡的最大传输单元(MTU);
6、修改设备中断方式;
7、使用多网卡负载均衡;
8、升级硬件(网卡);
9、更换操作系统。

一一解说如下吧:
第1点:减少集群成员的数量。由于瓶颈不在真实服务器上,所以减少成员数量,lvs性能没有明显变化。
第2点:修改集群模式。理论上DR模式是最省资源的,大概了解理论的朋友应该都知道。由于NAT模式不满足需求,故仅对比了DR和TUN模式,两者没有明显区别。
第3点:修改集群调度算法。已有的十种算法中属rr最简单,而且目前瓶颈还未深入到这一层。实际上在处理网络包的时候导致的瓶颈。调度算法简单比较了rr和wrr,两者没有明显区别。
第4点升级操作系统内核到2.6.20以上。我直接升级到当前已发布的最新版本2.6.34,结果瓶颈并没有得到改善。
第5点:调整网卡的最大传输单元。交换机支持最大的传输单元是9216,将网卡的最大传输单元分别修改为:1500(默认)、5000、9000、9216。其中1500和5000两者没有明显差别,9000和9216会导致网络不稳定,性能也没有提高反而出现大量连接超时。
第6点:修改设备中断方式。通过修改设置中断/proc/irq/${网卡中断号}/smp_affinity:
测试服务器CPU为四核,理论上网卡的smp_affinity值为1、2、4、8分别对应cpu0、cpu1、cpu2、cpu3。
结果:
1、网卡的smp_affinity默认值为8,测试过程中软中断全部由cpu3处理。正确
2、设置smp_affinity = 1,测试过程中软中断全部由cpu0处理。正确
3、设置smp_affinity = 2,测试过程中软中断全部由cpu1处理。正确
4、设置smp_affinity = 4,测试过程中软中断全部由cpu2处理。正确
5、设置smp_affinity = 5,测试过程中软中断全部由cpu0处理,预期应该分配给cpu0和cpu2处理。无效
6、设置smp_affinity = f,测试过程中软中断全部由cpu0处理,预期应该分配给cpu0、cpu1、cpu2和cpu2处理。无效
即:修改smp_affinity的功能只针对单核有效。
第7点:使用多网卡负载均衡。此方案可行!使用两张网卡绑定一个IP地址,性能就提升了一倍,效果非常明显。原因就是两张网卡各用一个CPU核,相比用单核而言,性能自然提升一倍。
配置方式如下:

单网卡工作模式
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.223.255
HWADDR=00:1E:90:76:6F:E0
IPADDR=192.168.223.113
NETMASK=255.255.254.0
NETWORK=10.20.222.0
ONBOOT=yes
GATEWAY=192.168.222.1
TYPE=Ethernet
绑定双网卡操作步骤
echo 'alias bond0 bonding' >> /etc/modprobe.conf

# cat /etc/sysconfig/network-scripts/ifcfg-bond0 
DEVICE=bond0
BOOTPROTO=static
BROADCAST=192.168.223.255
MACDDR=00:1E:90:76:6F:E2
IPADDR=192.168.223.113
NETMASK=255.255.254.0
NETWORK=192.168.222.0
USERCTL=no
ONBOOT=yes
GATEWAY=10.20.222.1
TYPE=Ethernet
BONDING_OPTS="mode=0 miimon=100"

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

# service network restart

第8点,升级硬件,使用支持RSS功能的网卡。**
下面是intel对RSS的说明

Receive-side scaling (RSS) routes incoming packets to specific queues, efficiently balancing network loads across CPU cores and increasing performance on multi-processor systems. RSS, called Scalable I/O in Linux*, creates a hash table from IP, TCP, and Port Addresses and uses that table to decide which queue to route a packet to, and to which processor the packet should be associated.
可是从我们使用网卡的官网硬件指标上,都是支持RSS的。Windows的设置方式是**netsh int tcp set global rss=enabled**

第9点,更换操作系统。此方案在生产环境下部署的可能性比较小,但是否关操作系统的事确实需要确认。
据说Windows的NLB、solaris、AIX支持网卡RSS,目前还有待确认。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • X86系统采用中断机制协同处理CPU与其他设备工作。长久以来网卡的中断默认由cpu0处理,在大量小包的网络环境下可...
    cb9e58ff5a37阅读 9,008评论 0 7
  • 优酷土豆的Redis服务平台化之路 1 Redis架构的方案经历阶段 1.1.客户端分片 客户端分片: 优点 不依...
    meng_philip123阅读 1,185评论 1 8
  • 网卡多队列 什么是中断 CPU在运行的时候遇到的一些事件, 这些事件有可能是线性程序本身出现的,那也有可能是在CP...
    Zonas001阅读 4,305评论 0 0
  • 淡淡红尘情亦长,暖暖岁月爱更香,花开花谢春已逝,遇伊人思伊人又一年,人这一生,天南地北,各自漂零,走在一起,是缘分...
    ec406fac4d1a阅读 604评论 0 1
  • 春天是万物复苏的季节是温暖的开始。然而 现在才是春天而已,我却已经非常想念8月的夏天了!虽然这个时间段是一年当中最...
    蜜甜水淡阅读 171评论 0 2