[發明專利]一種實現GPU虛擬化的方法、裝置和存儲介質有效
| 申請號: | 202010438504.7 | 申請日: | 2020-05-21 |
| 公開(公告)號: | CN111638953B | 公開(公告)日: | 2021-07-30 |
| 發明(設計)人: | 曾李志;方陽;肖鵬 | 申請(專利權)人: | 貝殼找房(北京)科技有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 北京德琦知識產權代理有限公司 11018 | 代理人: | 鄭紅娟;宋志強 |
| 地址: | 100085 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 實現 gpu 虛擬 方法 裝置 存儲 介質 | ||
1.一種實現GPU虛擬化的方法,其特征在于,該方法包括:
為應用服務請求分配工作節點下的GPU,所述應用服務請求攜帶有GPU內存申請量;所述工作節點利用容器引擎docker創建的容器運行所述應用服務請求對應的應用服務實例,并在分配的GPU上運行應用服務進程;
獲取所述工作節點監控的GPU運行信息和容器運行信息;所述GPU運行信息表示在分配的GPU上運行所述應用服務進程狀況的信息,所述容器運行信息表示在創建的容器上運行所述應用服務實例狀況的信息;
將所述容器運行信息中容器標識作為參數調用容器引擎獲得所述容器標識所屬容器運行的應用服務實例,作為待關聯應用服務實例;所述應用服務實例中的線程與運行在所述GPU上的線程采用了相同的線程ID進行標識;
確定所述待關聯應用服務實例中線程的線程ID,作為待關聯線程ID;
將所述待關聯線程ID與所述GPU運行信息中的當前線程ID進行匹配;匹配成功時,在所述待關聯線程ID所屬的應用服務實例和所述當前線程ID所屬的應用服務進程之間建立關聯關系;
基于所述應用服務實例和所述應用服務進程之間的關聯關系,在所述應用服務進程對應的GPU內存實際占用量超出所述應用服務實例對應的所述GPU內存申請量時,利用預設的軟隔離機制對所述應用服務進行隔離處理,包括:
判斷所述應用服務進程對應的GPU內存實際占用量是否超出所述應用服務實例對應的所述GPU內存申請量,所述應用服務進程和所述應用服務實例有關聯關系;如果超出,則繼續執行;否則,結束所述利用預設的軟隔離機制對所述應用服務請求進行隔離處理的步驟;
在預設的時間窗口內查詢上報的GPU內存實際占用量;
計算所述預設的時間窗口內上報的所述GPU內存實際占用量與所述GPU內存申請量的差值;
判斷計算出的所述差值與所述GPU內存申請量的比值是否持續超出預設的第一閾值,如果超出所述預設的第一閾值,則繼續執行;否則,結束所述利用預設的軟隔離機制對所述應用服務請求進行隔離處理的步驟;
計算歷史時間內所述GPU內存實際占用量的平均值;
判斷計算出的所述平均值與所述GPU內存申請量的比值是否超出預設的第二閾值,如果超出預設的第二閾值,則繼續執行;否則,結束所述利用預設的軟隔離機制對所述應用服務請求進行隔離處理的步驟;
向所述應用服務實例發送停止指令,以取消所述創建的容器繼續運行所述應用服務實例,并取消在分配的GPU上繼續運行所述應用服務進程。
2.根據權利要求1所述的方法,其特征在于,所述獲取工作節點監控的GPU運行信息的步驟包括:
接收所述工作節點采集到的GPU運行信息,其中所述工作節點按照設置的采集時間間隔調用分配的GPU的驅動接口,獲取所述應用服務進程的GPU運行信息,所述GPU運行信息包括當前線程ID和對應的GPU內存實際占用量,所述當前線程ID為所述應用服務進程在分配的GPU上當前運行線程的標識;且所述工作節點上報采集到的所述GPU運行信息。
3.根據權利要求2所述的方法,其特征在于,所述獲取工作節點監控的容器運行信息的步驟包括:
接收所述工作節點采集到的容器運行信息,其中所述工作節點獲取運行所述應用服務實例的容器對應的容器標識;所述工作節點獲取所述應用服務實例對應的所述GPU內存申請量;所述工作節點將所述容器標識和所述GPU內存申請量作為所述容器運行信息并上報。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于貝殼找房(北京)科技有限公司,未經貝殼找房(北京)科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010438504.7/1.html,轉載請聲明來源鉆瓜專利網。





