Centos
如何通過重啟保留 ethtool 設置
我想在 CentOS5 伺服器上關閉 tcp 分段解除安裝。使用 ethtool 命令是
ethtool -K eth0 tso off
但是,此設置僅在此會話中持續存在。我怎樣才能讓它通過重新啟動持續存在?
從這個網頁:
您可以在目前執行級別完成後執行命令的位置(或您的發行版的等效命令)中輸入 ethtool 命令
/etc/rc.local
,但這並不理想。網路服務可能已在執行級別啟動,而 ethtool 命令往往會中斷網路流量。最好在啟動界面時應用命令。CentOS 中的網路服務有能力做到這一點。該腳本
/etc/sysconfig/network-scripts/ifup-post
檢查是否存在/sbin/ifup-local
,如果存在,則使用介面名稱作為參數執行它(例如/sbin/ifup-local eth0
:)我們可以使用 touch 創建此文件,
/sbin/ifup-local
使其可執行並chmod +x /sbin/ifup-local
設置其 SELinux 上下文,chcon --reference /sbin/ifup /sbin/ifup-local
然後在編輯器中打開它。將相同設置應用於所有介面的簡單腳本類似於
#!/bin/bash if [ -n "$1" ]; then /sbin/ethtool -G $1 rx 4096 tx 4096 /sbin/ethtool -K $1 tso on gso on fi
請記住,這將嘗試將設置應用於所有介面,甚至是環回。
如果我們有不同的介面我們想要應用不同的設置,或者想要跳過環回,我們可以做一個 case 語句
#!/bin/bash case "$1" in eth0) /sbin/ethtool -G $1 rx 16384 tx 16384 /sbin/ethtool -K $1 gso on gro on ;; eth1) /sbin/ethtool -G $1 rx 64 tx 64 /sbin/ethtool -K $1 tso on gso on /sbin/ip link set $1 txqueuelen 0 ;; esac exit 0
現在 ethtool 設置會在介面啟動時應用到介面,網路通信的所有潛在中斷都會在介面啟動時完成,並且您的伺服器可以繼續以完整的網路功能啟動。