System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及計算機,尤其涉及一種io資源隔離的方法、裝置、設備及存儲介質。
技術介紹
1、在計算機系統中,磁盤性能是衡量整體系統效能的關鍵因素之一,通常由每秒讀寫次數(input/output?operations?per?second,簡稱iops)和每秒讀寫字節數(bytes?persecond,簡稱bps)這兩個指標來具體量化。這兩個指標不僅反映了磁盤的物理性能,同時也被視為一種系統資源,類似于網絡帶寬,對于系統的流暢運行至關重要。在操作系統層面,多個進程會共享這些io資源,這意味著一個進程的磁盤讀寫效率將不可避免地受到其他進程活動的影響,例如,當一個進程執行大量的磁盤讀寫操作時,其他進程所能獲得的io資源將相應減少,可能導致系統響應變慢或任務延遲。
2、對于某些特定類型的進程,如數據庫程序,其對磁盤讀寫的性能要求極高,頻繁且大量的磁盤訪問是常態。在這種情況下,為了保證數據庫的穩定性和響應速度,理想的狀態是將io資源進行有效隔離,以減少不同進程間的相互干擾。傳統上,linux操作系統通過cgroup?io控制器提供了io限制(io?limit)機制,允許為各個進程設定io使用的上限,該機制的核心在于,通過確保所有進程的io限制總和不超過磁盤的實際能力上限,來實現資源在一定程度上的隔離和分配。
3、然而,盡管這種傳統的io資源隔離方法在一定程度上緩解了進程間的io資源競爭問題,但它也帶來了顯著的局限性。具體而言,由于每個進程都被設定了固定的io使用上限,即使系統中的其他進程并未充分利用其分配的io資
技術實現思路
1、本專利技術的目的在于提供一種io資源隔離的方法、裝置、設備及存儲介質,以解決傳統的io資源隔離方法不能充分利用其io資源的問題。
2、為實現上述目的,本申請采用以下技術方案:
3、本申請的一種io資源隔離的方法,包括以下步驟:
4、為每個目標進程設置期望io資源量;
5、確定磁盤最新的可分配io資源量,并獲取每個目標進程的當前io資源用量;
6、根據各個目標進程的期望io資源量確定資源分配順序,并根據所述最新的可分配io資源量、期望io資源量及對應的當前io資源用量確定每個目標進程的資源分配量。
7、作為優選,所述方法還包括:
8、在主機上部署守護進程,所述守護進程用于設置每個目標進程的io資源限制量,并實時采集其當前io資源用量。
9、作為優選,所述實時采集其當前io資源用量,包括:
10、利用所述守護進程定期讀取每個控制組內目標進程的累計讀寫次數和讀寫字節數,根據間隔時間以及所述累計讀寫次數和讀寫字節數進行計算得到每個目標進程的每秒讀寫次數和每秒讀寫字節數。
11、作為優選,所述確定磁盤最新的可分配io資源量,包括:
12、獲取當前時刻磁盤的每秒讀寫次數和每秒讀寫字節數,并將其與歷史值進行比對;
13、于當前時刻的每秒讀寫次數或每秒讀寫字節數大于歷史值時,進入探測狀態以確定所述磁盤的性能上限值;
14、將所述性能上限值作為所述磁盤最新的可分配io資源量。
15、作為優選,所述確定所述磁盤的性能上限值,包括:
16、逐步放開所述守護進程對每個目標進程的io資源限制量,并令目標進程盡可能下發io資源,得到每秒讀寫次數和每秒讀寫字節數的峰值;
17、于任一目標進程的io用量減少、除其之外的部分目標進程io資源用量有增加且總的每秒讀寫次數和每秒讀寫字節數保持不變時,判定所述磁盤達到性能上限,并記錄性能上限值。
18、作為優選,所述方法還包括:
19、于無法確定所述磁盤的性能上限值時,根據其探測狀態下獲取到的最大io資源量確定最新的可分配io資源量。
20、作為優選,所述根據各個目標進程的期望io資源量確定資源分配順序,并根據所述最新的可分配io資源量、期望io資源量及對應的當前io資源用量確定每個目標進程的資源分配量,包括:
21、優先為期望io資源量大于零的目標進程分配io資源,且在其期望io資源量大于其當前io資源用量時,為其分配等于其當前io資源用量固定倍數的io資源,否則,為其分配等于其當前io資源用量的io資源;
22、于首次分配后存在未分配資源時,按照當前io資源用量由小到大的順序依次為期望io資源量等于零的目標進程分配等于其當前io資源用量的io資源;
23、于二次分配后存在未分配資源時,按照當前io資源用量由小到大的順序依次為期望io資源量大于零且期望io資源量小于其當前io資源用量的目標進程追加分配等于其當前io資源用量與其期望io資源量的差值的io資源;
24、于三次分配后存在未分配資源時,為當前io資源用量等于其io資源限制量的目標進程追加等于其當前io資源用量預設比值的io資源;
25、于四次分配后存在未分配資源時,將所有的剩余資源平均追加給所有當前io資源用量大于其期望io資源量的目標進程;
26、將各個目標進程分配到的io資源總和作為io資源限制量保存到其各自的控制組中。
27、一種io資源隔離的裝置,包括:
28、設置模塊,用于為每個目標進程設置期望io資源量;
29、獲取模塊,用于確定磁盤最新的可分配io資源量,并獲取每個目標進程的當前io資源用量;
30、分配模塊,用于根據各個目標進程的期望io資源量確定資源分配順序,并根據所述最新的可分配io資源量、期望io資源量及對應的當前io資源用量確定每個目標進程的資源分配量。
31、一種電子設備,包括存儲器和處理器,所述存儲器用于存儲一條或多條計算機指令,其中,所述一條或多條計算機指令被所述處理器執行以實現如上述中任一項所述的一種io資源隔離的方法。
32、一種存儲有計算機程序的計算機可讀存儲介質,所述計算機程序使計算機執行時實現如上述中任一項所述的一種io資源隔離的方法。
33、本專利技術具有如下有益效果:
34、本專利技術根據為每個目標進程設置的reserve值來計算每個目標進程應得的io資源,然后通過調整部分目標進程的cgroup?io?limit,把高于預期的目標進程的io用量壓制下去,同時將空閑的io資源讓給有需要的進程,有效提高了io資源的利用率。
本文檔來自技高網...【技術保護點】
1.一種IO資源隔離的方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種IO資源隔離的方法,其特征在于,所述方法還包括:
3.根據權利要求2所述的一種IO資源隔離的方法,其特征在于,所述實時采集其當前IO資源用量,包括:
4.根據權利要求2所述的一種IO資源隔離的方法,其特征在于,所述確定磁盤最新的可分配IO資源量,包括:
5.根據權利要求4所述的一種IO資源隔離的方法,其特征在于,所述確定所述磁盤的性能上限值,包括:
6.根據權利要求4所述的一種IO資源隔離的方法,其特征在于,所述方法還包括:
7.根據權利要求1所述的一種IO資源隔離的方法,其特征在于,所述根據各個目標進程的期望IO資源量確定資源分配順序,并根據所述最新的可分配IO資源量、期望IO資源量及對應的當前IO資源用量確定每個目標進程的資源分配量,包括:
8.一種IO資源隔離的裝置,其特征在于,包括:
9.一種電子設備,其特征在于,包括存儲器和處理器,所述存儲器用于存儲一條或多條計算機指令,其中,所述一條或多條計
10.一種存儲有計算機程序的計算機可讀存儲介質,其特征在于,所述計算機程序使計算機執行時實現如權利要求1~7中任一項所述的一種IO資源隔離的方法。
...【技術特征摘要】
1.一種io資源隔離的方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種io資源隔離的方法,其特征在于,所述方法還包括:
3.根據權利要求2所述的一種io資源隔離的方法,其特征在于,所述實時采集其當前io資源用量,包括:
4.根據權利要求2所述的一種io資源隔離的方法,其特征在于,所述確定磁盤最新的可分配io資源量,包括:
5.根據權利要求4所述的一種io資源隔離的方法,其特征在于,所述確定所述磁盤的性能上限值,包括:
6.根據權利要求4所述的一種io資源隔離的方法,其特征在于,所述方法還包括:
7.根據權利要求1所述的一種io資...
【專利技術屬性】
技術研發人員:周劍雄,
申請(專利權)人:杭州云猿生數據有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。