LVS技术浅析-配置管理3
来源:互联网 发布:机器人运动算法 编辑:程序博客网 时间:2024/05/16 14:03
上一篇《配置管理2》,我们介绍了如何利用keepalived来部署LVS;
本文将介绍一些LVS配置的注意点,以及 性能相关的一些配置;
1. SH调度算法-尽量不要采用
一些业务为了支持会话保持,选择SH调度算法,以实现同一源ip的请求调度到同一台RS上;但 SH算法本省没有实现一致性hash,一旦一台RSdown,当前所有连接都会断掉;如果配置了inhibit_on_failure,那就更悲剧了,调度到该RS上的流量会一直损失;
实际线上使用时,如需 会话保持,建议配置persistence_timeout参数,保证一段时间同一源ip的请求到同一RS上;
2. WLC调度算法-注意RSdonw->up的影响
WLC算法下,RS一旦出现down后up的情况,瞬间所有的新建连接都会调度到该RS上,可能会超过该RS处理请求的上限;
3. 关闭网卡LRO/GRO功能
现在大多数网卡都具有LRO/GRO功能,即 网卡收包时将同一流的小包合并成大包(tcpdump抓包可以看到>MTU 1500bytes的数据包)交给内核协议栈;LVS内核模块在处理>MTU的数据包时,会丢弃;
因此,如果我们用LVS来传输大文件,很容易出现丢包,传输速度慢;
解决方法,关闭LRO/GRO功能,命令:
ethtool -k eth0 查看LRO/GRO当前是否打开
ethtool -Keth0 lro off 关闭GRO
ethtool -Keth0 gro off 关闭GRO
4. 手动绑定网卡中断
当前大多数网卡都是支持硬件多队列的,为了充分发挥多核的性能,需要手动将网卡中断(流量)分配到所有CPU核上去处理;
查看网卡中断:
cat /proc/interrupts
54: 188324418 0 IR-PCI-MSI-edge eth0-TxRx-0
55: 167573416 0 IR-PCI-MSI-edge eth0-TxRx-1
绑定网卡中断到CPU核:
echo 01> /proc/irq/54/smp_affinity
echo 02> /proc/irq /55/smp_affinity
关闭系统自动中断平衡:
service irqbalance stop
如果网卡硬件不支持多队列,那就采用google提供的软多队列RPS;
配置方法同硬中断绑定;
查看软队列:
cat /sys/class/net/eth0/queues/rx-0/rps_cpus
cat /sys/class/net/eth0/queues/rx-1/rps_cpus
绑定 软队列到CPU核:
echo 01 >/sys/class/net/eth0/queues/rx-0/rps_cpus
echo 02 >/sys/class/net/eth0/queues/rx-1/ rps_cpus
5.修改LVS内核配置,提高性能
LVS内核默认配置连接hash表大小为4K,16把hash桶锁;如果应用的并发连接数>4w,则上述配置会无法满足性能需求;
调大连接hash表:
在内核源码根目录下,修改文件 vim .config - CONFIG_IP_VS_TAB_BITS=20;
增大hash桶锁个数:
ipvs源码目录下,修改文件vim ip_vs_conn.c - #defineCT_LOCKARRAY_BITS 8;
6. BIOS中关闭超线程
关闭超线程 也是基于性能考虑;
本文将介绍一些LVS配置的注意点,以及 性能相关的一些配置;
1. SH调度算法-尽量不要采用
2. WLC调度算法-注意RSdonw->up的影响
3. 关闭网卡LRO/GRO功能
4. 手动绑定网卡中断
5.修改LVS内核配置,提高性能
6. BIOS中关闭超线程
0 0
- LVS技术浅析-配置管理3
- LVS技术浅析
- LVS技术浅析
- LVS技术浅析-WHY
- 配置管理系统浅析
- 基于SaltStack完成LVS的配置管理
- 配置管理与技术
- 配置管理步步高:配置管理与技术的精髓
- LVS技术总体分析
- [转]LVS技术原理
- LVS集群技术
- 软件配置管理中的基线技术
- 软件配置管理中的基线技术
- LVS的3种负载均衡技术的测试
- lvs负载均衡技术介绍
- 配置管理
- 配置管理
- 配置管理
- Programming Ruby读书笔记
- c++中的虚函数
- Redis cluster tutorial
- Android Fragments详解七:fragment实例
- R语言入门学习-搭建R语言环境
- LVS技术浅析-配置管理3
- HDOJ 1166 敌兵布阵 树状数组、线段树
- android 数据库SQLite
- java常用名词或技术
- 学习点滴(一)
- 数据库事物
- 底层通讯协议问题排查案例
- unity射线碰撞检测+LayerMask的使用
- dedecmsV5.7如何在搜索的时候调用自定义模板的字段