一種內存分配方法及節點的制作方法
【專利摘要】本發明實施例公開了一種內存分配方法及節點,涉及計算機領域,可以避免由于訪存敏感度較高的應用程序被分配至遠程內存而造成的增大訪存延遲的問題,從而可以提高系統性能。具體方案為:第一節點根據待執行的應用程序的標識在預設的訪存特征表中查詢應用程序的訪存特征表項,訪存特征表項包括應用程序的訪存停頓時間;若訪存特征表中包含應用程序的訪存特征表項,第一節點則根據應用程序的訪存特征表項,結合內存分配策略為應用程序分配第一節點的本地內存和/或第一節點的遠程內存。本發明用于節點操作系統執行應用程序的過程中。
【專利說明】—種內存分配方法及節點
【技術領域】
[0001]本發明涉及計算機領域,尤其涉及一種內存分配方法及節點。
【背景技術】
[0002]隨著計算機系統設計的發展,數據中心設計研究的深入,業界提出了內存云的設計方案。在該設計方案中,數據中心的一個節點操作系統(簡稱節點)的內存可以由本地內存和遠程內存兩部分組成,本地內存為該節點本身的內存,遠程內存為該節點調用的距離該節點至少一跳的其他節點(遠程節點)的內存。其中,調用遠程內存完成訪存任務時的訪存延遲較大,影響系統性能。
[0003]現有技術中,為了減少訪存延遲,可以將一個節點上的訪存任務盡量分配到該節點的本地內存或者距離該節點較近的節點中。例如,當節點A的本地內存可以滿足訪存任務需要時,則不調用遠程內存;當節點A的本地內存不足以滿足訪存任務需要時,則可以調用節點位置距離節點A較近的節點B的部分內存。
[0004]現有技術在減少訪存延遲時,僅考慮本地節點與遠程節點的距離對訪存延遲的影響,而未考慮到應用程序的訪存特征對訪存延遲的影響。具體的,由于不同的應用程序對訪存延遲的敏感度不同,可能會存在由于訪存敏感度較高的應用程序被分配至遠程內存,而導致該應用程序的執行速度大幅降低,訪存延遲增大,系統性能降低。
【發明內容】
[0005]本發明的實施例提供一種內存分配方法及節點,可以避免由于訪存敏感度較高的應用程序被分配至遠程內存而造成的增大訪存延遲的問題,從而可以提高系統性能。
[0006]本發明實施例的第一方面,提供一種內存分配方法,包括:
[0007]第一節點根據待執行的應用程序的標識在訪存特征表中查詢所述應用程序的訪存特征表項,所述訪存特征表項包括所述應用程序的訪存停頓時間,所述訪存停頓時間為所述第一節點根據所述應用程序調用內存數據時等待所述內存數據返回的時間;
[0008]若所述訪存特征表中包含所述應用程序的所述訪存特征表項,所述第一節點則根據所述應用程序的所述訪存特征表項,結合內存分配策略為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存。
[0009]結合第一方面,在一種可能的實現方式中,所述第一節點根據所述應用程序的所述訪存特征表項,結合內存分配策略為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存,包括:
[0010]所述第一節點根據所述應用程序的標識獲取所述應用程序的所述訪存特征表項在所述訪存特征表中的排名;
[0011]所述第一節點查詢所述第一節點的內存容量,所述第一節點的內存容量包括所述第一節點的本地內存容量和所述第一節點的遠程內存容量;
[0012]所述第一節點查詢所述第一節點距離第二節點的跳數,所述第二節點為接受所述第一節點的調用,并為所述第一節點提供遠程內存的節點;
[0013]所述第一節點根據所述訪存特征表項在所述訪存特征表中的排名、所述第一節點的內存容量以及所述第一節點距離所述第二節點的跳數,為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存。
[0014]結合第一方面和上述可能的實現方式,在另一種可能的實現方式中,所述方法還包括:
[0015]若所述訪存特征表中不包含所述應用程序的所述訪存特征表項,所述第一節點則根據所述內存分配策略,為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存。
[0016]結合第一方面和上述可能的實現方式,在另一種可能的實現方式中,所述第一節點根據所述內存分配策略,為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存,包括:
[0017]所述第一節點查詢所述第一節點的內存容量,所述第一節點的內存容量包括所述第一節點的本地內存容量和所述第一節點的遠程內存容量;
[0018]所述第一節點查詢所述第一節點距離第二節點的跳數,所述第二節點為接受所述第一節點的調用,并為所述第一節點提供遠程內存的節點;
[0019]所述第一節點根據所述第一節點的內存容量、所述第一節點距離所述第二節點的跳數,為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存。
[0020]結合第一方面和上述可能的實現方式,在另一種可能的實現方式中,在所述第一節點為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存之后,所述方法還包括:
[0021]所述第一節點獲取所述第一節點執行所述應用程序的當前訪存停頓時間;
[0022]所述第一節點獲取所述第一節點執行所述應用程序的本地訪存延遲和所述第一節點執行所述應用程序的遠程訪存延遲;
[0023]所述第一節點根據所述本地訪存延遲和所述遠程訪存延遲對所述當前訪存停頓時間進行歸一化;
[0024]所述第一節點根據歸一化結果更新訪存特征表。
[0025]結合第一方面和上述可能的實現方式,在另一種可能的實現方式中,當所述訪存特征表中包含所述應用程序的訪存特征表項時,所述第一節點根據歸一化結果更新訪存特征表,包括:
[0026]所述第一節點根據所述歸一化結果和所述訪存特征表中的所述應用程序的訪存停頓時間計算所述應用程序的所述訪存停頓時間的平均值;
[0027]所述第一節點根據所述訪存停頓時間的平均值更新所述訪存特征表中的所述應用程序的訪存特征表項。
[0028]結合第一方面和上述可能的實現方式,在另一種可能的實現方式中,當所述訪存特征表中不包含所述應用程序的訪存特征表項時,所述第一節點根據歸一化結果更新訪存特征表,包括:
[0029]所述第一節點將所述歸一化后的所述訪存停頓時間和所述應用程序的標識存儲至所述訪存特征表。
[0030]結合第一方面和上述可能的實現方式,在另一種可能的實現方式中,在所述第一節點將所述歸一化后的所述訪存停頓時間存儲至所述訪存特征表之前,所述方法還包括:
[0031]所述第一節點判斷所述訪存特征表中的訪存特征表項的個數是否超過閾值范圍;
[0032]若所述訪存特征表項的個數超過閾值范圍,所述第一節點則采用最久未使用LRU算法刪減所述訪存特征表中的所述訪存特征表項。
[0033]本發明實施例的第二方面,還提供一種節點,包括:
[0034]查詢單元,用于根據待執行的應用程序的標識在預設的訪存特征表中查詢所述應用程序的訪存特征表項,所述訪存特征表項包括所述應用程序的訪存停頓時間,所述訪存停頓時間為所述節點根據所述應用程序調用內存數據時等待所述內存數據返回的時間;
[0035]第一分配單元,用于若所述訪存特征表中包含所述應用程序的所述訪存特征表項,則根據所述查詢單元查找到的所述應用程序的所述訪存特征表項,結合內存分配策略為所述應用程序分配所述節點的本地內存和/或所述節點的遠程內存。
[0036]結合第二方面,在一種可能的實現方式中,所述第一分配單元,包括:
[0037]獲取模塊,用于根據所述應用程序的標識獲取所述應用程序的所述訪存特征表項在所述訪存特征表中的排名;
[0038]第一查詢模塊,用于查詢所述節點的內存容量,所述節點的內存容量包括所述節點的本地內存容量和所述節點的遠程內存容量;
[0039]第二查詢模塊,用于查詢所述節點距離第二節點的跳數,所述第二節點為接受所述節點的調用,并為所述節點提供遠程內存的節點;
[0040]第一分配模塊,用于根據所述訪存特征表項在所述訪存特征表中的排名、所述節點的內存容量以及所述節點距離所述第二節點的跳數,為所述應用程序分配所述節點的本地內存和/或所述節點的遠程內存。
[0041]結合第二方面和上述可能的實現方式,在另一種可能的實現方式中,所述節點,還包括:
[0042]第二分配單元,用于若所述訪存特征表中不包含所述應用程序的所述訪存特征表項,則根據所述內存分配策略,為所述應用程序分配所述節點的本地內存和/或所述節點的遠程內存。
[0043]結合第二方面和上述可能的實現方式,在另一種可能的實現方式中,所述第二分配單元,包括:
[0044]第三查詢模塊,用于查詢所述節點的內存容量,所述節點的內存容量包括所述節點的本地內存容量和所述節點的遠程內存容量;
[0045]第四查詢模塊,用于查詢所述節點距離第二節點的跳數,所述第二節點為接受所述節點的調用,并為所述節點提供遠程內存的節點;
[0046]第二分配模塊,用于根據所述節點的內存容量、所述節點距離所述第二節點的跳數,為所述應用程序分配所述節點的本地內存和/或所述節點的遠程內存。
[0047]結合第二方面和上述可能的實現方式,在另一種可能的實現方式中,所述節點,還包括:
[0048]第一獲取單元,用于在所述第一分配單元或所述第二分配單元為所述應用程序分配所述節點的本地內存和/或所述節點的遠程內存之后,獲取所述節點執行所述應用程序的當前訪存停頓時間;
[0049]第二獲取單元,用于獲取所述節點執行所述應用程序的本地訪存延遲和所述節點執行所述應用程序的遠程訪存延遲;
[0050]歸一化單元,用于根據所述第二獲取單元獲取的所述本地訪存延遲和所述遠程訪存延遲對所述第一獲取單元獲取的所述當前訪存停頓時間進行歸一化;
[0051]更新單元,用于根據所述歸一化單元的歸一化結果更新訪存特征表。
[0052]結合第二方面和上述可能的實現方式,在另一種可能的實現方式中,當所述訪存特征表中包含所述應用程序的訪存特征表項時,所述更新單元,包括:
[0053]計算模塊,用于根據所述歸一化結果和所述訪存特征表中的所述應用程序的訪存停頓時間計算所述應用程序的所述訪存停頓時間的平均值;
[0054]更新模塊,用于根據所述訪存停頓時間的平均值更新所述訪存特征表中的所述應用程序的訪存特征表項。
[0055]結合第二方面和上述可能的實現方式,在另一種可能的實現方式中,所述更新單元,還用于將所述歸一化后的所述訪存停頓時間和所述應用程序的標識存儲至所述訪存特征表。
[0056]結合第二方面和上述可能的實現方式,在另一種可能的實現方式中,所述節點,還包括:
[0057]判斷單元,用于在所述更新單元將所述歸一化后的所述訪存停頓時間和所述應用程序的標識存儲至所述訪存特征表之前,判斷所述訪存特征表中的訪存特征表項的個數是否超過閾值范圍;
[0058]刪減單元,用于若所述訪存特征表項的個數超過閾值范圍,則采用最久未使用LRU算法刪減所述訪存特征表中的所述訪存特征表項。
[0059]本發明實施例提供的內存分配方法及節點,第一節點根據待執行的應用程序的標識在預設的訪存特征表中查詢所述應用程序的訪存特征表項,若訪存特征表中包含應用程序的訪存特征表項,第一節點則根據應用程序的訪存特征表項,結合內存分配策略為應用程序分配第一節點的本地內存和/或第一節點的遠程內存。與現有技術中,僅考慮本地節點與遠程節點的距離對訪存延遲的影響,而未考慮到應用程序的訪存特征對訪存延遲的影響相比,第一節點可以根據應用程序的訪存特征為應用程序分配第一節點的本地內存和/或第一節點的遠程內存,可以避免由于訪存敏感度較高的應用程序被分配至遠程內存而造成的增大訪存延遲的問題,從而可以提高系統性能。
【專利附圖】
【附圖說明】
[0060]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0061]圖1為本發明實施例1中的一種內存分配方法流程圖;
[0062]圖2為本發明實施例2中的一種內存分配方法流程圖;
[0063]圖3為本發明實施例3中的一種節點的組成示意圖;
[0064]圖4為本發明實施例3中的另一種節點的組成示意圖;
[0065]圖5為本發明實施例3中的另一種節點的組成示意圖;
[0066]圖6為本發明實施例3中的另一種節點的組成示意圖;
[0067]圖7為本發明實施例4中的一種節點的組成示意圖。
【具體實施方式】
[0068]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0069]實施例1
[0070]本發明實施例提供一種內存分配方法,如圖1所示,包括:
[0071]101、第一節點根據待執行的應用程序的標識在預設的訪存特征表中查詢應用程序的訪存特征表項。
[0072]其中,訪存特征表項包括應用程序的訪存停頓時間,訪存停頓時間為第一節點根據所述應用程序調用內存數據時等待內存數據返回的時間。第一節點具體為數據中心的一個節點操作系統,該節點操作系統具有存儲、計算等功能,可以調度執行相關的應用程序。
[0073]具體的,訪存停頓時間為第一節點的處理器因等待內存數據返回而導致的流水線阻塞周期數,流水線是把一個重復的過程分解為若干個子過程,每個子過程與其他子過程并行進行的方法。
[0074]102、若訪存特征表中包含應用程序的訪存特征表項,第一節點則根據應用程序的訪存特征表項,結合內存分配策略為應用程序分配第一節點的本地內存和/或第一節點的遠程內存。
[0075]其中,第一節點的遠程內存為第一節點調用自第二節點的第二節點的內存。第二節點為數據中心的另一個節點操作系統。第一節點調用遠程內存的具體方法可以包括:第一節點發送遠程內存借用請求至第二節點,以使得第二節點處理該遠程內存借用請求,并生成遠程內存借用響應;第一節點接收來自第二節點的遠程內存借用響應;第一節點根據遠程內存借用響應接管借用自第二節點的遠程內存;第一節點記錄本次借用的遠程內存信息,遠程內存信息可以包括第一節點距離第二節點的跳數、該遠程內存的內存容量等。
[0076]需要說明的是,第一節點可以調用至少一個其他節點的內存作為其遠程內存,且第一節點還可以被其他節點的調用,為其他節點提供內存。
[0077]優選的,當訪存特征表中包含應用程序的訪存特征表項時,第一節點則可以查詢該應用程序的訪存特征表項,并根據該應用程序的訪存特征表項,為應用程序分配第一節點的本地內存和/或第一節點的遠程內存。
[0078]進一步地,第一節點根據應用程序的訪存特征表項,結合內存分配策略為應用程序分配第一節點的本地內存和/或第一節點的遠程內存的方法具體包括:第一節點根據應用程序的標識獲取應用程序的訪存特征表項在訪存特征表中的排名;第一節點查詢第一節點的內存容量,第一節點的內存容量包括第一節點的本地內存容量和第一節點的遠程內存容量;第一節點查詢第一節點距離第二節點的跳數,第二節點為接受第一節點的調用,并為第一節點提供遠程內存的節點;第一節點根據訪存特征表項在訪存特征表中的排名、內存容量以及第一節點距離第二節點的跳數,為應用程序分配第一節點的本地內存和/或第一節點的遠程內存。
[0079]需要說明的是,在本實施例的一種應用場景中,本發明實施例的方法還可以包括:若訪存特征表中不包含應用程序的訪存特征表項,第一節點則根據內存分配策略為應用程序分配第一節點的本地內存和/或第一節點的遠程內存。
[0080]進一步地,第一節點則僅根據內存分配策略為應用程序分配第一節點的本地內存和/或第一節點的遠程內存的方法具體包括:第一節點查詢第一節點的內存容量,第一節點的內存容量包括第一節點的本地內存容量和第一節點的遠程內存容量;第一節點查詢第一節點距離第二節點的跳數,第二節點為接受第一節點的調用,并為第一節點提供遠程內存的節點;第一節點根據內存容量、第一節點距離第二節點的跳數,為應用程序分配第一節點的本地內存和/或第一節點的遠程內存。
[0081]本發明實施例提供的內存分配方法,第一節點根據待執行的應用程序的標識在預設的訪存特征表中查詢應用程序的訪存特征表項,若訪存特征表中包含應用程序的訪存特征表項,第一節點則根據應用程序的訪存特征表項,結合內存分配策略為應用程序分配第一節點的本地內存和/或第一節點的遠程內存。與現有技術中,僅考慮本地節點與遠程節點的距離對訪存延遲的影響,而未考慮到應用程序的訪存特征對訪存延遲的影響相比,第一節點可以根據應用程序的訪存特征為應用程序分配第一節點的本地內存和/或第一節點的遠程內存,可以避免由于訪存敏感度較高的應用程序被分配至遠程內存而造成的增大訪存延遲的問題,從而可以提高系統性能。
[0082]實施例2
[0083]本發明實施例提供一種內存分配方法,如圖2所示,包括:
[0084]201、第一節點根據待執行的應用程序的標識在預設的訪存特征表中查詢應用程序的訪存特征表項。
[0085]其中,由于不同應用程序的訪存特征存在較大的差異,例如,部分應用程序對訪存延遲非常敏感,即隨著訪存延遲的增大,節點執行該應用程序的速度顯著降低;部分應用程序對訪存延遲并不敏感,即訪存延遲的增大對節點執行該應用程序的速度并無明顯影響。因此,在為應用程序分配內存前,第一節點可以根據待執行的應用程序的標識在預設的訪存特征表中查詢應用程序的訪存特征表項。例如,應用程序的訪存特征,即應用程序對訪存延遲的敏感度可以表現在應用程序的訪存停頓時間的長短上,當應用程序的訪存停頓時間較長,即第一節點的處理器因等待內存數據返回而導致的流水線阻塞周期數較大時,則可以確定該應用程序對訪存延遲的敏感度較高;當應用程序的訪存停頓時間較短,即第一節點的處理器因等待內存數據返回而導致的流水線阻塞周期數較小時,則可以確定該應用程序對訪存延遲的敏感度較低。
[0086]訪存特征表為預設在第一節點中,用于存儲第一節點執行過的應用程序的訪存特征表項的列表,應用程序的訪存特征表項可以包括:應用程序的訪存停頓時間memorystall cycles、訪存帶寬占用 memory bandwidth consumpt1n、節點內存占用 memoryfootprint 等。
[0087]202、第一節點查詢第一節點的內存容量,第一節點的內存容量包括第一節點的本地內存容量和第一節點的遠程內存容量。
[0088]203、第一節點查詢第一節點距離第二節點的跳數,第二節點為接受第一節點的調用,并為第一節點提供遠程內存的節點。
[0089]需要說明的是,無論訪存特征表中是否包含應用程序的訪存特征表項,本發明實施例中都需要執行步驟202-203。
[0090]進一步的,第一節點可以判斷訪存特征表中是否包含應用程序的訪存特征表項,即本發明實施例的方法還可以包括步驟204:
[0091]204、第一節點判斷訪存特征表中是否包含應用程序的訪存特征表項。
[0092]其中,若訪存特征表中包含應用程序的訪存特征表項,則繼續執行步驟205-206 ;若訪存特征表中不包含應用程序的訪存特征表項,則繼續執行步驟207。
[0093]需要說明的是,在本實施例中步驟202、步驟203和步驟204的執行不分先后,可以以步驟202、步驟203、步驟204的順序執行,也可以以步驟202、步驟204、步驟203的順序執行,或者以其他的執行順序執行步驟202、步驟203和步驟204,本實施例對步驟202、步驟203和步驟204執行的先后順序不作限制。
[0094]205、第一節點根據應用程序的標識獲取應用程序的訪存特征表項在訪存特征表中的排名。
[0095]具體的,當訪存特征表中包含應用程序的訪存特征表項時,第一節點則可以根據應用程序的標識獲取應用程序的訪存特征表項在訪存特征表中的排名。
[0096]例如,表1所示為一個簡單的訪存特征表實例,訪存特征表主要可以包含兩項內容:應用程序的標識、應用程序的訪存特征表項在訪存特征表中的排名和與其對應的應用程序的訪存特征。
[0097]表1
【權利要求】
1.一種內存分配方法,其特征在于,包括: 第一節點根據待執行的應用程序的標識在訪存特征表中查詢所述應用程序的訪存特征表項,所述訪存特征表項包括所述應用程序的訪存停頓時間,所述訪存停頓時間為所述第一節點根據所述應用程序調用內存數據時等待所述內存數據返回的時間; 若所述訪存特征表中包含所述應用程序的所述訪存特征表項,所述第一節點則根據所述應用程序的所述訪存特征表項,結合內存分配策略為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存。
2.根據權利要求1所述的內存分配方法,其特征在于,所述第一節點根據所述應用程序的所述訪存特征表項,結合內存分配策略為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存,包括: 所述第一節點根據所述應用程序的標識獲取所述應用程序的所述訪存特征表項在所述訪存特征表中的排名; 所述第一節點查詢所述第一節點的內存容量,所述第一節點的內存容量包括所述第一節點的本地內存容量和所述第一節點的遠程內存容量; 所述第一節點查詢所述第一節點距離第二節點的跳數,所述第二節點為接受所述第一節點的調用,并為所述第一節點提供遠程內存的節點; 所述第一節點根據所述訪存特征表項在所述訪存特征表中的排名、所述第一節點的內存容量以及所述第一節點距離所述第二節點的跳數,為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存。
3.根據權利要求1所述的內存分配方法,其特征在于,還包括: 若所述訪存特征表中不包含所述應用程序的所述訪存特征表項,所述第一節點則根據所述內存分配策略,為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存。
4.根據權利要求3述的內存分配方法,其特征在于,所述第一節點根據所述內存分配策略,為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存,包括: 所述第一節點查詢所述第一節點的內存容量,所述第一節點的內存容量包括所述第一節點的本地內存容量和所述第一節點的遠程內存容量; 所述第一節點查詢所述第一節點距離第二節點的跳數,所述第二節點為接受所述第一節點的調用,并為所述第一節點提供遠程內存的節點; 所述第一節點根據所述第一節點的內存容量、所述第一節點距離所述第二節點的跳數,為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存。
5.根據權利要求2或4所述的內存分配方法,其特征在于,在所述第一節點為所述應用程序分配所述第一節點的本地內存和/或所述第一節點的遠程內存之后,所述方法還包括: 所述第一節點獲取所述第一節點執行所述應用程序的當前訪存停頓時間; 所述第一節點獲取所述第一節點執行所述應用程序的本地訪存延遲和所述第一節點執行所述應用程序的遠程訪存延遲; 所述第一節點根據所述本地訪存延遲和所述遠程訪存延遲對所述當前訪存停頓時間進行歸一化; 所述第一節點根據歸一化結果更新訪存特征表。
6.根據權利要求5所述的內存分配方法,其特征在于,當所述訪存特征表中包含所述應用程序的訪存特征表項時,所述第一節點根據歸一化結果更新訪存特征表,包括: 所述第一節點根據所述歸一化結果和所述訪存特征表中的所述應用程序的訪存停頓時間計算所述應用程序的所述訪存停頓時間的平均值; 所述第一節點根據所述訪存停頓時間的平均值更新所述訪存特征表中的所述應用程序的訪存特征表項。
7.根據權利要求5所述的內存分配方法,其特征在于,當所述訪存特征表中不包含所述應用程序的訪存特征表項時,所述第一節點根據歸一化結果更新訪存特征表,包括: 所述第一節點將所述歸一化后的所述訪存停頓時間和所述應用程序的標識存儲至所述訪存特征表。
8.根據權利要求7所述的內存分配方法,其特征在于,在所述第一節點將所述歸一化后的所述訪存停頓時間存儲至所述訪存特征表之前,還包括: 所述第一節點判斷所述訪存特征表中的訪存特征表項的個數是否超過閾值范圍;若所述訪存特征表項的個數超過閾值范圍,所述第一節點則采用最久未使用LRU算法刪減所述訪存特征表中的所述訪存特征表項。
9.一種節點,其特征在于,包括: 查詢單元,用于根據待執行的應用程序的標識在預設的訪存特征表中查詢所述應用程序的訪存特征表項,所述訪存特征表項包括所述應用程序的訪存停頓時間,所述訪存停頓時間為所述節點根據所述應用程序調用內存數據時等待所述內存數據返回的時間; 第一分配單元,用于若所述訪存特征表中包含所述應用程序的所述訪存特征表項,則根據所述查詢單元查找到的所述應用程序的所述訪存特征表項,結合內存分配策略為所述應用程序分配所述節點的本地內存和/或所述節點的遠程內存。
10.根據權利要求9所述的節點,其特征在于,所述第一分配單元,包括: 獲取模塊,用于根據所述應用程序的標識獲取所述應用程序的所述訪存特征表項在所述訪存特征表中的排名; 第一查詢模塊,用于查詢所述節點的內存容量,所述節點的內存容量包括所述節點的本地內存容量和所述節點的遠程內存容量; 第二查詢模塊,用于查詢所述節點距離第二節點的跳數,所述第二節點為接受所述節點的調用,并為所述節點提供遠程內存的節點; 第一分配模塊,用于根據所述訪存特征表項在所述訪存特征表中的排名、所述節點的內存容量以及所述節點距離所述第二節點的跳數,為所述應用程序分配所述節點的本地內存和/或所述節點的遠程內存。
11.根據權利要求9所述的節點,其特征在于,還包括: 第二分配單元,用于若所述訪存特征表中不包含所述應用程序的所述訪存特征表項,則根據所述內存分配策略,為所述應用程序分配所述節點的本地內存和/或所述節點的遠程內存。
12.根據權利要求11所述的節點,其特征在于,所述第二分配單元,包括: 第三查詢模塊,用于查詢所述節點的內存容量,所述節點的內存容量包括所述節點的本地內存容量和所述節點的遠程內存容量; 第四查詢模塊,用于查詢所述節點距離第二節點的跳數,所述第二節點為接受所述節點的調用,并為所述節點提供遠程內存的節點; 第二分配模塊,用于根據所述節點的內存容量、所述節點距離所述第二節點的跳數,為所述應用程序分配所述節點的本地內存和/或所述節點的遠程內存。
13.根據權利要求10或12所述的節點,其特征在于,還包括: 第一獲取單元,用于在所述第一分配單元或所述第二分配單元為所述應用程序分配所述節點的本地內存和/或所述節點的遠程內存之后,獲取所述節點執行所述應用程序的當前訪存停頓時間; 第二獲取單元,用于獲取所述節點執行所述應用程序的本地訪存延遲和所述節點執行所述應用程序的遠程訪存延遲; 歸一化單元,用于根據所述第二獲取單元獲取的所述本地訪存延遲和所述遠程訪存延遲對所述第一獲取單元獲取的所述當前訪存停頓時間進行歸一化; 更新單元,用于根據所述歸一化單元的歸一化結果更新訪存特征表。
14.根據權利要求13所述的節點,其特征在于,當所述訪存特征表中包含所述應用程序的訪存特征表項時,所述更新單元,包括: 計算模塊,用于根據所述歸一化結果和所述訪存特征表中的所述應用程序的訪存停頓時間計算所述應用程序的所述訪存停頓時間的平均值; 更新模塊,用于根據所述訪存停頓時間的平均值更新所述訪存特征表中的所述應用程序的訪存特征表項。
15.根據權利要求13所述的節點,其特征在于,所述更新單元,還用于將所述歸一化后的所述訪存停頓時間和所述應用程序的標識存儲至所述訪存特征表。
16.根據權利要求15所述的節點,其特征在于,還包括: 判斷單元,用于在所述更新單元將所述歸一化后的所述訪存停頓時間和所述應用程序的標識存儲至所述訪存特征表之前,判斷所述訪存特征表中的訪存特征表項的個數是否超過閾值范圍; 刪減單元,用于若所述訪存特征表項的個數超過閾值范圍,則采用最久未使用LRU算法刪減所述訪存特征表中的所述訪存特征表項。
【文檔編號】H04L29/08GK104166596SQ201310183058
【公開日】2014年11月26日 申請日期:2013年5月17日 優先權日:2013年5月17日
【發明者】董建波, 侯銳, 張科, 張立新 申請人:華為技術有限公司, 中國科學院計算技術研究所