昨天在查LVS调度均衡性问题时,最终确定是 persistence_timeout 参数会使用IP哈希。目的是为了保证长连接,即一定时间内访问到的是同一台机器。而我们内部系统,由于出口IP相对单一,所以总会被哈希到相同的RealServer。

过去使用LVS,遇到过单核CPU被软中断耗尽的问题,然后知道了网卡驱动与多队列。而后知道了淘宝对LVS的优化,然后对生产环境进行了优化,效果显著。

如今单台LVS带宽吃到近500Mb/s,每秒进出包都过40万。此时发现网卡(4队列)对应CPU的软中断消耗已过40%了,倍感压力。按理,空闲CPU如果少于40%,则要新增节点了。关于中断不均衡的问题,听取了淘宝普空的意见,效果也非常明显,全均衡了:

原来CentOS 6.1就开始支持RPS了,原生支持需要使用Linux内核2.6.38或以上版本。

简单来讲,RPS就是让网卡使用多核CPU的。传统方法就是网卡多队列(RSS,需要硬件和驱动支持),RPS则是在系统层实现了分发和均衡。献上修改设置的脚本一例:

#!/bin/bash
# Enable RPS (Receive Packet Steering) rfc=4096
cc=$(grep -c processor /proc/cpuinfo)
rsfe=$(echo $cc*$rfc | bc)
sysctl -w net.core.rps_sock_flow_entries=$rsfe
for fileRps in $(ls /sys/class/net/eth*/queues/rx-*/rps_cpus)
do
echo fff > $fileRps
done for fileRfc in $(ls /sys/class/net/eth*/queues/rx-*/rps_flow_cnt)
do
echo $rfc > $fileRfc
done tail /sys/class/net/eth*/queues/rx-*/{rps_cpus,rps_flow_cnt}

版权属于: 吕滔博客

原文地址: https://www.lvtao.net/server/492.html

转载时必须以链接形式注明原始出处及本声明。

关于Linux网卡调优之:RPS (Receive Packet Steering)的更多相关文章

  1. Linux网卡调优篇-禁用ipv6与优化socket缓冲区大小

    Linux网卡调优篇-禁用ipv6与优化socket缓冲区大小 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一般在内网环境中,我们几乎是用不到IPV6,因此我们没有必要把多不 ...

  2. linux性能调优概述

    - 什么是性能调优?(what) - 为什么需要性能调优?(why) - 什么时候需要性能调优?(when) - 什么地方需要性能调优?(where) - 什么人来进行性能调优?(who) - 怎么样 ...

  3. Linux内核调优参数说明

    该脚本是我常用的系统安装后执行脚本,包括开机启动服务.内核.SSH优化. !/bin/sh 服务优化,(sshd.network.crond.syslog.rsyslog)服务保持默认开机启动 Ser ...

  4. <Linux性能调优指南>主要思路流程

    网上IBM很早放出的一本免费电子书, 十来年了,参考意义还是很大. 国内有翻译成中文在线阅读的版本. 见如下两个URL Linux Performance and Tuning Guidelines ...

  5. linux系统性能调优第一步——性能分析(vmstat)

    linux系统性能调优第一步--性能分析(vmstat) 分类: LINUX 性能调优的第一步是性能分析,下面从性能分析着手进行一些介绍,尤其对linux性能分析工具vmstat的用法和实践进行详细介 ...

  6. 转载linux性能调优工具

    Linux 大牛,Netflix 高级性能架构师 Brendan Gregg 更新 Linux 性能调优工具,各种资源应有尽有,大量干货,强烈建议收藏.

  7. linux 性能调优工具参考 (linux performance tools)

    之前发现几张图对于linux使用者有着较强的参考意义,下面对其进行简单备忘: # linux 静态信息查看工具 # linux 性能测试工具 benchmark # linux 性能观测工具 # li ...

  8. [Linux 性能调优] 网卡中断与CPU的绑定问题

    在Linux的网络调优方面,如果你发现网络流量上不去,那么有一个方面需要去查一下:网卡处理网络请求的中断是否被绑定到单个CPU(或者说跟处理其它中断的是同一个CPU). 先说一下背景 网卡与操作系统的 ...

  9. Linux系统调优——网络(四)

    (1).查看网络(Network)运行状态相关工具 1)nload监控总体带宽使用情况 nload需要自己安装,而且在安装前需要安装epel-release [root@youxi1 ~]# yum ...

随机推荐

  1. WordPress 禁用文章修订和自动保存的方法

    以下代码亲测并没有效果,不能禁用自动保存  /* 移除自动保存和修订版本 */ remove_action('pre_post_update', 'wp_save_post_revision' ); ...

  2. PHP - AJAX 与 PHP

    PHP - AJAX 与 PHP AJAX 被用于创建交互性更强的应用程序. AJAX PHP 实例 下面的实例将演示当用户在输入框中键入字符时,网页如何与 Web 服务器进行通信: 实例 尝试在输入 ...

  3. 38、各Set实现类的性能分析

    HashSet和TreeSet是Set的两个典型实现,到底如何选择HashSet和TreeSet呢?HashSet的性能总是比TreeSet好(特别是最常用的添加.查询元素等操作),因为TreeSet ...

  4. CentOS 开机启动

    # vim /etc/rc.local 加入你想在开机后执行的脚本 source /etc/profile /usr/local/xx.sh 写第一句是想保证在执行脚本前系统环境变量有效,第二句才是真 ...

  5. JDBC 元数据信息 getMetaData()

    数据库元数据信息: import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.SQLExcept ...

  6. JDBC 可更新和对更新敏感的结果集

    public class OtherApi {     /**      * @param args      * @throws SQLException      * @throws Interr ...

  7. 建立对ActiveX控件的了解

    本文来自百度百科:ActiveX控件   ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM).在有目录和其它支持的网络中,COM变成 ...

  8. Mysql 创建表和删除表

    在数据库中创建一张表的基本语法如下: CREATE TABLE tablename (column_name_1 column_type_1 constraints, column_name_2 co ...

  9. java中GET方式提交和POST方式提交

    java中GET方式提交的示例: /** * 获取关注列表; * @return */ @SuppressWarnings("unchecked") public static A ...

  10. sysbench的安装详解

    sysbench是一个压力测试工具.可以用它来测试cpu.mem.disk.thread.mysql.postgr.oracle:然而作为一个mysql dba 我当然是用它来压测mysql啦! 一. ...