自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡單講述Linux內(nèi)核系統(tǒng)應用

運維 系統(tǒng)運維
提高Linux內(nèi)核應對短連接的負載 能力在存在大量短連接的情況下,Linux內(nèi)核的TCP棧一般都會生成大量的 TIME_WAIT 狀態(tài)的socket。你可以用下

在向大家詳細介紹Linux內(nèi)核之前,首先讓大家了解下系統(tǒng)的pdflush進程,然后全面介紹Linux內(nèi)核,希望對大家有用。與磁盤IO子系統(tǒng)有關Linux內(nèi)核的編輯◆ /proc/sys/vm/dirty_ratio這個參數(shù)控制文件系統(tǒng)的文件系統(tǒng)寫緩沖區(qū)的大小,單位是百分比,表示系統(tǒng)內(nèi)存的百分比,表示當寫緩沖使用到系統(tǒng)內(nèi)存多少的時候,開始向磁盤寫出數(shù)據(jù) 。

增大之會使用更多系統(tǒng)內(nèi)存用于磁盤寫緩沖,也可以極大提高系統(tǒng)的寫性能 。但是,當你需要持續(xù)、恒定的寫入場合時,應該降低其數(shù)值,一般啟動上缺省是10。下面是增大的方法:
echo '40' > /proc/sys/vm/dirty_ratio

◆ /proc/sys/vm/dirty_background_ratio這個參數(shù)控制文件系統(tǒng)的pdflush進程,在何時刷新磁盤。單位是百分比,表示系統(tǒng)內(nèi)存的百分比,意思是當寫緩沖使用到系統(tǒng)內(nèi)存多少的時候,pdflush開始向磁盤寫出數(shù)據(jù)。增大之會使用更多系統(tǒng)內(nèi)存用于磁盤寫緩沖,也可以極大提高系統(tǒng)的寫性能。但是,當你需要持續(xù)、恒定的寫入場合時,應該降低其數(shù)值,一般啟動上缺省是 5。下面是增大的方法:
echo '20' > /proc/sys/vm/dirty_background_ratio
◆ /proc/sys/vm/dirty_writeback_centisecs這個參數(shù)控制內(nèi)核 的臟數(shù)據(jù)刷新進程pdflush的運行 間隔。單位是 1/100 秒。缺省數(shù)值是500,也就是 5 秒。如果你的系統(tǒng)是持續(xù)地寫入動作,那么實際上還是降低這個數(shù)值比較好,這樣可以把尖峰的寫操作削平成多次寫操作。設置 方法如下:

echo "200" > /proc/sys/vm/dirty_writeback_centisecs
如果你的系統(tǒng)是短期地尖峰式的寫操作,并且寫入數(shù)據(jù)不大(幾十M/次)且內(nèi)存有比較多富裕,那么應該增大此數(shù)值:
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs
◆ /proc/sys/vm/dirty_expire_centisecs這個參數(shù)聲明Linux內(nèi)核寫緩沖區(qū)里面的數(shù)據(jù)多“舊”了之后,pdflush 進程就開始考慮寫到磁盤中去。單位是 1/100秒。缺省是30000,也就是 30秒的數(shù)據(jù)就算舊了,將會刷新磁盤。對于特別重載的寫操作來說,這個值適當縮小也是好的,但也不能縮小太多,因為縮小太多也會導致IO提高太快。建議設置為1500,也就是15秒算舊。
echo "1500" > /proc/sys/vm/dirty_expire_centisecs

當然,如果你的系統(tǒng)內(nèi)存比較大,并且寫入模式是間歇式的,并且每次寫入的數(shù)據(jù)不大(比如幾十M),那么這個值還是大些的好。
◆ 與網(wǎng)絡 IO子系統(tǒng)有關的編輯/proc/sys/net/ipv4/tcp_retrans_collapse這個參數(shù)控制TCP雙方Window協(xié)商出現(xiàn)錯誤的時候的一些重傳的行為。但是在老的2.6的核(<2.6.18)里頭,這個重傳會導致kernel oops,kernel panic,所以,如果出現(xiàn)有tcp_retrans_*樣子的kernel panic,可以把這個參數(shù)給設置成0:
echo '0' > /proc/sys/net/ipv4/tcp_retrans_collapse

◆ 提高Linux內(nèi)核應對短連接的負載 能力在存在大量短連接的情況下,Linux內(nèi)核的TCP棧一般都會生成大量的 TIME_WAIT 狀態(tài)的socket。你可以用下
面的命令 看到:
netstat -ant| grep -i time_wait
有時候,這個數(shù)目是驚人的:
netstat -ant|grep -i time_wait |wc -l
可能會超過三四萬。這個時候,我們需要修改 linux kernel 的 tcp time wait的時間,縮短之,有個 sysctl參數(shù)貌似可以使用,它是 /proc/sys/net/ipv4/tcp_fin_timeout,缺省值是60,也就是60秒,很多網(wǎng)上的資料都說將這個數(shù)值設置低一些就可以減少netstat里面的TIME_WAIT狀態(tài),但是這個說法是錯誤的。經(jīng)過認真閱讀Linux的內(nèi)核源代碼,我們發(fā)現(xiàn)這個數(shù)值其實是輸出用的,修改之后并沒有真正的讀回內(nèi)核中進行使用,而內(nèi)核中真正管用的是一個宏定義,在 $KERNEL/include/net/tcp.h里面,有下面的行:
#define TCP_TIMEWAIT_LEN (60*HZ) /* how long to wait to destroy TIME-WAIT

* state, about 60 seconds     */
而這個宏是真正控制 TCP  TIME_WAIT 狀態(tài)的超時時間的。如果我們希望減少 TIME_WAIT 狀態(tài)的數(shù)目(從而節(jié)省一點點內(nèi)核操作時間),那么可以把這個數(shù)值設置低一些,根據(jù)我們的測試,設置為 10 秒比較合適,也就是把上面的修改為:
#define TCP_TIMEWAIT_LEN (10*HZ) /* how long to wait to destroy TIME-WAIT
* state, about 60 seconds     */
然后重新編譯 內(nèi)核,重啟系統(tǒng)即可發(fā)現(xiàn)短連接造成的TIME_WAIT狀態(tài)大大減少:
netstat -ant | grep -i time_wait |wc -l
一般情況都可以至少減少2/3。也能相應提高系統(tǒng)應對短連接的速度。
/proc/irq/{number}/smp_affinity在多 CPU 的環(huán)境中,還有一個中斷平衡的問題,比如,網(wǎng)卡中斷會教給哪個 CPU 處理,這個參數(shù)控制哪些 CPU 可以綁定 IRQ 中斷。其中的 {number} 是對應設備的中斷編號,可以用下面的命令找出:
cat /proc/interrupt
比如,一般 eth0 的 IRQ 編號是 16,所以控制 eth0 中斷綁定的 /proc 文件名是 /proc/irq/16/smp_affinity。上面這個命令還可以看到某些中斷對應的CPU處理的次數(shù),缺省的時候肯定是不平衡的。
設置其值的方法很簡單,smp_affinity 自身是一個位掩碼(bitmask),特定的位對應特定的 CPU,這樣,01 就意味著只有***個 CPU 可以處理對應的中斷,而 0f(0x1111)意味著四個 CPU 都會參與中斷處理。
Linux內(nèi)核幾乎所有外設都有這個參數(shù)設置,可以關注一下。
這個數(shù)值的推薦設置,其實在很大程度上,讓專門的CPU處理專門的中斷是效率***的,比如,給磁盤IO一個CPU,給網(wǎng)卡一個CPU,這樣是比較合理的。

【編輯推薦】

  1. 闡述Linux內(nèi)核里面的APIC編程
  2. 分析linux內(nèi)核的idle的知識
  3. 透明了解Linux內(nèi)核結(jié)構(gòu)
  4. 詳解linux內(nèi)核配置
  5. linux內(nèi)核對S3C2410睡眠模式的支持
責任編輯:佚名 來源: CSDN
相關推薦

2009-12-18 17:53:45

Linux Apach

2009-12-28 12:48:35

Linux內(nèi)核

2009-12-18 18:53:18

2010-03-08 15:10:57

2010-03-16 15:47:06

Ubuntu Linu

2012-04-11 09:26:13

內(nèi)核Linux 開發(fā)

2010-03-18 17:29:21

2009-09-25 10:00:47

Hibernate映射

2009-12-24 09:47:17

Linux之父

2009-09-24 10:06:42

Hibernate實例

2009-09-28 10:14:08

Hibernate基礎

2009-04-11 15:22:24

Linux 2.6內(nèi)核應用

2009-12-24 14:19:53

LINUX MAC驅(qū)動

2012-07-30 14:13:11

Linux 2.6內(nèi)核嵌入式

2009-10-10 09:57:58

使用RHEL合法

2009-12-17 17:19:45

Linux系統(tǒng)

2009-09-25 13:39:40

Hibernate屬性

2010-04-20 10:12:05

2009-12-22 13:15:59

Linux ueven

2009-10-16 13:26:53

VB.NET Exce
點贊
收藏

51CTO技術(shù)棧公眾號