System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及計算機體系結構,并特別涉及一種軟硬件結合的內存訪問模式分析方法及裝置。
技術介紹
1、內存訪問模式指的是服務器在對應用的執行過程中訪問內存的方式和順序,描述了應用如何讀取和寫入內存中的數據。識別內存訪問模式的核心是要找到應用運行時每次的內存訪問的地址。分析內存訪問模式可以得到應用的訪存特征,針對不同的訪存特征可以進行優化訪問模式。例如對于局部性更好的應用可以分配更多的內存,也可以根據應用訪存特征預測訪存地址,預取數據減少缺頁異常出現的次數,提高應用性能。
2、常見的內存訪問模式有:1.順序訪問,應用按照內存地址的順序逐一訪問內存地址,這種內存訪問模式有良好的局部性,可以有效利用緩存。2.隨機訪問,應用以不規則的順序訪問內存地址,這種內存訪問模式局部性差,緩存命中率低,很難預測下一個訪問的內存地址。3.跳躍訪問,應用以固定步長訪問內存地址,這種內存訪問模式在處理矩陣或多維數組時較為常見。4.樹狀訪問,應用以樹形結構訪問內存地址,這種內存訪問模式在處理二叉樹或其他樹形數據結構時較為常見。
3、訪存語義黑障指內存分析工具無法準確理解或預測程序的內存訪問模式,從而導致眾多訪存優化、管理策略難以發揮其效能,例如圖1所示,實驗發現一個規則的map-reduce?based?word?count操作,在經過大數據框架、運行時、os層后,表現出來phase-changing的訪存特征,同時伴隨著順序+隨機混雜的特征,導致大數據應用(如spark、cassandra)執行于池化內存時,和執行于普通服務器(本地
4、目前基于托管式語言(managed?language,如java、python等)開發的應用一般基于運行時(runtime)執行,并向用戶提供了易于使用的數據抽象(如object等)。該類應用除了計算任務,仍包含眾多服務任務,如垃圾回收任務(garbage?collection,gc)、即時編譯(just-in-time?compilation,jit)等。一方面,當這些任務并發執行時,相互之間會爭搶本地內存、網絡帶寬等資源干擾等問題;另一方面,這些語義無關的任務具有迥異的計算、訪存模式,當將其訪存行為混雜在一起時,呈現出了無序、隨機的訪存語義,導致底層系統級優化難以正確響應,如圖2:計算任務線程的訪存模式與gc線程的訪存模式混合在一起后導致最終的體現在硬件上的應用整體訪存模式隨機、難以預測。
5、因此,為了打破訪存語義黑障,識別應用訪存模式,感知應用訪存語義非常重要。為了幫助開發人員理解應用內存訪問模式,現有技術提出了很多內存分析工具。
6、第一種方法是通過模擬應用程序的執行情況從而獲取內存訪問模式,但這種方法具有局限性,導致其并不適用于絕大多數應用程序,而且模擬應用程序和實際執行應用程序可能在不同機器或執行環境上獲取的內存訪問模式不完全相同。
7、第二種方式是在應用程序運行期間向二進制文件插入代碼從而獲取內存訪問模式,最典型的工具為intel?pin,基于此它可以獲取每個指定的讀或者寫操作,然后這類工具會給應用程序帶來幾十甚至上百倍的開銷,這就導致了其不適用于大型應用程序,插入代碼可能改變應用行為或者引入新的漏洞導致應用不穩定,插入代碼和特定的平臺和編譯器綁定,可能不適用于所有環境,限制了在不同系統上的可移植性。
8、第三種方法則是充分利用硬件提供的內存采樣機制,相比于前兩種基于軟件的內存采樣機制,硬件采樣機制(pebs)可以周期性的采樣執行指令的信息,從而獲取內存訪問的地址;并且這種采樣的方式極大地降低了開銷并提升了效率,比如通過硬件采樣機制(pebs)采樣一個指令的內存訪問數據只會帶來200-300納秒的開銷。
9、上述第一種模擬應用程序運行和第二種二進制插入技術都會給應用性能帶來巨大影響,不能非常準確得到應用的內存訪問模式,使用模擬應用程序運行和二進制插入技術都可能改變應用行為,影響內存訪問模式,導致內存訪問模式分析結果不準確。
10、研究人員還提出了很多基于硬件采樣機制的內存分析工具。首先,目前基于硬件采樣機制的內存分析工具雖然可以感知應用訪存模式,但是缺乏高效的應用訪存語義跟蹤機制且在進行內存分析時會關閉硬件采樣機制,應用的部分訪存信息采集不到,影響內存分析結果,高效追蹤大量訪存行為需要大量的計算資源,導致開銷大,對應用性能造成嚴重影響。
11、其次,現有的內存分析工具只能獲取粗粒度的應用訪存特征,沒有足夠的訪存信息準確勾畫應用的內存訪問模式。以上主要缺點造成上層應用內存訪問模式無法有效傳遞到底層的硬件架構,無法有效的打破語義黑障(semantics?gap),難以從中抽取具有規律性的訪存特征,在需要識別應用內存訪問模式并進行數據預取或數據回收的系統中,導致應用吞吐下降、尾延遲變長、性能波動等一系列問題。
12、由上可見,設計和實現一個能高效、準確感知應用程序的訪存語義有一系列具有挑戰的科學問題:第一,如何在硬件層高效的輸出訪存信息以及對應的開銷是否符合系統的需求(是否干擾應用行為)。第二,如何在軟件層高效、準確的分析內存訪問模式,確保底層硬件到軟件層的連通性。
技術實現思路
1、本專利技術的目標是設計一種軟硬件結合的內存分析工具,可以高效、準確的感知應用程序的訪存語義,并可高效的傳遞到硬件,打破系統軟件棧、硬件之間形成的語義黑障(semantics?gap),并保證對應用的易編程性(ease?of?programmability)、透明性(application?transparency)以及普適性(generality)。
2、為了實現上述技術效果,本專利技術提出了如下關鍵技術點:
3、關鍵點1,硬件采樣機制。基于硬件采樣機制技術pebs開發,周期性的采樣內存信息,對比傳統性能計數器極大降低開銷并提高了采樣事件準確率;
4、關鍵點2,基于超線程技術的軟件采樣機制。相比于分析線程和應用線程都屬于一個主進程,本專利技術是分析線程和應用線程是兩個進程。基于超線程技術開發內存分析工具,能在短時間內對采集到的事件進行分析并對應用影響較小,提高處理器物理處理器效率,改善物理處理器執行單元利用率;
5、關鍵點3,基于細粒度的內存分析的軟件采樣機制。結合實時處理事件數據,根據硬件采集到的事件數據,可以有足夠的地址訪存信息識別的內存訪問模式。
6、具體來說,針對現有技術的不足,如圖6所示,本專利技術提出一種軟硬件結合的內存訪問模式分析方法,其中包括:
7、初始步驟,獲取用于執行應用程序的硬件平臺,查詢該硬件平臺中性能計數器的事件類型列表,得到該性能硬件計數器支持的事件類型集;根據該事件類型集,調用該硬件平臺的系統接口獲取事件編碼;
8、設置步驟,根據預設的事件采集閾值和采集頻率,使用該系統接口配置硬件采集機制;在該硬件平臺中分配用于存儲事件數據的存儲空間;
本文檔來自技高網...
【技術保護點】
1.一種軟硬件結合的內存訪問模式分析方法,其特征在于,包括:
2.如權利要求1所述的軟硬件結合的內存訪問模式分析方法,其特征在于,該硬件平臺具有兩個邏輯線程,分別為內存分析線程和應用線程,該內存分析工具運行于該內存分析線程,該應用程序運行于該應用線程,且該內存分析線程和該應用線程分別運行在兩個邏輯處理器。
3.如權利要求1或2所述的軟硬件結合的內存訪問模式分析方法,其特征在于,該事件數據包括:寄存器值、時間戳、線程號,以及訪問的內存地址。
4.如權利要求2所述的軟硬件結合的內存訪問模式分析方法,其特征在于,該內存分析工具運行在該應用線程所在的邏輯處理器,與該應用程序共享相同的物理處理器資源。
5.一種軟硬件結合的內存訪問模式分析裝置,其特征在于,包括:
6.如權利要求5所述的軟硬件結合的內存訪問模式分析裝置,其特征在于,該硬件平臺具有兩個邏輯線程,分別為內存分析線程和應用線程,該內存分析工具運行于該內存分析線程,該應用程序運行于該應用線程,且該內存分析線程和該應用線程分別運行在兩個邏輯處理器;
7.如權利要求
8.一種電子設備,其特征在于,包括權利要求5-7所述的一種內存訪問模式分析裝置,該電子設備或連接有信息顯示設備,該信息顯示設備用于以用戶設置的顯示參數、屬性或通過人工智能模型,顯示該內存訪問模式。
9.一種計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現權利要求1-4中任一所述內存訪問模式分析方法的步驟。
10.一種計算機程序產品,包括計算機程序,其特征在于,該計算機程序被處理器執行時實現權利要求1-4中任一所述內存訪問模式分析方法的步驟。
...【技術特征摘要】
1.一種軟硬件結合的內存訪問模式分析方法,其特征在于,包括:
2.如權利要求1所述的軟硬件結合的內存訪問模式分析方法,其特征在于,該硬件平臺具有兩個邏輯線程,分別為內存分析線程和應用線程,該內存分析工具運行于該內存分析線程,該應用程序運行于該應用線程,且該內存分析線程和該應用線程分別運行在兩個邏輯處理器。
3.如權利要求1或2所述的軟硬件結合的內存訪問模式分析方法,其特征在于,該事件數據包括:寄存器值、時間戳、線程號,以及訪問的內存地址。
4.如權利要求2所述的軟硬件結合的內存訪問模式分析方法,其特征在于,該內存分析工具運行在該應用線程所在的邏輯處理器,與該應用程序共享相同的物理處理器資源。
5.一種軟硬件結合的內存訪問模式分析裝置,其特征在于,包括:
6.如權利要求5所述的軟硬件結合的內存訪問模式分析裝置,其特征在于,該硬件平臺具有兩個邏...
【專利技術屬性】
技術研發人員:彭余康,劉珂,王晨曦,陳明宇,
申請(專利權)人:中國科學院計算技術研究所,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。