日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
?X86服務(wù)器性能調(diào)優(yōu)三板斧

PART 01 簡介    

本文以VPN服務(wù)器為例子,介紹定位服務(wù)器性能瓶頸的三個步驟以及三種優(yōu)化X86 NUMA架構(gòu)服務(wù)器網(wǎng)絡(luò)處理性能的方法。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),乳源企業(yè)網(wǎng)站建設(shè),乳源品牌網(wǎng)站建設(shè),網(wǎng)站定制,乳源網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,乳源網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

PART 02 NUMA架構(gòu)介紹 

NUMA(Non-Uniform Memory Access,非統(tǒng)一內(nèi)存訪問)架構(gòu),能夠很好地解決SMP技術(shù)對CPU核數(shù)的制約。NUMA架構(gòu)將多個核結(jié)成一個節(jié)點(Node),每一個節(jié)點相當(dāng)于是一個對稱多處理機(SMP),不同的CPU之間采用QPI(Quick-Path Interconnect)實現(xiàn)高帶寬低時延的片間通訊。Intel QPI與AMD HT互連比較類似。

上圖中我畫是Intel X86通用服務(wù)器架構(gòu)中的一種,每顆CPU有一個NUMA Node,每個NUMA Node有固定數(shù)量CPU Core。下面我會以Intel Xeon(R) Gold 5218 CPU @ 2.30GHz作為VPN服務(wù)器的CPU,介紹三種常見的X86網(wǎng)絡(luò)服務(wù)器性能優(yōu)化的方法。VPN服務(wù)器的硬件參數(shù)配置如下:

CPU:

網(wǎng)卡:Intel x710-DA4

系統(tǒng):CentOS Linux release 8.4.2105

PART 03 三個步驟確定優(yōu)化方向

第一步:建立優(yōu)化基準(zhǔn)

在性能優(yōu)化之前,我們需要對設(shè)備當(dāng)前的性能做全面的評估建立基準(zhǔn)。這個基準(zhǔn)就是在當(dāng)前硬件配置下,基于某一個特定版本軟件(比如:VPN ver1.0.1),使用專業(yè)的網(wǎng)絡(luò)壓力測試儀(比如:思博倫Testcenter、信爾泰Bigtao、ixia等)對系統(tǒng)進行網(wǎng)絡(luò)壓力測試。評估系統(tǒng)當(dāng)前設(shè)備CPU利用率、網(wǎng)絡(luò)吞吐、網(wǎng)絡(luò)時延等參數(shù),建立一個優(yōu)化的基準(zhǔn)線。在測試儀參數(shù)配置方面,可根據(jù)具體產(chǎn)品功能特性,盡量配置接近現(xiàn)網(wǎng)運行的流量參數(shù)。

以VPN ver1.0.1為例,我們可以根據(jù)產(chǎn)品自身的一些功能特性記錄相應(yīng)的參數(shù)。下邊是一部分我記錄的一部分基準(zhǔn)參數(shù):

第二步:確定性能瓶頸

使用專業(yè)的網(wǎng)絡(luò)壓力測試儀表對設(shè)備進行全面的壓力測試,同時觀察和記錄設(shè)備和儀表的運行狀態(tài)。比如線性增加儀表吞吐量分別記錄設(shè)備在各個吞吐量級別的CPU利用率、丟包率、CPU Cache Miss情況、參與處理流量設(shè)備CPU核數(shù)量。記錄的越詳細(xì)和評估的越全面(比如使用小包、中長包、大包、隨機長度包進行壓力測試)將更有助于軟件性能瓶頸的分析和確認(rèn)優(yōu)化的方向。

第三步:實施優(yōu)化

壓力測試和詳細(xì)記錄測試過程是為了確定性能瓶頸和優(yōu)化方向。通過詳細(xì)分析對比測試記錄去確定我們的優(yōu)化方向。系統(tǒng)的性能瓶頸通常會在CPU利用率較低、IO阻塞、Cache Miss較多、存在跨NUMA訪問內(nèi)存等方面。在確認(rèn)了幾個優(yōu)化方向后,我們就可以從硬件和軟件程序兩個方向?qū)υO(shè)備性能進行優(yōu)化。比如通過修改代碼提高CPU Cache命中率、調(diào)整網(wǎng)卡PCIE插槽避免跨訪問和在BIOS中(Basic Input Output System)一些CPU、網(wǎng)卡參數(shù)等。

PART 04 三種方法提升處理性能

下面介紹三種提升網(wǎng)絡(luò)設(shè)備性能的方法:

  • CPU核隔離

CPU不僅要運行進程還要處理中斷,如果一個進程運行的CUP處理中斷的次數(shù)過多,勢必會影響進程的運行。為了不影響進程,可以將CPU進行隔離,比如有4核CPU,可以隔離出2核CPU,并和進程進行綁定用于專門運行進程,剩下的兩核處理中斷,這樣運行進程的CPU就不會處理中斷,提高進程的運行效率。

 查看隔核情況的代碼如下,從運行結(jié)果可以看到我的這臺機器目前未開啟核隔離功能。

vim /etc/default/grub #根據(jù)實際情況在GRUB_CMDLINE_LINUX后邊添加下面配置isolcpus=2-11  #設(shè)置核隔離,使轉(zhuǎn)發(fā)核專注用于轉(zhuǎn)發(fā)rcu_nocbs=2-11 kthread_cpus=0-1#將RCU Callback,內(nèi)核線程,中斷移出轉(zhuǎn)發(fā)核 irqaffinity=0-1   #將轉(zhuǎn)發(fā)核設(shè)置成無時鐘滴答核,減少時鐘中斷次數(shù)default_hugepagesz=1G hugepagesz=1G hugepages=64 #設(shè)置大頁內(nèi)存默認(rèn)頁大小為1G, 分配大頁內(nèi)存nmi_watchdog=0 #關(guān)閉看門狗

使用下面命令更新grub配置文件:

grub2-mkconfig -o /boot/grub2/grub.cfg

接下來重啟機器再次查看核隔離情況:

可以看到我們前面添加的一些配置都生效了。

在核隔離設(shè)置完成后,我們可以通過下面Linux系統(tǒng)提供的親核性接口設(shè)置我們的程序,提高程序的處理性能。那什么是CPU“親核性”呢?CPU的親核性就是讓某個進程(比如我們的程序)長時間運行在某個或者某些我們設(shè)定的核上,不參與Linux 內(nèi)核進程調(diào)度器的調(diào)度。我們可以利用Linux內(nèi)核提供給用戶的API,強制將進程或者線程綁定到某一個指定的CPU核運行。

進程親核性設(shè)置接口:

線程親核性設(shè)置接口:

  • 隔離中斷

/proc/interrupts 文件列出了我這臺VM虛擬機四個CPU分別對應(yīng)的中斷處理情況以及當(dāng)前CPU支持的中斷類型。我們可以看到這臺機器的CPU0和CPU3都處理了中斷事件。通過設(shè)置核隔離和應(yīng)用程序的親核性,我們希望應(yīng)用程序能專注于處理數(shù)據(jù)包,然而在沒有設(shè)置中斷隔離情況下,應(yīng)用程序綁定的核依然還要處理中斷事件。這種情況下應(yīng)用程序處理性能會受到一定影響。

設(shè)置中斷隔離的方法:

#查看cpu支持的中斷數(shù)

irqs=`ls /proc/irq | grep -E '[0-9]'`; for irq in $irqs; do echo $irq; done

#設(shè)置只有核0處理中斷
irqs=`ls /proc/irq | grep -E '[0-9]'`; for irq in $irqs; do echo 1 > /proc/irq/$irq/smp_affinity; done

#查看
irqs=`ls /proc/irq | grep -E '[0-9]'`; for irq in $irqs; do echo $irq; cat /proc/irq/$irq/smp_affinity; done
  • CPU開啟性能模式
#安裝cpupowerutils
yum -y install cpupowerutils

安裝cpupowerutils   cpupower frequency-info查看CPU支持的cpufreq governors模式,可以看到當(dāng)前這臺機器支持performance(性能模式)和powersave(節(jié)能模式)。

我們可以通過下面的命令查詢當(dāng)前CPU正在使用的模式,可以看到當(dāng)前設(shè)備的CPU0已經(jīng)被設(shè)置為性能模式。

如果通過查詢后,我們的設(shè)備并沒有設(shè)置性能模式,可以通過以下命令行設(shè)置CPU為性能模式提升網(wǎng)絡(luò)處理性能。

#開啟高性能
cpupower frequency-set -g performance

以下截圖來自于intel Xeon(R) Gold 5218 CPU @ 2.30GHz x 2。

查看開啟性能模式的CPU頻率:

模式說明:

  • Performance:性能模式
  • Powersave:省電模式
  • Userspace:用戶指定頻率
  • Ondemand:按需快速動態(tài)調(diào)整CPU頻率,一有CPU計算量的任務(wù),就會立即達(dá)到最大頻率運行,空閑時間增加就降低頻率
  • Conservative:按需快速動態(tài)調(diào)整CPU頻率,比 ondemand 的調(diào)整更保守
  • Schedutil:基于調(diào)度程序調(diào)整 CPU 頻率

PART 05 總結(jié)    

以上我們介紹了三種優(yōu)化X86服務(wù)器性能的方法。性能調(diào)優(yōu)是一個長期的過程,在性能優(yōu)化的初期階段,很容易找到性能瓶頸并實施有效的優(yōu)化,優(yōu)化成果也往往十分明顯,但是越到后期優(yōu)化的難度就會越大,優(yōu)化方案也會更難尋找,優(yōu)化效果也會越來越弱。因此日常使用時,要有一個合理的平衡點。

作者介紹

范曉波,社區(qū)編輯,資深網(wǎng)絡(luò)安全工程師。精通SDN、SD-WAN、VPN、NFV等網(wǎng)絡(luò)相關(guān)技術(shù)。精通二三層網(wǎng)絡(luò)轉(zhuǎn)發(fā)。熟悉DPDK、VPP、OVS高性能網(wǎng)絡(luò)開源框架。喜歡打羽毛球、烹飪美食。


當(dāng)前名稱:?X86服務(wù)器性能調(diào)優(yōu)三板斧
文章轉(zhuǎn)載:http://m.5511xx.com/article/cdhohoc.html