如何提高伺服器網絡卡的效能

2021-07-07 04:56:13 字數 2033 閱讀 1808



基本思路是如何讓cpu的超執行緒或者多核更加均衡和高效的利用起來,我們知道總是有一塊cpu去專門響應網絡卡的中斷請求,如果網路請求包非常大,很可能單個cpu就處理不過來,因此,需要啟用多核或者超執行緒,把網絡卡中斷請求分發到多個cpu去執行,從而提高整體伺服器的接入效能,也是提高cpu資源利用率的好辦法。下面分別進行討論:

一,  雙cpu超執行緒的伺服器

我們知道,在linux下,對於雙cpu超執行緒的伺服器而已,如果核心啟用了cpu的超執行緒功能(ht),  則通過cat /proc/cpuinfo 可以識別到4塊cpu: cpu0-3,其中cpu0和cpu1是同一真實cpu的本身和它的超執行緒出的cpu,cpu2和cpu3也是同理一對。

我們可以配置網絡卡的irq路由,來選擇指定的一塊cpu來處理對應網絡卡中斷請求,從而使得多塊網絡卡的中斷處理分別分攤到2塊真實的cpu上,達到充分發揮雙cpu的效能。

1,  首先我們可以通過訪問/proc/cpuinfo的資訊檢視到cpu的具體資訊。

cat /proc/cpuinfo

cat /proc/cpuinfo | grep processor

cat /proc/cpuinfo | grep processor| wc –l

最後的命令可以得到當前cpu的個數。

2,  分別獲取eth0和eth1網絡卡的中斷irq號,並且賦值給shell變數

eth0_irq_num  =`cat  /proc/interrupts | grep  eth0 | awk -f ':'  ''`

eth1_irq_num  =`cat  /proc/interrupts | grep  eth1 | awk -f ':'  ''`

3,  指定cpu來處理對應網絡卡的中斷請求

首先可以檢視一下現有的cpu情況(需要root使用者):

cat  /proc/irq/$eth0_irq_num/smp_affinity

cat  /proc/irq/$eth1_irq_num/smp_affinity

echo 8 > /proc/irq/$eth0_irq_num/smp_affinity

(指定cpu3來處理網絡卡eth0的中斷請求)

echo 2 >/proc/irq/$eth1_irq_num/smp_affinity

(指定cpu1來處理網絡卡eth1的中斷請求)

4,  檢視切換後的效果

watch  cat  /proc/interrupts

可以看到每隔2s的時間間隔的中斷處理效果

二,  雙cpu雙核的伺服器

在linux下,對雙cpu雙核的伺服器來說,若核心沒有開啟超執行緒ht選項,則訪問cat /proc/cpuinfo可以識別到4塊cpu,分別是cpu0-3,其中cpu0和cpu1是同一真實cpu的兩個核,同理,cpu2和cpu3是另外乙個真實cpu的兩個核。並且對同屬於真實乙個cpu的核共享4m的二級cache,因此,如果我們將一塊網絡卡的中斷請求對應到同一真實cpu的2個核上,可以在保證二級cache命中率的前提下,充分發揮雙核心cpu的效能優勢,從而提高整體伺服器的效能。

具體的設定方法,如上說明。

三,  附加說明

注意:對smp_affinity,乙個位元組(8個bit)本質上對應二進位制位:******xx,分別表示cpu7,cpu6,cpu5,cpu4,cpu3,cpu2,cpu1,cpu0,對應的位為1, 表示對應的cpu選中狀態。

1,  echo 8 > /proc/irq/$eth0_nu/smp_affinity,由於8 = 1000,所以是指定cpu3來響應。

2,  echo 2 > /proc/irq/$eth1_nu/smp_affinity,由於2 = 0010,所以是指定cpu1來響應。

3,  echo c > /proc/irq/$eth0_nu/smp_affinity,由於c = 1100,所以是指定cpu2和cpu3來響應。

4,  echo 3 > /proc/irq/$eth1_nu/smp_affinity,由於3 = 0011,所以是指定cpu0和cpu1來響應。

伺服器效能提高建議

這些天在看游雙的高效能伺服器程式設計這本書,總結下如何提高伺服器效能 1 伺服器的本身的硬體資源,比如cpu的個數 速度 記憶體大小等,這是硬體資源方面 軟體資源方面 1 使用執行緒池和程序池,傳統的處理流程是監聽執行緒監聽有沒有新的使用者連線伺服器,每當有乙個新的 使用者進入,伺服器就開啟乙個新的...

如何測試伺服器效能

如何測試伺服器效能?伺服器的穩定性對我們來說是最重要的,如果在效能方面不能夠保證業務執行的需要,那麼相當於白白浪費錢。今天壹基比小七為大家講解從以下角度來進行伺服器效能的測試。穩定性測試 已知系統高峰期使用人數 各事務操作頻率等。設計綜合測試場景,測試時,將每個場景按照一定人數比例一起執行,模擬使用...

提高伺服器安全效能的方式

對於很多客戶來說,都會以為高防伺服器具備高防的特性,就不需要在做其他的安全防禦措施了,然而事實上,高防伺服器防禦的物件主要是針對於流量型的攻擊,對於資料 系統漏洞上的安全問題還是需要另外採用其他安全措施的。通過下文給大家介紹幾種常用的提高高防伺服器安全效能的方法。1 過濾非必要的服務和埠主要是指在路...