1. 程式人生 > >系統技術非業餘研究 » Systemtap輔助設定tcp_init_cwnd,免對作業系統打Patch

系統技術非業餘研究 » Systemtap輔助設定tcp_init_cwnd,免對作業系統打Patch

前段時間google的工程師提出對tcp的擁塞視窗的初始值進行增大可以顯著的提高http的效能,這個主要是針對tcp的slow start的優化.
具體參考這裡, 這裡. 謝謝叔度同學從美國帶回第一手資訊!

由於低版本的linux核心的問題,這個引數的正確設定需要對os打patch,這個過程對線上機器來講非常麻煩。 底下我用systemtap給出了個解決方案,免除這個麻煩. 我們在RHEL 5U4上作這個試驗:

首先需要在開發機器上:

#安裝符號資訊
$uname -r
2.6.18-164.el5
$ sudo rpm -i kernel-debuginfo-common-2.6.18-164.el5.x86_64.rpm
$ sudo rpm -i kernel-debuginfo-2.6.18-164.el5.x86_64.rpm 

$ sudo yum install systemtap

$ cat > tcp_init_cwnd.stp
probe kernel.function("tcp_init_cwnd").return
{
$return = $1
}
CTRL+D

#設成7個mss
$ sudo stap -p4 -g -m initcwnd tcp_init_cwnd.stp 7 
initcwnd.ko

好了,現在我們需要的模組有了, 可以直接拷貝到目標機器去的.
#目標機器需要安裝systemtap,用於執行我們的模組.

$uname -r
2.6.18-164.el5
$ sudo yum install systemtap

#在系統的啟動腳本里面執行以下命令:
$ sudo staprun -o initcwnd.out -D initcwnd.ko
$ 19122 
#19122是initcwnd模組載入器在後臺執行的程序號,需要的時候可以把模組停掉。

#當然如果你的模組沒有輸出的話也可以直接, 這樣更簡單
$ sudo insmod initcwnd.ko

大家碰到類似的問題,可以參考下這個思路.

玩得開心!

Post Footer automatically generated by wp-posturl plugin for wordpress.