<div id="0jj4m"></div>

    1. <em id="0jj4m"></em>
        <em id="0jj4m"></em>

        服務支持

        系統更新

        當前位置  >  首頁  >  服務支持  >  系統更新

        更新ID(KYBA-202201-1011

        更新簡述:
        在arm64平臺上,將虛擬機vCPU(多核)進程的CPU使用率限制為100%時,部分vCPU實際無法達到100%。
        影響操作系統版本:
        銀河麒麟高級服務器操作系統(飛騰版)V10(SP1)0518 銀河麒麟高級服務器操作系統(鯤鵬版)V10(SP1)0518 銀河麒麟高級服務器操作系統(飛騰版)V10(SP2)0524 銀河麒麟高級服務器操作系統(鯤鵬版)V10(SP2)0524
        更新類型:
        問題修復
        發布時間:
        2021-12-28

        詳細介紹

        1.詳細描述

        在arm64平臺上,通過libvirt設置虛擬機CPU的占用率限額時,存在以下問題:

        1.將虛擬機配置單核,并將CPU占用率限額(即cpu.cfs_quota_us)配置為100000(限制為100%)時,觀察虛擬機vCPU線程的物理機CPU占用率,實際可達到100%;

        2.將虛擬機配置為4核,并將每個核的限額均設置為100%時,實際總占用率只能達到350%左右,無法達到400%。另外,若將限額設置200000(限制為200%)或-1(無限制)時,總占用率可達到400%。


        2.復現步驟

        1.在宿主機的/sys/fs/cgroup/cpu,cpuacct/目錄下新建一個目錄test

        cd test

        mkdir t1 t2 t3 t4

        echo 100000 >t1/cpu.cfs_quota_us

        echo 100000 >t2/cpu.cfs_quota_us

        echo 100000 >t3/cpu.cfs_quota_us

        echo 100000 >t4/cpu.cfs_quota_us

        2.編寫測試程序,內容如下:

        #include <pthread.h>

        #include <stdio.h>

         

        void cpu100(void)

        {

            while(1);

        }

         

        void main(void)

        {

            pthread_t tid;

         

            pthread_create(&tid,NULL,cpu100,NULL);

            pthread_create(&tid,NULL,cpu100,NULL);

            pthread_create(&tid,NULL,cpu100,NULL);

            pthread_create(&tid,NULL,cpu100,NULL);

            sleep(10000000);

        }

        3.編譯上述程序并運行;

        4.找到該程序的PID,通過top -Hp <pid>,查詢其4個CPU占用率為100%的子線程的PID;

        5.將4個子線程的PID分別寫入步驟1中test文件夾下的的t1/tasks, t2/tasks, t3/tasks, t4/tasks文件中;

        6.繼續觀察top命令的輸出信息,可發現有一個子線程的CPU占用率明顯下降,如下圖:

        undefined


        3.原因簡述

        該問題由cgroup和完全公平調度器(CFS)的時間片分配邏輯中存在競爭窗口導致。


        4.解決方案/修復/更新方法

        在調度實體受限時,及時將其記錄到受限隊列中,以便函數distribute_cfs_runtime()在分發時間片時,可以發現該調度實體,并為其分配新的時間片額度。

        目前,社區已在v5.8-rc1版本中修復了該問題,相關補丁為“sched/fair: Eliminate bandwidth race between throttling and distribution“,將該補丁進行移植即可解決問題。


        上一篇: KYBA-202201-1010 下一篇: KYBA-202201-1012

        試用

        服務

        動態

        聯系

        <div id="0jj4m"></div>

        1. <em id="0jj4m"></em>
            <em id="0jj4m"></em>

            欧美精品一区二区三区