在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            博客專欄

            EEPW首頁 > 博客 > 一種動態(tài)實現(xiàn)核隔離的方法

            一種動態(tài)實現(xiàn)核隔離的方法

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

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

            一、技術背景

            相關概念:

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

            DPDK(Date planedevelopment kit):是一個用來進行包數(shù)據(jù)處理加速的軟件庫。

            Cpu親和性:進程要在某個給定的CPU上盡量長時間地運行而不被遷移到其他處理器的傾向性。

            背景:

            網(wǎng)元節(jié)點上,對cpu消耗比較多的進程可以分為幾個類別:

            1、系統(tǒng)運行相關進程(通過systemd啟動和管理的進程以及內(nèi)核線程)

            2、網(wǎng)元相關進程(比如dpos、gobgpd進程)。

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

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

            二、方案設計及實現(xiàn)

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

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

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

            2、設置systemd進程親和性

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

            通過systemd 

            3、設置systemd子進程親和性

            對于systemd啟動和創(chuàng)建的進程主要分為幾類:

            1、正在運行的systemd子進程

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

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

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

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



            關鍵詞: 運維 服務器

            相關推薦

            技術專區(qū)

            關閉