<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 一種動(dòng)態(tài)實(shí)現核隔離的方法

一種動(dòng)態(tài)實(shí)現核隔離的方法

發(fā)布人:天翼云開(kāi)發(fā)者 時(shí)間:2023-10-30 來(lái)源:工程師 發(fā)布文章
本文分享自天翼云開(kāi)發(fā)者社區《一種動(dòng)態(tài)實(shí)現核隔離的方法,作者:y****n

https://www.ctyun.cn/developer/article/475762070474821

一、技術(shù)背景

相關(guān)概念:

核隔離:指定的cpu核心只參與最低限度的OS內核計算; 

DPDK(Date planedevelopment kit):是一個(gè)用來(lái)進(jìn)行包數據處理加速的軟件庫。

Cpu親和性:進(jìn)程要在某個(gè)給定的CPU上盡量長(cháng)時(shí)間地運行而不被遷移到其他處理器的傾向性。

背景:

網(wǎng)元節點(diǎn)上,對cpu消耗比較多的進(jìn)程可以分為幾個(gè)類(lèi)別:

1、系統運行相關(guān)進(jìn)程(通過(guò)systemd啟動(dòng)和管理的進(jìn)程以及內核線(xiàn)程)

2、網(wǎng)元相關(guān)進(jìn)程(比如dpos、gobgpd進(jìn)程)。

然而在現網(wǎng)中發(fā)現,由于系統運行相關(guān)進(jìn)程與網(wǎng)元相關(guān)進(jìn)程在同內核下運行時(shí),會(huì )概率性的搶占pmd線(xiàn)程的cpu,從而導致dpdk丟包,影響網(wǎng)元性能。一般使用的隔離系統進(jìn)程方法如修改grub文件、tuned調優(yōu)方式都需要重啟才能生效,對于已經(jīng)部署到現網(wǎng)的網(wǎng)元而言,這些方式會(huì )對用戶(hù)業(yè)務(wù)造成極大的影響。

因此,需要尋求一種核隔離方法,使得系統進(jìn)程和網(wǎng)元進(jìn)程互相隔離,互不影響,以解決網(wǎng)元設備在系統進(jìn)程搶占業(yè)務(wù)進(jìn)程cpu內核時(shí)可能出現的網(wǎng)絡(luò )延時(shí)變高,丟包等問(wèn)題,提高網(wǎng)絡(luò )通信的性能和可靠性。并且對于現網(wǎng)上運行的網(wǎng)元節點(diǎn)能夠做到無(wú)感知。

二、方案設計及實(shí)現

本方案主要是隔離systemd啟動(dòng)和管理的進(jìn)程的cpu核,限制其運行在網(wǎng)元進(jìn)程的預留核上。

1、確定cpu預留核分配策略

根據系統規格的不同,確定不同的cpu內核分配策略。如1Numa8Cores的系統,可將系統進(jìn)程分配到0-2核上;或者2Numa96Cores的系統??蓪⑾到y進(jìn)程分配到numa0的前3個(gè)cpu核以及numa1的后3個(gè)cpu核上,其余的內核為網(wǎng)元進(jìn)程所占用。分配策略需按照服務(wù)器規格以及實(shí)際需求進(jìn)行設計。

2、設置systemd進(jìn)程親和性

通過(guò)修改/etc/systemd/system.conf文件中的CPUAffinity中的值,將其改為第一步中的預留核數,如0-2。

通過(guò)systemd 

3、設置systemd子進(jìn)程親和性

對于systemd啟動(dòng)和創(chuàng )建的進(jìn)程主要分為幾類(lèi):

1、正在運行的systemd子進(jìn)程

2、后續由systemd創(chuàng )建或者重啟的子進(jìn)程

對于后續需要由systemd創(chuàng )建的進(jìn)程或者重啟的進(jìn)程,其cpu親和性會(huì )自動(dòng)與systemd保持一致,因此只需要考慮正在運行的systemd子進(jìn)程的核隔離。對此,采用taskset -cp cpus pid的方式進(jìn)行設置。taskset是linux操作系統中的一個(gè)命令,它可以對進(jìn)程進(jìn)行CPU親和性設置,即讓進(jìn)程在指定的CPU核心或者CPU核心集合上運行。

通過(guò)cgroup和taskset兩種方式的結合,可以實(shí)現在現網(wǎng)運行過(guò)程中,動(dòng)態(tài)的對系統相關(guān)的進(jìn)程(尤其是systemd啟動(dòng)和管理的進(jìn)程)進(jìn)行核隔離的目的。

*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: 運維 服務(wù)器

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>