在您Mac的系統上開啟終端機,請先確認/etc/rc這個檔案裡有個關於sysctl.conf的關鍵script,
這個檔案有可能不是單純sysctl.conf這個檔名,我的系統就叫sysctl-macosxserver.conf,
所以如果您在以下是使用/etc/sysctl.conf來編輯參數的話,要先確定這個檔案喔。
之前我曾經提過Rwin的話題,因為之前我的iBook曾經無聊被我玩掛了,所以這次重新做了一次設定,把這次調整的一些注意事項記下來:
在Mobile01曾經有人提到將 net.inet.tcp.delayed_ack=0,預設值為3,
不過我電腦老了,安裝的軟體也多了,為了讓他有正常一些的效能,我將其設為1,
這個值主要意思是:tcp在交握時會傳送一個ack值來取得應答,而這個值代表著應答的延遲時間,
數值越高,應答等待時間也就越長,在網路情況良好的時候,請降低這個值,如果網路情況有點差,這個值大一點反而好,請注意。
所以我設定為:net.inet.tcp.delayed_ack=1
再來就是 kern.ipc.maxsockbuf=262144,這是預設。
這個值代表著系統所能開啟socket的最大數量,這個我保持預設,原因是因為我發現這個值設定太大,反而會因為硬體效能的限制導致系統效能低落。
預設:
net.inet.tcp.recvspace=32768
net.inet.tcp.sendspace=32768
改為:
net.inet.tcp.recvspace=128480
net.inet.tcp.sendspace=32768
這兩個值是個關鍵,recvspace代表著接收的緩衝區大小,sendspace代表傳送的,
講白話一點,一個是下載,一個是上傳,understand?
有一點要注意這兩個值相加不可大於maxsockbuff,也就是上一項,不然會造成無限迴圈導致開關機不正常,這點也是mobile01的JK.Chang所發現的,
而且這兩個值是有固定的優化數值的喔,多設少設都會影響速度,一般的設定數值為:
513920 (MSS x 44 * scale factor of 8)
256960 (MSS x 44 * scale factor of 4)
128480 (MSS x 44 * scale factor of 2)
64240 (MSS x 44)
會最後兩個值是設定UDP跟RAW的,
net.inet.udp.recvspace=42080
net.inet.raw.recvspace=8192
上面講了一堆設定參數,現在要來講該怎麼實做了,
首先在你的finder上開啟工具程式,再開啟終端機,
會看到類似命令提示字元的視窗。
第一種設定方法,請key入下列紅字指令,
cd /etc 這是讓你移到/底下的etc目錄
sudo touch sysctl.conf 這是讓你建立一個sysctl.conf的檔案,因為我有下sudo,
所以你會看到按下enter後會有個password:的訊息,請輸入你電腦的密碼,他不會有星號,
所以不用害怕,打完按enter就對了。
sudo vi sysctl.conf 這是讓你用vi編輯sysctl.conf這個檔案,
進去後請先按i,進入編輯模式,結束編輯模式按esc就可以了,
在結束編輯模式的情況下:打上
:q! 不存檔強制離開
:q 不存檔離開
:wq 存檔離開
:w 存檔
在編輯模式下,輸入的內容為
net.inet.tcp.delayed_ack=1
net.inet.tcp.sendspace=32768
net.inet.tcp.recvspace=128480
net.inet.udp.recvspace=42080
net.inet.raw.recvspace=8192
這樣以後你要變更數值,只要改這個檔案就行囉,如果要恢復預設,刪掉這個檔案,重開機後參數生效。
或是你可以採用第二種設定方法:在終端機下輸入這五行,每一行都要按enter喔,參數馬上生效。
sudo sysctl -w net.inet.tcp.delayed_ack=1
sudo sysctl -w net.inet.tcp.sendspace=32768
sudo sysctl -w net.inet.tcp.recvspace=128480
sudo sysctl -w net.inet.udp.recvspace=42080
sudo sysctl -w net.inet.raw.recvspace=8192
設定完之後我到speedguide測試的參數為:
« SpeedGuide.net TCP Analyzer Results » Tested on: 08.08.2008 13:35
IP address: 203.204.xxx.xx
TCP options string: 020405b4010303010101080a2e32942d0000000004020000
MSS: 1460
MTU: 1500
TCP Window: 128872 (NOT multiple of MSS)
RWIN Scaling: 1
Unscaled RWIN : 64436
Reccomended RWINs: 64240, 128480, 256960, 513920
BDP limit (200ms): 5155kbps (644KBytes/s) BDP limit (500ms): 2062kbps (258KBytes/s)
MTU Discovery: ON TTL: 45 Timestamps: ON SACKs: ON
IP ToS: 00000000 (0)
以上環境為Mac OS X Tiger 10.4.11
在此也說明了我之前的一些觀念錯誤,RWIN值可不是大就好,針對電腦效能與網路環境來做調整,才是最好的。