2015年1月23日 星期五

Ethernet Off_load


降低網路的 cpu loading

除了開啟 offload engine
還可利用調整 coalescing

1. interrupt coalescing 
主要是用來做 latency 跟 cpu overhead 之間的 trade-off。
當 adapter 收到 frame 之後,不會立即的對系统產生中斷,而是等一段時間,收集到更多的 frame 後再一次性的處理,
這會降低 cpu 的負載,但是會產生 latency。

察看 ethtool -c eth0

改變
ethtool -C eth1 rx-usecs 500
ethtool -C eth1 tx-usecs 500

rx-usecs 會同時控制 tx 以及 rx 方向的 coalescing。
值越低的,interrupt coalescence 越不容易發生,latency 越小,相對的,cpu 負載也會越大。
如果增加了 rx-usecs,對於 bulk traffic 會比較好,但是會對 tcp 的性能造成大的損失,
可以通過調大 TSO window divisor(default 為 3) 來彌補:
net.ipv4.tcp_tso_win_divisor = 30

2. offload 
也就是原先由 CPU 完成事被 NIC offload 了。一般用來做 offload 的包括 segmentation 和 checksum。


察看 ethtool -k eth2

沒有留言:

張貼留言