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

物理服務(wù)器網(wǎng)絡(luò)性能優(yōu)化

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
在計(jì)算機(jī)的世界中,當(dāng)網(wǎng)卡接收到數(shù)據(jù)包時(shí),會(huì)產(chǎn)生CPU中斷,通知CPU有新的數(shù)據(jù)包,然后CPU調(diào)用中斷處理程序響應(yīng),把數(shù)據(jù)包從網(wǎng)卡拷貝到內(nèi)存并進(jìn)行處理。本文將從中斷分配優(yōu)化和多網(wǎng)卡隊(duì)列設(shè)置角度分析服務(wù)器網(wǎng)卡性能提升。

#01、基礎(chǔ)知識(shí)

中斷本質(zhì)是一種電信號(hào),由硬件產(chǎn)生,并直接送到中斷控制器,然后再由中斷控制器向 CPU發(fā)送信號(hào)。常見的中斷控制器有兩種:可編程中斷控制器(8259A)和高級(jí)可編程中斷控制器(APIC),8259A只適合單CPU的情況,高級(jí)可編程中斷控制器(APIC)更能充分發(fā)揮多CPU多核的SMP體系(Symmetric Multi-Processor)優(yōu)勢(shì),把中斷傳遞給每個(gè)CPU以便更好實(shí)現(xiàn)并行和性能提高。同時(shí),Linux kernel 2.4以后的版本支持通過SMP IRQ Affinity實(shí)現(xiàn)把不同硬件中斷請(qǐng)求(IRQs)分配到特定的CPU上。

SMP IRQ affinity允許系統(tǒng)限制或者重新分配服務(wù)器的工作負(fù)載, 從而讓服務(wù)器更有效的工作。以網(wǎng)卡中斷為例,在沒有設(shè)置SMP IRQ affinity時(shí), 所有網(wǎng)卡中斷都關(guān)聯(lián)到CPU0, 這導(dǎo)致了CPU0負(fù)載過高,而無法有效快速地處理網(wǎng)絡(luò)數(shù)據(jù)包,容易產(chǎn)生性能瓶頸。通過SMP IRQ affinity,把網(wǎng)卡多個(gè)中斷分配到多個(gè)CPU上,可以分散CPU壓力,提高數(shù)據(jù)處理速度。

圖1 SMP對(duì)稱多處理器結(jié)構(gòu)圖1 SMP對(duì)稱多處理器結(jié)構(gòu)

同時(shí),Linux的irqbalance用于優(yōu)化中斷分配,自動(dòng)收集系統(tǒng)數(shù)據(jù)以分析使用模式,并依據(jù)系統(tǒng)負(fù)載狀況將工作狀態(tài)置于Performance Mode或Power-Save Mode。處于Performance Mode時(shí)irqbalance會(huì)將中斷盡可能均勻地分發(fā)給各個(gè)CPU以充分利用CPU多核,提升性能;處于Power-Save Mode時(shí),irqbalance會(huì)將中斷集中分配給第一個(gè)CPU,以保證其它空閑CPU的睡眠時(shí)間,降低能耗。

正常情況下,一張網(wǎng)卡只有一個(gè)隊(duì)列用來接收網(wǎng)絡(luò)數(shù)據(jù)包時(shí),同一時(shí)間數(shù)據(jù)包的處理只能由某個(gè)單核處理,不僅無法發(fā)揮多CPU多核優(yōu)勢(shì),而且大流量帶寬下必然造成數(shù)據(jù)包阻塞。因此,隨著技術(shù)的發(fā)展,引入了網(wǎng)卡多隊(duì)列機(jī)制,一張網(wǎng)卡支持多個(gè)隊(duì)列來接發(fā)收數(shù)據(jù)包,這樣同一時(shí)間多個(gè)隊(duì)列的數(shù)據(jù)包可以分散到不同的CPU進(jìn)行處理。RSS(Receive Side Scaling)是網(wǎng)卡的硬件特性,實(shí)現(xiàn)多隊(duì)列,每個(gè)隊(duì)列對(duì)應(yīng)一個(gè)中斷號(hào),通過中斷綁定實(shí)現(xiàn)網(wǎng)卡中斷在多CPU多核上的分配。

但是在網(wǎng)絡(luò)壓力較大時(shí),多隊(duì)列網(wǎng)卡I/O產(chǎn)生的中斷訪問非常多,此時(shí)隊(duì)列數(shù)量會(huì)對(duì)網(wǎng)卡數(shù)據(jù)包的處理效率產(chǎn)生較大影響。根據(jù)實(shí)踐經(jīng)驗(yàn),當(dāng)單個(gè)PCIe槽位上網(wǎng)卡的隊(duì)列總數(shù)等于該P(yáng)CIe槽位所連接的CPU物理核數(shù)時(shí),網(wǎng)卡I/O中斷的處理效率將會(huì)最高。例如,單顆CPU的物理核心數(shù)為32,每張網(wǎng)卡的端口為2,所以網(wǎng)卡的多隊(duì)列數(shù)應(yīng)設(shè)置為16=32/2。

由于操作系統(tǒng)默認(rèn)通過irqbalance服務(wù)來分派網(wǎng)卡隊(duì)列中的網(wǎng)絡(luò)數(shù)據(jù)包交由哪個(gè)CPU core處理,當(dāng)irqbalance服務(wù)分配的處理網(wǎng)卡中斷的CPU core不是網(wǎng)卡PCIe槽位所連接的CPU die或CPU時(shí),會(huì)觸發(fā)跨CPU die或CPU的core訪問,中斷處理效率會(huì)比較低。因此,在網(wǎng)卡隊(duì)列數(shù)設(shè)置完成后,我們還需要關(guān)閉irqbalance服務(wù),將網(wǎng)卡隊(duì)列中斷號(hào)綁定到處理網(wǎng)卡中斷的CPU core上,從而減少跨CPU die或CPU訪問所帶來的額外開銷,進(jìn)一步提升網(wǎng)絡(luò)處理性能。

#02、動(dòng)手實(shí)踐

1、判斷當(dāng)前系統(tǒng)環(huán)境是否支持多隊(duì)列網(wǎng)卡。

# lspci -vvv

如果在Ethernet項(xiàng)中含有MSI-X: Enable+ Count=9 Masked-語句,則說明當(dāng)前系統(tǒng)環(huán)境是支持多隊(duì)列網(wǎng)卡的,否則不支持。

2、查看網(wǎng)卡是否支持多隊(duì)列,以及最多支持多少、當(dāng)前開啟多少。

# ethtool -l eth0  

## 查看 eth0 多隊(duì)列情況

3、設(shè)置網(wǎng)卡當(dāng)前使用多隊(duì)列。

# ethtool -L eth0 combined <N>   

##  針對(duì) eth0 網(wǎng)卡設(shè)置多隊(duì)列,N為要設(shè)置的隊(duì)列數(shù)

4、確保多隊(duì)列設(shè)置確實(shí)已生效,可以查看文件。

# ls /sys/class/net/eth0/queues/    

## 確認(rèn)rx數(shù)量等于設(shè)定值

rx-0 rx-2 rx-4 rx-6 tx-0 tx-2 tx-4 tx-6
rx-1 rx-3 rx-5 rx-7 tx-1 tx-3 tx-5 tx-7

5、查看系統(tǒng)給網(wǎng)卡端口分配的中斷號(hào)。

# cat /proc/interrupts | grep –i eth0

6、主動(dòng)關(guān)閉irqbalance進(jìn)程。

# service irqbalance stop

7、更新文件,設(shè)置中斷綁定。

通過修改圖片圖片可以設(shè)置中斷綁定,其中{IRQ_ID}是相應(yīng)的中斷號(hào)。smp_affinity內(nèi)容是16進(jìn)制,smp_affinity_list內(nèi)容是10進(jìn)制,兩個(gè)文件相通,修改一個(gè)之后另一個(gè)相應(yīng)改變。

#03、經(jīng)驗(yàn)總結(jié)

1、可以通過手動(dòng)改變smp_affinity文件中的值來將IRQ綁定到指定的CPU核心上,或者啟用irqbalance服務(wù)來自動(dòng)綁定IRQ到CPU核心上。針對(duì)多CPU多核的SMP體系,一般默認(rèn)啟用irqbalance簡(jiǎn)化配置并保障性能。

2、對(duì)于文件服務(wù)器、高流量Web服務(wù)器這樣的應(yīng)用來說,把不同的網(wǎng)卡IRQ均衡綁定到不同的CPU上將會(huì)減輕某個(gè)CPU的負(fù)擔(dān),提高多個(gè)CPU整體處理中斷的能力。

3、對(duì)于數(shù)據(jù)庫(kù)服務(wù)器這樣的應(yīng)用來說,把磁盤控制器綁到一個(gè)CPU、把網(wǎng)卡綁定到另一個(gè)CPU將會(huì)提高數(shù)據(jù)庫(kù)的響應(yīng)時(shí)間實(shí)現(xiàn)優(yōu)化性能。

綜上所述,性能優(yōu)化是一個(gè)過程而不是結(jié)果,需要大量的測(cè)試、觀察、驗(yàn)證和改進(jìn)。因此,應(yīng)用系統(tǒng)需要合理地根據(jù)生產(chǎn)環(huán)境配置和應(yīng)用特點(diǎn)來平衡IRQ中斷,從而不斷提高系統(tǒng)的整體吞吐能力和性能。

責(zé)任編輯:武曉燕 來源: 匠心獨(dú)運(yùn)維妙維效
相關(guān)推薦

2022-02-16 14:10:51

服務(wù)器性能優(yōu)化Linux

2021-11-29 11:13:45

服務(wù)器網(wǎng)絡(luò)性能

2022-05-05 09:27:31

Linux服務(wù)器優(yōu)化

2022-09-26 09:19:38

服務(wù)器優(yōu)化

2011-03-11 15:52:59

LAMP優(yōu)化

2011-08-01 10:49:12

服務(wù)器

2013-07-23 09:51:32

Tomcat性能優(yōu)化服務(wù)器性能優(yōu)化

2010-05-19 10:31:07

IIS服務(wù)器

2011-03-11 15:53:02

LAMP優(yōu)化

2009-01-08 17:43:17

服務(wù)器性能磁盤

2018-06-13 10:27:04

服務(wù)器性能優(yōu)化

2019-08-12 14:46:56

Web服務(wù)器性能

2011-03-11 15:52:57

LAMP優(yōu)化

2010-05-19 10:40:59

IIS服務(wù)器

2024-05-08 16:47:24

PostgreSQL數(shù)據(jù)庫(kù)

2022-03-14 15:10:20

云服務(wù)器物理服務(wù)器性能

2009-05-19 13:14:17

虛擬服務(wù)器 服務(wù)器 I

2019-07-30 10:51:22

數(shù)據(jù)庫(kù)MySQL固態(tài)硬盤

2011-03-11 15:53:00

LAMP優(yōu)化

2010-04-13 11:26:54

IIS網(wǎng)站服務(wù)器性能
點(diǎn)贊
收藏

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