网卡优化

RSS receive side scaling,网卡多队列,需要硬件支持。网卡接收到网络数据包后,要发送一个硬件中断,通知CPU取数据包。默认配置,都是由CPU0去做。

RPS receive packet steering,向某个CPU发送一个软中断,来接收数据包,并递交给应用程序。

RFS receive flow streering,维护两种hash表,实现将软中断分散到多颗CPU上去处理。

1.选择支持msi-x中断方式的网卡类型

#lspci –v

2.网卡需要支持多队列

#lspci –vvv

如果有MSI-X && Enable+ && TabSize > 1,则该网卡是多队列网卡

3.2.6.35 以后的内核版本都支持google的RPS/RFS补丁,RHEL6.1以后。这个功能默认关闭需要手工开启

开启RPS(两颗4c的CPU)

#echo ff > /sys/class/net/eth0/queues/rx-0/rps_cpus

开启RFS(内存大的机器可以设置大于4096)

#echo 4096 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt

4096*N(N网卡队列数# cat /proc/interrupts | grep eth0)

#echo 32768 > /proc/sys/net/core/rps_sock_flow_entries

http://blog.netzhou.net/?p=181

http://blog.csdn.net/turkeyzhou/article/details/7528182

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/index.html

网卡优化RPS/RFS的更多相关文章

  1. Linux RPS/RFS 实现原理浅析

    本文快速解析一下RPS/RFS的基本原理. RPS-Receive Packet Steering 下面这个就是RPS的原理:  其实就是一个软件对CPU负载重分发的机制.其使能的作用点在CPU开始处 ...

  2. 为什么使能RPS/RFS, 或者RSS/网卡多队列后,QPS反而下降?

    http://laoar.github.io/blog/2017/05/07/rps/ TL;DR RPS 即receive side steering,利用网卡的多队列特性,将每个核分别跟网卡的一个 ...

  3. Linux RSS/RPS/RFS/XPS对比

    RSS适合于多队列网卡,把不同的流分散的不同的网卡多列中,至于网卡队列由哪个cpu处理还需要绑定网卡队列中断与cpu RPS:适合于单队列网卡或者虚拟网卡,把该网卡上的数据流让多个cpu处理 RFS: ...

  4. RPS/RFS/ GRO

    http://www.cnhalo.net/2016/09/13/linux-gro/ GRO(Generic receive offload): 在napi poll里把小包封装成大包再递交给协议栈 ...

  5. linux kernel 关于RSS/RPS/RFS/XPS的介绍

    Introduction============ This document describes a set of complementary techniques in the Linuxnetwo ...

  6. vmware linux top si高以及网卡队列、软负载相关优化

    今日,测试公司自行开发的一rpc中间件,期间发现top si的比例很高,且几乎只有一个cpu是繁忙的,其他均基本为0. 经查,si主要是系统软中断,最后确定是网卡导致的系统中断.于是,往上搜了下资料, ...

  7. Linux性能优化实战学习笔记:第三十五讲

    一.上节回顾 前面内容,我们学习了 Linux 网络的基础原理以及性能观测方法.简单回顾一下,Linux网络基于 TCP/IP 模型,构建了其网络协议栈,把繁杂的网络功能划分为应用层.传输层.网络层. ...

  8. Linux性能优化从入门到实战:17 网络篇:网络基础

    网络模型 为了解决网络互联中异构设备的兼容性问题,并解耦复杂的网络包处理流程,国际标准化组织制定了开放式系统互联通信参考模型(Open System Interconnection Reference ...

  9. Linux 从网卡到TCP IP协议栈数据流跟踪与审计

    前沿 在学代码审计,然后最近做Linux协议栈的审计,发现Linux不愧是一个久经考验的系统,本来以为可以找到个DoS的,结果发现其在TCP/IP协议栈的链路层实现,利用了各种技术,用来提高性能与安全 ...

随机推荐

  1. [Functional Programming] Monad

    Before we introduce what is Monad, first let's recap what is a pointed functor: A pointed functor is ...

  2. Android:Volley源代码解析

    简单实例 Volley是一个封装HttpUrlConnection和HttpClient的网络通信框架,集AsyncHttpClient和Universal-Image-Loader的长处于了一身.既 ...

  3. Ubuntu14.04怎样使用root登录

    1.打开终端 2.sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 3.在弹出的编辑框里输入:greeter-show-manua ...

  4. OpenERP函數字段的應用

    在ERP開發過程中經常會使用到某字段的值是由其他字段計算得來,並且有些還需要將計算的結果存入資料庫. 以上功能上OpenERP中是用field.function實現的 其中有種模式 a). 只計算,不 ...

  5. jquery插件制作教程 txtHover(转载)

    http://www.jb51.net/article/31082.htm 该系列文章是我阅读<jQuery Plugin Development Beginner's Guide>后的总 ...

  6. npoi IWorkbook HSSFWorkbook XSSFWorkbook 拥有 IEnumerator GetEnumerator(); 方法 可以遍历workbook 每个元素为每个sheet页

  7. RTTI、dynamic_cast、typeid、类与类之间的关系uml

    一.RTTI Run-time type information (RTTI) is a mechanism that allows the type of an object to be deter ...

  8. iOS学习笔记30-系统服务(三)蓝牙

    一.蓝牙 随着蓝牙低功耗技术BLE(Bluetooth Low Energy)的发展,蓝牙技术正在一步步成熟,现在的大部分移动设备都配备有蓝牙4.0,相比之前的蓝牙技术耗电量大大减少. 在iOS中进行 ...

  9. 设置 TIM3_CH2 的 PWM 模式,使能 TIM3 的 CH2 输出

    /**   ******************************************************************************   * @file    st ...

  10. 我的Android进阶之旅------&gt;Android系统设置默认来电铃声、闹钟铃声、通知铃声

    首先了解Android系统本身提供的默认铃声文件,这些文件都放在  /system/media/audio  文件夹下. /system/media/audio/ringtones   系统来电铃声 ...