本發(fā)明涉及tcp連接池,尤其涉及一種數據池的連接池狀態(tài)控制方法及控制器。
背景技術:
1、隨著云計算技術的不斷發(fā)展,人們對數據存儲的需求越來越大,而且對存儲設備的性能、可靠性等方面提出進一步的要求。雙控存儲系統是保障數據可靠性的有效方式,也是當前中小企業(yè)數據存儲的首選方案。首先雙控存儲系統可以并行處理來自應用服務器的i/o請求,一旦某個控制器出現故障或離線,另一個控制器將及時接管其工作,且不影響自己現有的任務。其次,雙控存儲系統能夠實現兩個存儲控制器的負載均衡功能。tcp連接池是云計算中一種管理tcp連接的技術,它允許開發(fā)者在多個應用程序之間共享tcp連接,從而提高網絡利用率。
2、現有技術中,雙控存儲管理系統的tcp連接池中的連接數量固定,因此,過多的連接會帶來資源的浪費,同時對服務端也會帶來連接壓力,過少的連接在高并發(fā)場景下會限制并發(fā)性能,影響雙控存儲管理系統的正常使用。
技術實現思路
1、為了解決現有技術中存在的上述問題,本發(fā)明提供了一種數據池的連接池狀態(tài)控制方法及控制器。本發(fā)明要解決的技術問題通過以下技術方案實現:
2、本發(fā)明實施例第一方面提供一種數據池的連接池狀態(tài)控制方法,應用于雙控存儲管理系統的其中一個存儲管理裝置的控制器,包括以下步驟:
3、當控制雙控存儲管理系統初始化時,為自身的tcp連接池創(chuàng)建初始預設數量的連接;其中,所述初始預設數量為自身的tcp連接池的連接的最大數量;
4、當雙控存儲管理系統初始化完成時,關閉自身的tcp連接池中第一預設數量的連接,以實現所述自身的tcp連接池中的連接數量為正常預設數量;其中,所述正常預設數量小于初始預設數量,且大于空閑預設數量。
5、在本發(fā)明的一個實施例中,還包括以下步驟:
6、當io讀寫量大于第一預設讀寫量時,調整自身的tcp連接池中的連接的數量為空閑預設數量;
7、當io讀寫量小于第二預設讀寫量時,調整所述自身的tcp連接池中的連接數量為正常預設數量;
8、其中,第一預設讀寫量大于第二預設讀寫量。
9、在本發(fā)明的一個實施例中,還包括以下步驟:
10、當對端控制器處于宕機狀態(tài)時,所述自身的tcp連接池中的每個連接進行心跳檢測;
11、當心跳檢測失敗后,移除進行了心跳檢測的連接,直至所述自身的tcp連接池中的連接全部被移除;
12、關閉所述自身的tcp連接池,并檢測所述自身的tcp連接池是否被激活。
13、在本發(fā)明的一個實施例中,還包括以下步驟:
14、當所述自身的tcp連接池被激活后,判斷自身控制器的io讀寫量的大??;
15、當自身控制器的io讀寫量大于第一預設讀寫量時,關閉自身的tcp連接池中第二預設數量的連接,以實現所述自身的tcp連接池中的連接數量為空閑預設數量;
16、當自身控制器的io讀寫量小于第二預設讀寫量時,保持所述自身的tcp連接池中的連接數量為空閑預設數量;
17、其中,第一預設讀寫量大于第二預設讀寫量。
18、在本發(fā)明的一個實施例中,還包括以下步驟:
19、當自身控制器宕機后重啟時,與對端控制器的tcp連接池進行交互,以激活所述對端控制器的tcp連接池,并進行自身控制器的初始化,調整自身的tcp連接池的連接數量為初始預設數量;
20、當初始化完成時,關閉自身的tcp連接池中第一預設數量的連接,以實現所述自身的tcp連接池中的連接數量為正常預設數量。
21、本發(fā)明實施例第二方面提供一種數據池的連接池狀態(tài)控制的控制器,所述控制器用于當控制雙控存儲管理系統初始化時,為自身的tcp連接池創(chuàng)建初始預設數量的連接;其中,所述初始預設數量為自身的tcp連接池的連接的最大數量;當雙控存儲管理系統初始化完成時,關閉自身的tcp連接池中第一預設數量的連接,以實現所述自身的tcp連接池中的連接數量為正常預設數量;其中,所述正常預設數量小于初始預設數量,且大于空閑預設數量。
22、在本發(fā)明的一個實施例中,所述控制器還用于當io讀寫量大于第一預設讀寫量時,調整自身的tcp連接池中的連接的數量為空閑預設數量;當io讀寫量小于第二預設讀寫量時,調整所述自身的tcp連接池中的連接數量為正常預設數量;其中,第一預設讀寫量大于第二預設讀寫量。
23、在本發(fā)明的一個實施例中,所述控制器還用于當對端控制器處于宕機狀態(tài)時,所述自身的tcp連接池中的每個連接進行心跳檢測;當心跳檢測失敗后,移除進行了心跳檢測的連接,直至所述自身的tcp連接池中的連接全部被移除;關閉所述自身的tcp連接池,并檢測所述自身的tcp連接池是否被激活。
24、在本發(fā)明的一個實施例中,所述控制器還用于當所述自身的tcp連接池被激活后,判斷自身控制器的io讀寫量的大小;當自身控制器的io讀寫量大于第一預設讀寫量時,關閉自身的tcp連接池中第二預設數量的連接,以實現所述自身的tcp連接池中的連接數量為空閑預設數量;當自身控制器的io讀寫量小于第二預設讀寫量時,保持所述自身的tcp連接池中的連接數量為空閑預設數量;其中,第一預設讀寫量大于第二預設讀寫量。
25、在本發(fā)明的一個實施例中,所述控制器還用于當自身控制器宕機后重啟時,與對端控制器的tcp連接池進行交互,以激活所述對端控制器的tcp連接池,并進行自身控制器的初始化,調整自身的tcp連接池的連接數量為初始預設數量;
26、當初始化完成時,關閉自身的tcp連接池中第一預設數量的連接,以實現所述自身的tcp連接池中的連接數量為正常預設數量。
27、本發(fā)明的有益效果:
28、本發(fā)明通過對系統初始化狀態(tài)下的tcp連接池狀態(tài)進行控制,在系統進行初始化的情況會讓tcp連接池的連接數量保持在高水平狀態(tài),也即是連接數量為最多的狀態(tài),當控制器初始化完成后控制tcp連接池恢復到默認數量狀態(tài),也即是正常工作的連接的數量狀態(tài),從而保證在初始化狀態(tài)下,兩個控制器主動獲取對端控制器的一些狀態(tài)信息引起tcp連接數需求暴增的情況下tcp連接池中的連接數量能夠滿足并發(fā)需求,保證系統正常進行初始化。在初始化完成后,tcp連接池中的連接數量恢復到正常數量,避免資源浪費,減少對服務端的連接壓力,保證雙控存儲管理系統的正常使用。
29、本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
30、下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
1.一種數據池的連接池狀態(tài)控制方法,其特征在于,應用于雙控存儲管理系統的其中一個存儲管理裝置的控制器,包括以下步驟:
2.如權利要求1所述的方法,其特征在于,還包括以下步驟:
3.如權利要求1所述的方法,其特征在于,還包括以下步驟:
4.如權利要求3所述的方法,其特征在于,還包括以下步驟:
5.如權利要求1所述的方法,其特征在于,還包括以下步驟:
6.一種數據池的連接池狀態(tài)控制的控制器,其特征在于,所述控制器用于當控制雙控存儲管理系統初始化時,為自身的tcp連接池創(chuàng)建初始預設數量的連接;其中,所述初始預設數量為自身的tcp連接池的連接的最大數量;當雙控存儲管理系統初始化完成時,關閉自身的tcp連接池中第一預設數量的連接,以實現所述自身的tcp連接池中的連接數量為正常預設數量;其中,所述正常預設數量小于初始預設數量,且大于空閑預設數量。
7.如權利要求6所述的控制器,其特征在于,所述控制器還用于當io讀寫量大于第一預設讀寫量時,調整自身的tcp連接池中的連接的數量為空閑預設數量;當io讀寫量小于第二預設讀寫量時,調整所述自身的tcp連接池中的連接數量為正常預設數量;其中,第一預設讀寫量大于第二預設讀寫量。
8.如權利要求6所述的控制器,其特征在于,所述控制器還用于當對端控制器處于宕機狀態(tài)時,所述自身的tcp連接池中的每個連接進行心跳檢測;當心跳檢測失敗后,移除進行了心跳檢測的連接,直至所述自身的tcp連接池中的連接全部被移除;關閉所述自身的tcp連接池,并檢測所述自身的tcp連接池是否被激活。
9.如權利要求8所述的控制器,其特征在于,所述控制器還用于當所述自身的tcp連接池被激活后,判斷自身控制器的io讀寫量的大?。划斪陨砜刂破鞯膇o讀寫量大于第一預設讀寫量時,關閉自身的tcp連接池中第二預設數量的連接,以實現所述自身的tcp連接池中的連接數量為空閑預設數量;當自身控制器的io讀寫量小于第二預設讀寫量時,保持所述自身的tcp連接池中的連接數量為空閑預設數量;其中,第一預設讀寫量大于第二預設讀寫量。
10.如權利要求6所述的控制器,其特征在于,所述控制器還用于當自身控制器宕機后重啟時,與對端控制器的tcp連接池進行交互,以激活所述對端控制器的tcp連接池,并進行自身控制器的初始化,調整自身的tcp連接池的連接數量為初始預設數量;