成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

物理服務器網絡性能優化

網絡 網絡管理
在計算機的世界中,當網卡接收到數據包時,會產生CPU中斷,通知CPU有新的數據包,然后CPU調用中斷處理程序響應,把數據包從網卡拷貝到內存并進行處理。本文將從中斷分配優化和多網卡隊列設置角度分析服務器網卡性能提升。

#01、基礎知識

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

SMP IRQ affinity允許系統限制或者重新分配服務器的工作負載, 從而讓服務器更有效的工作。以網卡中斷為例,在沒有設置SMP IRQ affinity時, 所有網卡中斷都關聯到CPU0, 這導致了CPU0負載過高,而無法有效快速地處理網絡數據包,容易產生性能瓶頸。通過SMP IRQ affinity,把網卡多個中斷分配到多個CPU上,可以分散CPU壓力,提高數據處理速度。

圖1 SMP對稱多處理器結構圖1 SMP對稱多處理器結構

同時,Linux的irqbalance用于優化中斷分配,自動收集系統數據以分析使用模式,并依據系統負載狀況將工作狀態置于Performance Mode或Power-Save Mode。處于Performance Mode時irqbalance會將中斷盡可能均勻地分發給各個CPU以充分利用CPU多核,提升性能;處于Power-Save Mode時,irqbalance會將中斷集中分配給第一個CPU,以保證其它空閑CPU的睡眠時間,降低能耗。

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

但是在網絡壓力較大時,多隊列網卡I/O產生的中斷訪問非常多,此時隊列數量會對網卡數據包的處理效率產生較大影響。根據實踐經驗,當單個PCIe槽位上網卡的隊列總數等于該PCIe槽位所連接的CPU物理核數時,網卡I/O中斷的處理效率將會最高。例如,單顆CPU的物理核心數為32,每張網卡的端口為2,所以網卡的多隊列數應設置為16=32/2。

由于操作系統默認通過irqbalance服務來分派網卡隊列中的網絡數據包交由哪個CPU core處理,當irqbalance服務分配的處理網卡中斷的CPU core不是網卡PCIe槽位所連接的CPU die或CPU時,會觸發跨CPU die或CPU的core訪問,中斷處理效率會比較低。因此,在網卡隊列數設置完成后,我們還需要關閉irqbalance服務,將網卡隊列中斷號綁定到處理網卡中斷的CPU core上,從而減少跨CPU die或CPU訪問所帶來的額外開銷,進一步提升網絡處理性能。

#02、動手實踐

1、判斷當前系統環境是否支持多隊列網卡。

# lspci -vvv

如果在Ethernet項中含有MSI-X: Enable+ Count=9 Masked-語句,則說明當前系統環境是支持多隊列網卡的,否則不支持。

2、查看網卡是否支持多隊列,以及最多支持多少、當前開啟多少。

# ethtool -l eth0  

## 查看 eth0 多隊列情況

3、設置網卡當前使用多隊列。

# ethtool -L eth0 combined <N>   

##  針對 eth0 網卡設置多隊列,N為要設置的隊列數

4、確保多隊列設置確實已生效,可以查看文件。

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

## 確認rx數量等于設定值

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、查看系統給網卡端口分配的中斷號。

# cat /proc/interrupts | grep –i eth0

6、主動關閉irqbalance進程。

# service irqbalance stop

7、更新文件,設置中斷綁定。

通過修改圖片圖片可以設置中斷綁定,其中{IRQ_ID}是相應的中斷號。smp_affinity內容是16進制,smp_affinity_list內容是10進制,兩個文件相通,修改一個之后另一個相應改變。

#03、經驗總結

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

2、對于文件服務器、高流量Web服務器這樣的應用來說,把不同的網卡IRQ均衡綁定到不同的CPU上將會減輕某個CPU的負擔,提高多個CPU整體處理中斷的能力。

3、對于數據庫服務器這樣的應用來說,把磁盤控制器綁到一個CPU、把網卡綁定到另一個CPU將會提高數據庫的響應時間實現優化性能。

綜上所述,性能優化是一個過程而不是結果,需要大量的測試、觀察、驗證和改進。因此,應用系統需要合理地根據生產環境配置和應用特點來平衡IRQ中斷,從而不斷提高系統的整體吞吐能力和性能。

責任編輯:武曉燕 來源: 匠心獨運維妙維效
相關推薦

2022-02-16 14:10:51

服務器性能優化Linux

2021-11-29 11:13:45

服務器網絡性能

2022-05-05 09:27:31

Linux服務器優化

2022-09-26 09:19:38

服務器優化

2011-03-11 15:52:59

LAMP優化

2011-08-01 10:49:12

服務器

2013-07-23 09:51:32

Tomcat性能優化服務器性能優化

2010-05-19 10:31:07

IIS服務器

2009-01-08 17:43:17

服務器性能磁盤

2018-06-13 10:27:04

服務器性能優化

2011-03-11 15:53:02

LAMP優化

2019-08-12 14:46:56

Web服務器性能

2011-03-11 15:52:57

LAMP優化

2010-05-19 10:40:59

IIS服務器

2024-05-08 16:47:24

PostgreSQL數據庫

2022-03-14 15:10:20

云服務器物理服務器性能

2009-05-19 13:14:17

虛擬服務器 服務器 I

2019-07-30 10:51:22

數據庫MySQL固態硬盤

2011-07-29 11:17:28

服務器WAN性能安全

2011-03-11 15:53:00

LAMP優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品91久久久 | 亚洲视频a| 国产精品欧美一区二区三区不卡 | 91在线视频观看免费 | 成人免费视屏 | 一区二区免费 | 国产乱码精品一区二区三区五月婷 | 日韩精品在线播放 | 男人的天堂久久 | 99精品一区二区三区 | 日本三级全黄三级三级三级口周 | 春色av| 九九久久精品 | 午夜电影在线播放 | 免费在线观看av | 狠狠骚 | 亚洲精品在线看 | 乱一性一乱一交一视频a∨ 色爱av | 国产成人精品免费视频大全最热 | 欧美成人免费在线视频 | 日韩三极 | 在线观看精品 | 国产精品亚洲第一区在线暖暖韩国 | 大吊一区二区 | 国产精品91久久久久久 | 国产高清精品一区二区三区 | 亚洲精品1| 一区二区国产精品 | 国产激情网站 | 亚洲一区二区三区免费视频 | 男人天堂网址 | 一区 | 91在线网站 | 欧美 日韩 亚洲91麻豆精品 | 国产精品久久久久久二区 | 亚洲精品福利视频 | 99久久精品免费 | 人人鲁人人莫人人爱精品 | 日韩欧美国产精品一区二区 | 男女网站免费观看 | 亚洲丝袜天堂 |