0041]S33、計算所述平均值占線程池最優(yōu)最大值的百分比S,其中所述最優(yōu)最大值為當(dāng)前線程池使用的最大值;
[0042]S34、判斷所述百分比S是否大于預(yù)定閾值P,優(yōu)選地,預(yù)定閾值P為90%;
[0043]S35、如果判斷所述百分比S大于預(yù)定閾值P,判斷所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率是否均小于預(yù)定閾值L,優(yōu)選地,預(yù)定閾值L為75%,如果否,則線程池最優(yōu)最大值不作調(diào)整,返回步驟31;
[0044]S36、在判斷所述百分比S大于預(yù)定閾值P且判斷所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率均小于預(yù)定閾值L時,增大線程池最優(yōu)最大值。優(yōu)選地,如果所述平均值占線程池最優(yōu)最大值的百分比大于90%且線程池所在設(shè)備的CHJ和內(nèi)存使用率均小于75%,則將線程池的最優(yōu)最大值調(diào)整為原來值的110%。
[0045]S37、如果判斷所述百分比S不大于預(yù)定閾值P,判斷所述百分比S是否小于預(yù)定閾值Q,其中P大于Q,如果否,則線程池最優(yōu)最大值不作調(diào)整,返回步驟31。優(yōu)選地,預(yù)定閾值P為90%,預(yù)定閾值Q為80 %。
[0046]其中,在應(yīng)用服務(wù)器啟動后,線程池最優(yōu)最大值可能等于用戶配置線程池最大值,也可能大于用戶配置線程池最大值。優(yōu)選地,在判斷線程池最優(yōu)最大值等于用戶配置線程池最大值時,若判斷所述百分比S不大于預(yù)定閾值P,線程池最優(yōu)最大值不作調(diào)整,則返回步驟31;在判斷線程池最優(yōu)最大值大于用戶配置線程池最大值時,若判斷所述百分比S不大于預(yù)定閾值P,則判斷所述百分比S是否小于預(yù)定閾值Q。
[0047]S38、如果判斷所述百分比S小于預(yù)定閾值Q,則計算所述平均值占用戶配置線程池最大值的百分比R,判斷所述百分比R是否小于預(yù)定閾值Q,如果否,則返回步驟31;
[0048]S39、如果判斷所述百分比S且所述百分比R均小于預(yù)定閾值Q,則將當(dāng)前線程池最優(yōu)最大值設(shè)置為用戶配置線程池最大值。優(yōu)選地,如果判斷所述百分比S且所述百分比R均小于預(yù)定閾值80%,將當(dāng)前線程池最優(yōu)最大值設(shè)置為用戶配置線程池最大值。
[0049]本發(fā)明實(shí)施例還提供一種用于調(diào)整線程池容量的裝置I,如圖3所示,所述裝置I包括:
[0050]采集模塊11,用于定期采集線程池使用線程數(shù);
[0051]第一計算模塊12,用于計算預(yù)定時間內(nèi)連續(xù)多次采集到的線程池使用線程數(shù)的平均值;
[0052]第二計算模塊13,用于計算所述平均值占線程池最優(yōu)最大值的百分比S,其中所述最優(yōu)最大值為當(dāng)前線程池使用的最大值并且所述線程池最優(yōu)最大值的初始值被設(shè)置為用戶配置線程池最大值;
[0053]調(diào)整模塊14,用于根據(jù)所述百分比S以及所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率,調(diào)整線程池最優(yōu)最大值。
[0054]可選地,所述裝置還包括第一判斷模塊;所述第一判斷模塊用于判斷已經(jīng)啟動線程池自調(diào)優(yōu)模式。
[0055]可選地,所述裝置還包括第二判斷模塊;所述第二判斷模塊用于判斷所述百分比S是否大于預(yù)定閾值P,如果是,則判斷所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率是否均小于預(yù)定閾值L;所述調(diào)整模塊用于在所述百分比S大于預(yù)定閾值P且所述線程池所在設(shè)備的(PU的使用率和內(nèi)存的使用率均小于預(yù)定閾值L時,增大線程池最優(yōu)最大值。
[0056]可選地,所述裝置還包括第三判斷模塊和第三計算模塊;所述第三判斷模塊用于判斷所述百分比S是否大于預(yù)定閾值P,如果否,則判斷所述百分比S是否小于預(yù)定閾值Q,其中P大于Q;所述第三計算模塊用于在判斷所述百分比S小于預(yù)定閾值Q時,計算所述平均值占用戶配置線程池最大值的百分比R;所述第三判斷模塊還用于判斷所述百分比R是否小于預(yù)定閾值Q;所述調(diào)整模塊用于在判斷所述百分比S和所述百分比R均小于預(yù)定閾值Q時,將當(dāng)前線程池最優(yōu)最大值設(shè)置為用戶配置線程池最大值。
[0057]可選地,所述第三判斷模塊用于在判斷所述百分比S不大于預(yù)定閾值P且判斷所述最優(yōu)最大值大于用戶配置最大值時,判斷所述百分比S是否小于預(yù)定閾值Q。
[0058]本發(fā)明實(shí)施例提供的用于調(diào)整線程池容量的裝置,通過采集線程池使用狀況,并結(jié)合服務(wù)器所在設(shè)備的CPU和內(nèi)存使用率,自動調(diào)整線程池的最大值,從而使線程池所在設(shè)備提供更強(qiáng)大的服務(wù)支撐能力,解決由于參數(shù)配置不當(dāng)導(dǎo)致的性能瓶頸,能夠提高線程池所在設(shè)備的響應(yīng)速度。
[0059]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機(jī)存儲記憶體(Random AccessMemory,RAM)等。
[0060]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【主權(quán)項】
1.一種用于調(diào)整線程池容量的方法,其特征在于,包括: 定期采集線程池使用線程數(shù); 計算預(yù)定時間內(nèi)連續(xù)多次采集到的線程池使用線程數(shù)的平均值; 計算所述平均值占線程池最優(yōu)最大值的百分比S,其中所述最優(yōu)最大值為當(dāng)前線程池使用的最大值并且所述線程池最優(yōu)最大值的初始值被設(shè)置為用戶配置線程池最大值; 根據(jù)所述百分比S以及所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率,調(diào)整線程池最優(yōu)最大值。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述定期采集線程池使用線程數(shù)之前,還包括:判斷已經(jīng)啟動線程池自調(diào)優(yōu)模式。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述根據(jù)所述百分比S以及所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率,調(diào)整線程池最優(yōu)最大值包括: 判斷所述百分比S是否大于預(yù)定閾值P; 如果是,則判斷所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率是否均小于預(yù)定閾值L; 如果是,則增大線程池最優(yōu)最大值。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述百分比S以及所述線程池所在設(shè)備的(PU的使用率和內(nèi)存的使用率,調(diào)整線程池最優(yōu)最大值包括: 判斷所述百分比S是否大于預(yù)定閾值P,如果否,則判斷所述百分比S是否小于預(yù)定閾值Q,其中P大于Q; 如果是,則計算所述平均值占用戶配置線程池最大值的百分比R; 判斷所述百分比R是否小于預(yù)定閾值Q; 如果是,則將當(dāng)前線程池最優(yōu)最大值設(shè)置為用戶配置線程池最大值。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述判斷所述百分比S是否小于預(yù)定閾值Q之前,所述方法還包括:判斷所述當(dāng)前線程池最優(yōu)最大值是否大于用戶配置線程池最大值,若是,則判斷所述百分比S是否小于預(yù)定閾值Q。6.一種用于調(diào)整線程池容量的裝置,其特征在于,包括: 采集模塊,用于定期采集線程池使用線程數(shù); 第一計算模塊,用于計算預(yù)定時間內(nèi)連續(xù)多次采集到的線程池使用線程數(shù)的平均值; 第二計算模塊,用于計算所述平均值占線程池最優(yōu)最大值的百分比S,其中所述最優(yōu)最大值為當(dāng)前線程池使用的最大值并且所述線程池最優(yōu)最大值的初始值被設(shè)置為用戶配置線程池最大值; 調(diào)整模塊,用于根據(jù)所述百分比S以及所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率,調(diào)整線程池最優(yōu)最大值。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括第一判斷模塊; 所述第一判斷模塊,用于判斷已經(jīng)啟動線程池自調(diào)優(yōu)模式。8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,還包括第二判斷模塊; 所述第二判斷模塊,用于判斷所述百分比S是否大于預(yù)定閾值P,如果是,則判斷所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率是否均小于預(yù)定閾值L; 所述調(diào)整模塊,用于在所述百分比S大于預(yù)定閾值P且所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率均小于預(yù)定閾值L時,增大線程池最優(yōu)最大值。9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括第三判斷模塊和第三計算模塊; 所述第三判斷模塊,用于判斷所述百分比S是否大于預(yù)定閾值P,如果否,則判斷所述百分比S是否小于預(yù)定閾值Q,其中P大于Q; 所述第三計算模塊,用于在判斷所述百分比S小于預(yù)定閾值Q時,計算所述平均值占用戶配置線程池最大值的百分比R; 所述第三判斷模塊,還用于判斷所述百分比R是否小于預(yù)定閾值Q; 所述調(diào)整模塊,用于在判斷所述百分比S和所述百分比R均小于預(yù)定閾值Q時,將當(dāng)前線程池最優(yōu)最大值設(shè)置為用戶配置線程池最大值。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第三判斷模塊,用于在判斷所述百分比S不大于預(yù)定閾值P且判斷所述最優(yōu)最大值大于用戶配置最大值時,判斷所述百分比S是否小于預(yù)定閾值Q。
【專利摘要】本發(fā)明提供一種用于調(diào)整線程池容量的方法及裝置。所述方法包括:定期采集線程池使用線程數(shù);計算預(yù)定時間內(nèi)連續(xù)多次采集到的線程池使用線程數(shù)的平均值;計算所述平均值占線程池最優(yōu)最大值的百分比S,其中所述最優(yōu)最大值為當(dāng)前線程池使用的最大值并且所述線程池最優(yōu)最大值的初始值被設(shè)置為用戶配置線程池最大值;根據(jù)所述百分比S以及所述線程池所在設(shè)備的CPU的使用率和內(nèi)存的使用率,調(diào)整線程池最優(yōu)最大值。本發(fā)明能夠使線程池所在設(shè)備提供更強(qiáng)大的服務(wù)支撐能力,解決由于參數(shù)配置不當(dāng)導(dǎo)致的性能瓶頸,能夠提高線程池所在設(shè)備的響應(yīng)速度。
【IPC分類】G06F9/50
【公開號】CN105630606
【申請?zhí)枴緾N201510974829
【發(fā)明人】趙欣, 高隆林, 韓峰, 何忠勝, 李得亮
【申請人】山東中創(chuàng)軟件工程股份有限公司
【公開日】2016年6月1日
【申請日】2015年12月22日