天天看點

高并發、大流量網卡調優(轉)

1、Broadcom的網卡建議關閉GRO功能

<code>ethtool</code><code>-K eth0 gro off</code>

<code>ethtool</code><code>-K eth1 gro off</code>

<code>ethtool</code><code>-K eth2 gro off</code>

<code>ethtool</code><code>-K eth3 gro off</code>

2、關閉irqbalance服務并手動配置設定網卡中斷

<code>service irqbalance stop</code>

<code>chkconfig irqbalance off</code>

<code># 檢視網卡中斷号</code>

<code>grep</code><code>ethx </code><code>/proc/interrupts</code>

<code># 配置設定到每顆顆CPU核上</code>

<code>cat</code><code>/proc/irq/</code><code>{84,85,86,87,88,89,90,91,92,93}</code><code>/smp_affinity</code><code>(下面</code><code>echo</code><code>的值從此擷取)</code>

<code>echo</code><code>1 &gt; </code><code>/proc/irq/84/smp_affinity</code>

<code>echo</code><code>2 &gt; </code><code>/proc/irq/85/smp_affinity</code>

<code>echo</code><code>4 &gt; </code><code>/proc/irq/86/smp_affinity</code>

<code>echo</code><code>8 &gt; </code><code>/proc/irq/87/smp_affinity</code>

<code>echo</code><code>10 &gt; </code><code>/proc/irq/88/smp_affinity</code>

<code>echo</code><code>20 &gt; </code><code>/proc/irq/89/smp_affinity</code>

<code>echo</code><code>40 &gt; </code><code>/proc/irq/90/smp_affinity</code>

<code>echo</code><code>80 &gt; </code><code>/proc/irq/91/smp_affinity</code>

<code>echo</code><code>100 &gt; </code><code>/proc/irq/92/smp_affinity</code>

<code>echo</code><code>200 &gt; </code><code>/proc/irq/93/smp_affinity</code>

3、開啟網卡的RPS功能 (Linux核心2.6.38或以上版本支援)

<code># Enable RPS (Receive Packet Steering)</code>

<code>rfc=4096</code>

<code>cc=$(</code><code>grep</code><code>-c processor </code><code>/proc/cpuinfo</code><code>)</code>

<code>rsfe=$(</code><code>echo</code><code>$cc*$rfc | </code><code>bc</code><code>)</code>

<code>sysctl -w net.core.rps_sock_flow_entries=$rsfe</code>

<code>for</code><code>fileRps </code><code>in</code><code>$(</code><code>ls</code><code>/sys/class/net/eth</code><code>*</code><code>/queues/rx-</code><code>*</code><code>/rps_cpus</code><code>)</code>

<code>do</code>

<code>echo</code><code>fff &gt; $fileRps</code>

<code>done</code>

<code>for</code><code>fileRfc </code><code>in</code><code>$(</code><code>ls</code><code>/sys/class/net/eth</code><code>*</code><code>/queues/rx-</code><code>*</code><code>/rps_flow_cnt</code><code>)</code>

<code>echo</code><code>$rfc &gt; $fileRfc</code>

<code>tail</code><code>/sys/class/net/eth</code><code>*</code><code>/queues/rx-</code><code>*/{rps_cpus,rps_flow_cnt}</code>

獻上一個完整的腳本:

<code>vi</code><code>/opt/sbin/change_irq</code><code>.sh</code>

<code>#!/bin/bash</code>

<code>cat</code><code>/proc/irq/</code><code>{84,85,86,87,88,89,90,91,92,93}</code><code>/smp_affinity</code>

<code>chmod</code><code>+x </code><code>/opt/sbin/change_irq</code><code>.sh</code>

<code>echo</code><code>"/opt/sbin/change_irq.sh"</code><code>&gt;&gt; </code><code>/etc/rc</code><code>.</code><code>local</code>

<code>PS:記得修改網卡中斷号,别直接拿來用哦</code>

<a href="http://navyaijm.blog.51cto.com/4647068/1334671">http://navyaijm.blog.51cto.com/4647068/1334671</a>

<a href="http://hi.baidu.com/higkoo">http://hi.baidu.com/higkoo</a>

本文轉自 liang3391 51CTO部落格,原文連結:http://blog.51cto.com/liang3391/1335366

繼續閱讀