本發(fā)明涉及存儲器,尤其涉及一種cache分配方法、系統(tǒng)、設備及介質。
背景技術:
1、隨著現(xiàn)代化電子設備對處理器性能的要求越來越高,使得優(yōu)化處理器的內(nèi)部結構變得越來越重要。為了提高處理器的運行效率,減少處理器訪問主存的時間,在處理器與主存之間引入了高速緩存存儲器(cache)。
2、現(xiàn)有android或者linux系統(tǒng)在運行期間,所有的進程完全公平的共享完整lastlevel?cache(最后一級緩存)。系統(tǒng)運行重要的帶寬資源型進程的時候,其它進程可能會和該進程頻繁的發(fā)生cache競爭和搶占事件,從而增加該重要進程的cache?miss(緩存未命中)數(shù)值和運行時延。
技術實現(xiàn)思路
1、有鑒于此,本發(fā)明實施例的目的是提供一種cache分配方法、系統(tǒng)、設備及介質,能夠識別并分配相應的cache來加速帶寬資源型進程,減少帶寬資源型進程的cache?miss數(shù)值和運行時延。
2、第一方面,本發(fā)明實施例提供了一種cache分配方法,包括:
3、獲取目標加速進程信息;
4、根據(jù)所述目標加速進程信息確定目標加速進程,所述目標加速進程表征帶寬資源型進程;
5、將所有小核cpu劃分到第一cpuset,將所有大核cpu劃分到第二cpuset;
6、將所述目標加速進程調(diào)度至所述第二cpuset;
7、通過固定周期對所述目標加速進程進行最后一級緩存事件采樣得到采樣數(shù)據(jù);
8、根據(jù)所述采樣數(shù)據(jù)獲取所述目標加速進程的緩存引用次數(shù)和緩存未命中次數(shù);
9、計算所述緩存引用次數(shù)與所述緩存未命中次數(shù)的第一比值;
10、根據(jù)所述第一比值分配不同大小的llc給所述第一cpuset,所述第二cpuset使用完整的llc,以使所述目標加速進程被加速執(zhí)行。
11、在一些可選的實施例中,所述獲取目標加速進程信息,包括:
12、獲取app下發(fā)的目標加速進程信息;或
13、通過目標加速進程識別程序獲取所述目標加速進程信息。
14、在一些可選的實施例中,所述通過目標加速進程識別程序獲取所述目標加速進程信息,包括:
15、獲取預設的第一閾值、第二閾值、第三閾值和第四閾值;
16、在所述固定周期內(nèi)獲取運行待識別進程時的nice值、l1數(shù)據(jù)緩存加載次數(shù)和數(shù)據(jù)緩存加載次數(shù)的第二比值、l1數(shù)據(jù)緩存加載次數(shù)和ipc;
17、在所述nice值小于所述第一閾值、所述第二比值大于所述第二閾值、所述l1數(shù)據(jù)緩存加載次數(shù)大于所述第三閾值和所述ipc小于所述第四閾值的情況下,將所述待識別進程配置為目標加速進程,并生成所述目標加速進程信息。
18、在一些可選的實施例中,所述目標加速進程通過進程boost程序完成加速,所述進程boost程序的運行流程,包括:
19、接收所述目標加速進程信息;
20、獲取默認llc配置;
21、初始化分區(qū)size配置變量,所述分區(qū)size配置變量表征調(diào)整所述llc分區(qū)大小的變量;
22、將所有小核cpu劃分到第一cpuset,將所有大核cpu劃分到第二cpuset;
23、將所述目標加速進程調(diào)度至所述第二cpuset;
24、在固定周期內(nèi)對所述目標加速進程進行最后一級緩存事件采樣得到采樣數(shù)據(jù);
25、根據(jù)所述采樣數(shù)據(jù)獲取所述目標加速進程的緩存引用次數(shù)和緩存未命中次數(shù);
26、計算所述緩存引用次數(shù)與所述緩存未命中次數(shù)的第一比值;
27、根據(jù)所述第一比值設置第一分區(qū)size配置變量;
28、根據(jù)所述第一分區(qū)size配置變量分配不同大小的llc給所述第一cpuset,所述第二cpuset使用完整的llc,以使所述目標加速進程被加速執(zhí)行;
29、在所述目標加速進程運行結束的情況下,將分配的所述llc恢復至所述默認llc配置。
30、在一些可選的實施例中,所述方法還包括:
31、在所述固定周期內(nèi)獲取運行待識別進程的pmu信息;
32、將所述pmu信息中的所述nice值與所述第一閾值進行比較得到第一比較結果,在所述第一比較結果表征所述nice值大于或等于所述第一閾值的情況下,獲取下一個固定周期內(nèi)的所述pmu信息;
33、在所述第一比較結果表征所述nice值小于所述第一閾值的情況下,將所述pmu信息中的l1數(shù)據(jù)緩存加載次數(shù)和數(shù)據(jù)緩存加載次數(shù)的第二比值與所述第二閾值進行比較得到第二比較結果,在所述第二比較結果表征所述第二比值小于或等于所述第二閾值的情況下,獲取下一個固定周期內(nèi)的所述pmu信息;
34、在所述第二比較結果表征所述第二比值大于所述第二閾值的情況下,將所述pmu信息中的所述l1數(shù)據(jù)緩存加載次數(shù)與所述第三閾值進行比較得到第三比較結果,在所述第三比較結果表征所述l1數(shù)據(jù)緩存加載次數(shù)小于或等于所述第三閾值的情況下,獲取下一個固定周期內(nèi)的所述pmu信息;
35、在所述第三比較結果表征所述l1數(shù)據(jù)緩存加載次數(shù)大于所述第三閾值的情況下,將所述pmu信息中的所述ipc與所述第四閾值進行比較得到第四比較結果,在所述第四比較結果表征所述ipc大于或等于所述第四閾值的情況下,獲取下一個固定周期內(nèi)的所述pmu信息;
36、在所述第四比較結果表征所述ipc小于所述第四閾值的情況下,將所述待識別進程配置為目標加速進程。
37、在一些可選的實施例中,所述根據(jù)所述第一比值分配不同大小的llc給所述第一cpuset,包括:
38、在所述第一比值小于或等于2的情況下,分配八分之一的所述llc給所述第一cpuset;
39、在所述第一比值大于2且小于或等于4的情況下,分配四分之一的所述llc給所述第一cpuset;
40、在所述第一比值大于4且小于或等于8的情況下,分配二分之一的所述llc給所述第一cpuset。
41、在一些可選的實施例中,所述將所述目標加速進程調(diào)度至所述第二cpuset之后,所述方法還包括:
42、獲取確認信息;
43、在所述確認信息表征開始所述llc的分配的情況下,在固定周期內(nèi)對所述目標加速進程進行最后一級緩存事件采樣得到采樣數(shù)據(jù);
44、在所述確認信息表征不開始所述llc的分配的情況下,比較所述第一cpuset的llc分區(qū)和整個llc的大小得到第五比較結果;
45、在所述第五比較結果表征所述第一cpuset的llc分區(qū)等于整個llc的大小的情況下,結束所述進程boost程序;
46、在所述第五比較結果表征所述第一cpuset的llc分區(qū)不等于整個llc的大小的情況下,將所述llc恢復至所述默認llc配置之后結束所述進程boost程序。
47、第二方面,本發(fā)明實施例提供了一種cache分配系統(tǒng),包括:
48、第一模塊,用于獲取目標加速進程信息;
49、第二模塊,用于根據(jù)所述目標加速進程信息確定目標加速進程,所述目標加速進程表征帶寬資源型進程;
50、第三模塊,用于將所有小核cpu劃分到第一cpuset,將所有大核cpu劃分到第二cpuset;
51、第四模塊,用于將所述目標加速進程調(diào)度至所述第二cpuset;
52、第五模塊,用于通過固定周期對所述目標加速進程進行最后一級緩存事件采樣得到采樣數(shù)據(jù);
53、第六模塊,用于根據(jù)所述采樣數(shù)據(jù)獲取所述目標加速進程的緩存引用次數(shù)和緩存未命中次數(shù);
54、第七模塊,用于計算所述緩存引用次數(shù)與所述緩存未命中次數(shù)的第一比值;
55、第八模塊,用于根據(jù)所述第一比值分配不同大小的llc給所述第一cpuset,所述第二cpuset使用完整的llc,以使所述目標加速進程被加速執(zhí)行。
56、第三方面,本發(fā)明實施例提供了一種計算機設備,所述計算機設備包括處理器、存儲器、以及存儲在所述存儲器上并可被所述處理器執(zhí)行的計算機程序,其中所述計算機程序被所述處理器執(zhí)行時,實現(xiàn)上述的方法的步驟。
57、第四方面,本發(fā)明實施例提供了一種計算機可讀存儲介質,其中存儲有處理器可執(zhí)行的程序,所述處理器可執(zhí)行的程序在由處理器執(zhí)行時用于執(zhí)行如上所述的方法。
58、實施本發(fā)明實施例包括以下有益效果:本發(fā)明實施例提供一種cache分配方法,包括:獲取目標加速進程信息;根據(jù)所述目標加速進程信息確定目標加速進程,所述目標加速進程表征帶寬資源型進程;將所有小核cpu劃分到第一cpuset,將所有大核cpu劃分到第二cpuset;將所述目標加速進程調(diào)度至所述第二cpuset;通過固定周期對所述目標加速進程進行最后一級緩存事件采樣得到采樣數(shù)據(jù);根據(jù)所述采樣數(shù)據(jù)獲取所述目標加速進程的緩存引用次數(shù)和緩存未命中次數(shù);計算所述緩存引用次數(shù)與所述緩存未命中次數(shù)的第一比值;根據(jù)所述第一比值分配不同大小的llc給所述第一cpuset,所述第二cpuset使用完整的llc,以使所述目標加速進程被加速執(zhí)行。通過給目標加速進程分配整個llc,且其他進程根據(jù)目標加速進程運行時的緩存引用次數(shù)與緩存未命中次數(shù)的第一比值確定相應的llc分區(qū),從而保證目標加速進程不會被其他進程搶用llc,目標加速進程被加速執(zhí)行,從而減少目標加速進程的cache?miss數(shù)值和運行時延。