System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及存儲,特別是涉及一種性能優化方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產品。
技術介紹
1、多線程技術是一個程序同時執行多個任務或處理多個數據流,通過并行執行,利用處理器的多核心優勢,任務可以更快完成,顯著提高了程序的整體性能。雖然多線程技術能夠提高系統的并行度,但是為了保證數據的一致性和完整性,需要使用鎖對資源進行保護,而頻繁的鎖競爭和上下文切換會顯著降低處理器系統的性能。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種能夠提升系統性能的性能優化方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產品。
2、第一方面,本申請提供了一種性能優化方法,包括:
3、獲取目標網卡對應的鄰接順序表,所述鄰接順序表至少包括按照排列次序排列的多個節點;
4、通過所述鄰接順序表的排列次序,確定包含不同數目的節點的多個場景,以及確定各所述場景分別對應的初始線程數目;
5、基于各所述場景對應的初始線程數目,對各所述場景分別進行性能測試,得到各所述場景下的優化性能值以及優化線程數目,并基于各所述優化性能值確定最優場景、所述最優場景的節點數目以及優化線程數目。
6、本實施例中,可以在考慮到多節點處理器架構對性能的影響,實現多節點與多線程之間的平衡,實現系統的最佳性能,通過采用按順序調整numa使用的個數以及應用程序的線程數來實現整機的最優性能,提升處理器的算力資源的充分利用。
7、在其中一個實施例
8、所述鄰接順序表還包括各所述節點的處理器核心數目,所述方法還包括:
9、確定所述目標網卡所在的初始節點,并計算所述初始節點分別與所述目標系統中的其他節點之間的距離;
10、對所述距離進行排列,得到排列次序,以及基于所述排列次序排列各所述節點,基于排列后的各所述節點以及各所述節點的處理器核心數目,得到鄰接順序表。
11、本實施例中,可以通過網卡所在的初始節點分別與其他各個節點之間的距離,對目標系統中包含的多個節點進行排列,得到numa鄰接表,通過該鄰接表可以準確地描述在多numa架構下的內存訪問的差異程度,并在目標系統的性能優化過程考慮該差異程度,按照鄰接順序表實現對各個場景中包含的節點數目的調整,為準確確定出整體的最優性能提供可靠的數據基礎。
12、在其中一個實施例中,所述基于各所述節點的處理器核心數目計算各所述場景分別對應的初始線程數目,包括:
13、針對于每一場景,確定所述場景包含的節點以及確定各所述節點的處理器核心數目;
14、通過預設目標值以及各所述節點的處理器核心數目,計算所述場景的初始線程數目。
15、本實施例中,可以通過各個場景分別包含的各個節點進行初始線程數目的確定,確定出該場景下各個節點所能承載的最大的線程數目,基于最大的線程數目進行性能測試,可以進一步提升性能測試的測試效率。
16、在其中一個實施例中,所述基于各所述場景對應的初始線程數目,對各所述場景分別進行性能測試,得到各所述場景下的優化性能值以及優化線程數目,包括:
17、針對每一場景,通過預設二分法以及所述場景對應的初始線程數目,得到第一線程數目以及第二線程數目;
18、分別確定對所述第一線程數目下的目標系統以及所述第二線程數目下的目標系統進行性能測試,得到第一性能值以及第二性能值;
19、基于所述第一性能值與第二性能值之間的大小關系,基于預設二分法對所述第一線程數目以及所述第二線程數目進行更新,并重新執行所述分別確定對所述第一線程數目下的目標系統以及所述第二線程數目下的目標系統進行性能測試的步驟,直至得到優化性能值以及優化線程數目。
20、本實施例中,可以通過預設二分法以及初始線程數目進行循環迭代,快速且準確地確定出在每一個場景下的最優性能值以及最優性能值對應的優化線程數目,可以更有效地將處理器的性能最大化,并充分利用處理器中的算力資源。
21、在其中一個實施例中,所述第一線程數目大于所述第二線程數目,所述基于所述第一性能值與第二性能值之間的大小關系,基于預設二分法對所述第一線程數目以及所述第二線程數目進行更新,包括:
22、如果所述第一性能值大于所述第二性能值,則通過預設二分法以及所述第一線程數目,得到更新后的第一線程數目以及第二線程數目;
23、如果所述第一性能值小于所述第二性能值,則通過預設二分法以及所述第二線程數目,得到更新后的第一線程數目以及第二線程數目。
24、本實施例中,可以通過預設二分法以及初始線程數目進行循環迭代,快速且準確地確定出在每一個場景下的最優性能值以及最優性能值對應的優化線程數目,可以更有效地將處理器的性能最大化,并充分利用處理器中的算力資源。
25、在其中一個實施例中,所述基于各所述優化性能值確定最優場景、所述最優場景的節點數目以及優化線程數目,包括:
26、將最大的性能值對應的場景確定為最優場景,并確定所述最優場景所包含的節點數目以及所述最優場景對應的優化線程數目。
27、本實施例中,考慮到了多numa架構處理器的影響,在優化的過程中,通過減少numa使用個數的方式來顯著減少跨numa內存訪問,通過采用按順序調整numa使用的個數以及應用程序的線程數來實現整機的最優性能,提高了被測應用程序的整體性能。
28、第二方面,本申請還提供了一種性能優化裝置,包括:
29、獲取模塊,用于獲取目標網卡對應的鄰接順序表,所述鄰接順序表至少包括按照排列次序排列的多個節點;
30、第一確定模塊,用于通過所述鄰接順序表的排列次序,確定包含不同數目的節點的多個場景,以及確定各所述場景分別對應的初始線程數目;
31、測試模塊,用于基于各所述場景對應的初始線程數目,對各所述場景分別進行性能測試,得到各所述場景下的優化性能值以及優化線程數目,并基于各所述優化性能值確定最優場景、所述最優場景的節點數目以及優化線程數目。
32、第三方面,本申請還提供了一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執行所述計算機程序時實現以下步驟:
33、獲取目標網卡對應的鄰接順序表,所述鄰接順序表至少包括按照排列次序排列的多個節點;
34、通過所述鄰接順序表的排列次序,確定包含不同數目的節點的多個場景,以及確定各所述場景分別對應的初始線程數目;
35、基于各所述場景對應的初始線程數目,對各所述場景分別進行性能測試,得到各所述場景下的優化性能值以及優化線程數目,并基于各所述優化性能值確定最優場景、所述最優場景的節點數目以及優化線程數目。
36、第四方面,本申請還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現以下步驟:
3本文檔來自技高網...
【技術保護點】
1.一種性能優化方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述目標網卡對應的系統包括多個節點,所述鄰接順序表還包括各所述節點的處理器核心數目,所述方法還包括:
3.根據權利要求1所述的方法,其特征在于,所述確定各所述場景分別對應的初始線程數目,包括:
4.根據權利要求1所述的方法,其特征在于,所述基于各所述場景對應的初始線程數目,對各所述場景分別進行性能測試,得到各所述場景下的優化性能值以及優化線程數目,包括:
5.根據權利要求4所述的方法,其特征在于,所述第一線程數目大于所述第二線程數目,所述基于所述第一性能值與第二性能值之間的大小關系,基于預設二分法對所述第一線程數目以及所述第二線程數目進行更新,包括:
6.根據權利要求1所述的方法,其特征在于,所述基于各所述優化性能值確定最優場景、所述最優場景的節點數目以及優化線程數目,包括:
7.一種性能優化裝置,其特征在于,所述裝置包括:
8.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所
9.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至6中任一項所述的方法的步驟。
10.一種計算機程序產品,包括計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至6中任一項所述的方法的步驟。
...【技術特征摘要】
1.一種性能優化方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述目標網卡對應的系統包括多個節點,所述鄰接順序表還包括各所述節點的處理器核心數目,所述方法還包括:
3.根據權利要求1所述的方法,其特征在于,所述確定各所述場景分別對應的初始線程數目,包括:
4.根據權利要求1所述的方法,其特征在于,所述基于各所述場景對應的初始線程數目,對各所述場景分別進行性能測試,得到各所述場景下的優化性能值以及優化線程數目,包括:
5.根據權利要求4所述的方法,其特征在于,所述第一線程數目大于所述第二線程數目,所述基于所述第一性能值與第二性能值之間的大小關系,基于預設二分法對所述第一線程數目以及所述第二線程數...
【專利技術屬性】
技術研發人員:夏依旭,潘潘,姜政富,
申請(專利權)人:曙光信息產業北京有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。