本發(fā)明涉及計算機技術領域,尤其涉及一種應用優(yōu)化策略確定方法、裝置及系統(tǒng)。
背景技術:目前,應用(APP,Application)在實際運行和使用的過程中,為了更好的使用應用為用戶提供服務,通常會定期的對應用進行性能優(yōu)化。在確定對應用優(yōu)化的優(yōu)化策略時,一般需要參考當前應用的運行狀況數(shù)據(jù)進行確定。云計算中的平臺即服務(PaaS,Platform-as-a-server)模式,是將軟件研發(fā)平臺作為一種服務提供給用戶,用戶僅需將應用托管至PaaS平臺上,應用的運維、數(shù)據(jù)監(jiān)控和數(shù)據(jù)統(tǒng)計等工作均由PaaS平臺來完成?,F(xiàn)有針對PaaS平臺上運行的應用確定優(yōu)化策略的方案中,由于無法監(jiān)控到應用的運行狀況數(shù)據(jù),所以僅能在本地對應用在PaaS平臺上的運行環(huán)境進行模擬,并在模擬環(huán)境中運行該應用,得到運行狀況數(shù)據(jù),作為確定對該應用進行性能優(yōu)化的優(yōu)化策略所參考的運行狀況數(shù)據(jù)。然而,由于應用在PaaS平臺上運行時的真實環(huán)境受很多因素的影響,所以通過線下環(huán)境模擬很難準確的模擬真實的實際運行環(huán)境,從而使得根據(jù)模擬環(huán)境中運行該應用得到的運行狀況數(shù)據(jù)所確定的優(yōu)化策略,可能不適合該應用在真實運行環(huán)境中的運行,即造成由于確定的優(yōu)化策略不合理,而使得優(yōu)化效果較差的問題。
技術實現(xiàn)要素:本發(fā)明實施例提供一種應用優(yōu)化策略確定方法、裝置及系統(tǒng),用以解決現(xiàn)有技術中存在的針對PaaS平臺上運行的應用確定的優(yōu)化策略不合理的問題。本發(fā)明實施例提供一種應用優(yōu)化策略確定方法,應用于PaaS平臺上運行的第一應用,包括:所述第一應用在預設時間段內獲取自身所位于進程的運行狀況數(shù)據(jù),作為所述PaaS平臺上運行的且與所述第一應用位于同一進程中的第二應用的運行狀況數(shù)據(jù);基于獲取的所述第二應用的運行狀況數(shù)據(jù),確定對所述第二應用進行性能優(yōu)化的優(yōu)化策略。本發(fā)明實施例還提供一種應用優(yōu)化策略確定裝置,集成于PaaS平臺上運行的第一應用,包括:數(shù)據(jù)獲取單元,用于在預設時間段內獲取自身所位于進程的運行狀況數(shù)據(jù),作為所述PaaS平臺上運行的且與所述第一應用位于同一進程中的第二應用的運行狀況數(shù)據(jù);策略確定單元,用于基于獲取的所述第二應用的運行狀況數(shù)據(jù),確定對所述第二應用進行性能優(yōu)化的優(yōu)化策略。本發(fā)明實施例還提供一種應用優(yōu)化策略確定系統(tǒng),包括:PaaS平臺上運行的第一應用,以及所述PaaS平臺上運行的且與所述第一應用位于同一進程中的第二應用,其中:所述第一應用,用于在預設時間段內獲取自身所位于進程的運行狀況數(shù)據(jù),作為所述PaaS平臺上運行的且與所述第一應用位于同一進程中的第二應用的運行狀況數(shù)據(jù);并基于獲取的所述第二應用的運行狀況數(shù)據(jù),確定對所述第二應用進行性能優(yōu)化的優(yōu)化策略。本發(fā)明有益效果包括:本發(fā)明實施例提供的方法中,在針對PaaS平臺上運行的應用確定優(yōu)化策略時,可以由第一應用獲取自身所位于進程的運行狀況數(shù)據(jù),作為PaaS平臺上運行的且與第一應用位于同一進程中的第二應用的運行狀況數(shù)據(jù),并基于獲取的第二應用的運行狀況數(shù)據(jù),確定對第二應用進行性能優(yōu)化的優(yōu)化策略。由于第一應用和第二應用在PaaS平臺上運行時位于同一個進程,所以第一應用和第二應用各自所位于進程的運行狀況數(shù)據(jù)相同,所以該方法中第一應用獲取自身所位于進程的運行狀況數(shù)據(jù),可以作為第二應用的運行狀況數(shù)據(jù),從而能夠基于第二應用實際運行的運行狀況數(shù)據(jù),針對第二應用確定出更合理的優(yōu)化策略。本申請的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本申請而了解。本申請的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現(xiàn)和獲得。附圖說明附圖用來提供對本發(fā)明的進一步理解,并且構成說明書的一部分,與本發(fā)明實施例一起用于解釋本發(fā)明,并不構成對本發(fā)明的限制。在附圖中:圖1為本發(fā)明實施例提供的應用優(yōu)化策略確定方法的流程圖;圖2為本發(fā)明實施例提供的基于運行狀況數(shù)據(jù)確定優(yōu)化策略的處理流程圖之一;圖3為本發(fā)明實施例提供的基于運行狀況數(shù)據(jù)確定優(yōu)化策略的處理流程圖之二;圖4為本發(fā)明實施例提供的應用優(yōu)化策略確定裝置的結構示意圖;圖5為本發(fā)明實施例提供的應用優(yōu)化策略確定系統(tǒng)的結構示意圖。具體實施方式為了給出使得針對PaaS平臺上運行的應用確定的優(yōu)化策略更合理的實現(xiàn)方案,本發(fā)明實施例提供了一種應用優(yōu)化策略確定方法、裝置及系統(tǒng),以下結合說明書附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。本發(fā)明實施例提供一種應用優(yōu)化策略確定方法,應用于PaaS平臺上運行的第一應用,如圖1所示,包括:步驟101、第一應用在預設時間段內獲取自身所位于進程的運行狀況數(shù)據(jù),作為PaaS平臺上運行的且與第一應用位于同一進程中的第二應用的運行狀況數(shù)據(jù)。步驟102、基于獲取的第二應用的運行狀況數(shù)據(jù),確定對第二應用進行性能優(yōu)化的優(yōu)化策略。在上述應用優(yōu)化策略確定方法中,PaaS平臺上運行的第二應用作為被優(yōu)化應用,并由與第二應用位于同一進程的第一應用獲取第二應用的運行狀況數(shù)據(jù),并基于獲取的第二應用的運行狀況數(shù)據(jù),確定對第二應用進行性能優(yōu)化的優(yōu)化策略。由于第一應用也是運行在PaaS平臺上的應用,所以其能夠較容易的從應用所位于進程內獲取到運行狀況數(shù)據(jù)。由于一個應用所位于進程的運行狀況數(shù)據(jù)可以表示該應用的運行狀況,即可以作為該應用的運行狀況數(shù)據(jù),并且,上述方案中第一應用與第二應用位于同一進程,所以,第一應用獲取的自身所位于進程的運行狀況數(shù)據(jù),是可以作為第二應用的運行狀況數(shù)據(jù)的,從而能夠獲取到第二應用實際運行的運行狀況數(shù)據(jù),為后續(xù)確定出更合理的優(yōu)化策略做準備。上述步驟101中,第一應用在獲取自身所位于進程的運行狀況數(shù)據(jù)時,具體可以通過自身包括的Java管理擴展(JMX,JavaManagementExtensions),確定自身所位于進程的待獲取運行狀況數(shù)據(jù)的數(shù)據(jù)接口,并從數(shù)據(jù)接口獲取自身所位于進程的運行狀況數(shù)據(jù)。JMX是一個為應用程序、設備、系統(tǒng)等植入管理功能的框架。JMX可以跨越一系列異構操作系統(tǒng)平臺、系統(tǒng)體系結構和網(wǎng)絡傳輸協(xié)議,靈活的開發(fā)無縫集成的系統(tǒng)、網(wǎng)絡和服務管理應用。本發(fā)明實施例中,具體如何通過JMX確定進程的待獲取運行狀況數(shù)據(jù)的數(shù)據(jù)接口,以及從數(shù)據(jù)接口獲取進程的運行狀況數(shù)據(jù),可以參照現(xiàn)有的JMX技術,在此不再進行詳細描述。本發(fā)明實施例中,所需要獲取的運行狀況數(shù)據(jù),可以根據(jù)需要確定應用哪些方面的優(yōu)化策略進行靈活設置,下面分別針對獲取的不同類型的運行狀況數(shù)據(jù),對如何基于獲取的第二應用的運行狀況數(shù)據(jù),確定對第二應用進行性能優(yōu)化的優(yōu)化策略進行詳細描述。當上述步驟101中在預設時間段內是周期獲取運行狀況數(shù)據(jù),并且每次獲取的運行狀況數(shù)據(jù)包括:監(jiān)控時間、堆內存初始化值、堆內存使用值、堆內存提交值和堆內存最大值,上述步驟102中可以采用如下方式確定對第二應用進行性能優(yōu)化的優(yōu)化策略:第一種方式:如圖2所示,包括如下步驟:步驟201、基于在預設時間段內每次獲取的第二應用的監(jiān)控時間、堆內存初始化值、堆內存使用值、堆內存提交值和堆內存最大值,確定在預設時間段內堆內存使用值的變化趨勢中的各峰值,以及相鄰峰值之間的間隔時間的平均間隔時間,其中,當一次獲取的堆內存使用值大于其相鄰兩次監(jiān)控的堆內存使用值時,該次獲取的堆內存使用值即可以作為峰值。步驟202、根據(jù)在預設時間段內,平均間隔時間與預設間隔時間閾值的大小關系,以及各峰值與對應的堆內存最大值的大小關系,確定對第二應用的堆內存的優(yōu)化策略,具體可以如下:當在預設時間段內,平均間隔時間小于預設間隔時間閾值,且各峰值越來越接近對應的堆內存最大值時,確定對第二應用減小堆內存的優(yōu)化策略,否則,可以確定對第二應用增大堆內存的優(yōu)化策略,也可以確定保持第二應用的堆內存不變的優(yōu)化策略。第二種方式:根據(jù)在預設時間段內堆內存提交值的變化趨勢,確定對第二應用的堆內存的優(yōu)化策略,具體可以如下:當在預設時間段內,堆內存提交值呈現(xiàn)增長的趨勢時,確定對第二應用減小堆內存的優(yōu)化策略;當在預設時間段內,堆內存提交值呈現(xiàn)下降的趨勢時,確定對第二應用增大堆內存的優(yōu)化策略。第三種方式:根據(jù)在預設時間段內,堆內存提交值與對應的堆內存最大值的大小關系,確定對第二應用的堆內存的優(yōu)化策略,具體可以如下:當在預設時間段內,堆內存提交值越來越接近對應的堆內存最大值時,確定對第二應用減小堆內存的優(yōu)化策略;當在預設時間段內,當大于設定數(shù)量的堆內存提交值與對應的堆內存最大值之間的差值大于預設差值閾值時,確定對第二應用減小堆內存的優(yōu)化策略。當上述步驟101中獲取的運行狀況數(shù)據(jù)包括:在預設時間段內進行應用垃圾回收的時間和次數(shù),上述步驟102可以采用如下方式確定對第二應用進行性能優(yōu)化的優(yōu)化策略,如圖3所示,包括:步驟301、基于獲取的第二應用的在預設時間段內進行應用垃圾回收的時間和次數(shù),確定在預設時間段內進行應用垃圾回收的平均回收時間,以及回收周期。其中,平均回收時間為多次進行應用垃圾回收的時間的平均值,回收周期可以為預設時間段的時長除以進行應用垃圾回收的次數(shù)得到的商值。步驟302、根據(jù)確定的平均回收時間與預設回收時間閾值的大小關系,以及回收周期與預設周期閾值的大小關系,確定對第二應用使用的應用垃圾回收算法進行性能優(yōu)化的優(yōu)化策略,具體可以如下:當平均回收時間大于預設回收時間閾值,且回收周期小于預設周期閾值時,確定對第二應用使用的應用垃圾回收算法進行調整的優(yōu)化策略,例如,將應用垃圾回收算法從單線程回收變更為并發(fā)標記清理(CMS,ConcurrentMarkSweep)算法;當平均回收時間大于預設回收時間閾值,且回收周期小于預設周期閾值時,也可以確定對第二應用增大堆內存的優(yōu)化策略,例如,應用垃圾回收為針對老年代堆內存時,可以確定對第二應用增大老年代堆內存的優(yōu)化策略。當上述步驟101中獲取的運行狀況數(shù)據(jù)包括:第一應用所位于進程包括的線程在預設時間段內處于各狀態(tài)的時間,上述步驟102可以采用如下方式確定對第二應用進行性能優(yōu)化的優(yōu)化策略:基于獲取的第二應用的其所位于進程包括的線程在預設時間段內處于各狀態(tài)的時間,確定對第二應用的程序代碼是否需要檢查的優(yōu)化策略,具體可以如下:線程所處于的狀態(tài)可以包括運行狀態(tài)、休眠狀態(tài)、等待狀態(tài)和監(jiān)視狀態(tài),例如,當一個線程長期處于等待狀態(tài)時,即處于等待狀態(tài)的時長大于狀態(tài)時長閾值時,確定對第二應用的程序代碼需要檢查的優(yōu)化策略,進一步的,還可以確定對第二應用的與該線程對應的程序代碼需要檢查的優(yōu)化策略,以便用戶能夠更有針對性更有效的對程序代碼進行檢查,具體檢查時,可以確定代碼中是否出現(xiàn)了死鎖或其它問題。當上述步驟101中獲取的運行狀況數(shù)據(jù)包括:CPU使用時間,上述步驟102可以采用如下方式確定對第二應用進行性能優(yōu)化的優(yōu)化策略:基于獲取的第二應用的CPU使用時間,確定對第二應用是否需要提高硬件配置的優(yōu)化策略,具體可以如下:當?shù)诙玫腃PU使用時間長期偏高時,如CPU使用時間大于預設使用時間閾值時,確定對第二應用需要提高硬件配置的優(yōu)化策略,具體可以確定將應用遷移到更高配置環(huán)境中的優(yōu)化策略,也可以確定提高應用目前所在環(huán)境的硬件配置的優(yōu)化策略。采用本發(fā)明實施例提供的上述應用優(yōu)化策略確定方法,由于第一應用和第二應用在PaaS平臺上運行時位于同一個進程,所以第一應用和第二應用各自所位于進程的運行狀況數(shù)據(jù)相同,所以該方法中第一應用獲取自身所位于進程的運行狀況數(shù)據(jù),可以作為第二應用的運行狀況數(shù)據(jù),從而能夠基于第二應用實際運行的運行狀況數(shù)據(jù),針對第二應用確定出更合理的優(yōu)化策略?;谕话l(fā)明構思,根據(jù)本發(fā)明上述實施例提供的應用優(yōu)化策略確定方法,相應地,本發(fā)明另一實施例還提供了一種應用優(yōu)化策略確定裝置,集成于PaaS平臺上運行的第一應用,其結構示意圖如圖4所示,具體包括:數(shù)據(jù)獲取單元401,用于在預設時間段內獲取自身所位于進程的運行狀況數(shù)據(jù),作為所述PaaS平臺上運行的且與所述第一應用位于同一進程中的第二應用的運行狀況數(shù)據(jù);策略確定單元402,用于基于獲取的所述第二應用的運行狀況數(shù)據(jù),確定對所述第二應用進行性能優(yōu)化的優(yōu)化策略。進一步的,所述PaaS平臺為JavaPaaS平臺;數(shù)據(jù)獲取單元401,具體用于通過自身包括的Java管理擴展JMX,確定自身所位于進程的待獲取運行狀況數(shù)據(jù)的數(shù)據(jù)接口;并在預設時間段內從所述數(shù)據(jù)接口周期獲取自身所位于進程的運行狀況數(shù)據(jù)。進一步的,在預設時間段內每次獲取的運行狀況數(shù)據(jù)包括:監(jiān)控時間、堆內存初始化值、堆內存使用值、堆內存提交值和堆內存最大值;策略確定單元402,具體用于基于獲取的所述第二應用的監(jiān)控時間、堆內存初始化值、堆內存使用值、堆內存提交值和堆內存最大值,確定在所述預設時間段內堆內存使用值的變化趨勢中的各峰值,以及相鄰峰值之間的間隔時間的平均間隔時間;并根據(jù)在所述預設時間段內,所述平均間隔時間與預設間隔時間閾值的大小關系,以及所述各峰值與對應的堆內存最大值的大小關系,確定對所述第二應用的堆內存的優(yōu)化策略;或者根據(jù)在所述預設時間段內堆內存提交值的變化趨勢,確定對所述第二應用的堆內存的優(yōu)化策略;或者根據(jù)在所述預設時間段內,堆內存提交值與對應的堆內存最大值的大小關系,確定對所述第二應用的堆內存的優(yōu)化策略。進一步的,獲取的運行狀況數(shù)據(jù)包括:在預設時間段內進行應用垃圾回收的時間和次數(shù);策略確定單元402,具體用于基于獲取的所述第二應用的在預設時間段內進行應用垃圾回收的時間和次數(shù),確定在所述預設時間段內進行應用垃圾回收的平均回收時間,以及回收周期;并根據(jù)確定的所述平均回收時間與預設回收時間閾值的大小關系,以及所述回收周期與預設周期閾值的大小關系,確定對所述第二應用使用的應用垃圾回收算法進行優(yōu)化的優(yōu)化策略。進一步的,獲取的運行狀況數(shù)據(jù)包括:所述第一應用所位于進程包括的線程在所述預設時間段內處于各狀態(tài)的時間;策略確定單元402,具體用于基于獲取的所述第二應用的其所位于進程包括的線程在所述預設時間段內處于各狀態(tài)的時間,確定對所述第二應用的程序代碼是否需要檢查的優(yōu)化策略。進一步的,獲取的運行狀況數(shù)據(jù)包括:中央處理器CPU使用時間;策略確定單元402,具體用于基于獲取的所述第二應用的所述CPU使用時間,確定對所述第二應用是否需要提高硬件配置的優(yōu)化策略。上述各單元的功能可對應于圖1至圖3所示流程中的相應處理步驟,在此不再贅述?;谕话l(fā)明構思,根據(jù)本發(fā)明上述實施例提供的應用優(yōu)化策略確定方法,相應地,本發(fā)明另一實施例還提供了一種應用優(yōu)化策略確定系統(tǒng),其結構示意圖如圖5所示,包括:PaaS平臺上運行的第一應用501,以及PaaS平臺上運行的且與第一應用501位于同一進程中的第二應用502,其中:第一應用501,用于在預設時間段內獲取自身所位于進程的運行狀況數(shù)據(jù),作為所述PaaS平臺上運行的且與所述第一應用501位于同一進程中的第二應用502的運行狀況數(shù)據(jù);并基于獲取的所述第二應用502的運行狀況數(shù)據(jù),確定對所述第二應用502進行性能優(yōu)化的優(yōu)化策略。上述系統(tǒng)中第一應用501的其它功能可對應于圖1至圖3所示流程中的相應處理步驟,在此不再贅述。綜上所述,本發(fā)明實施例提供的方案,包括:第一應用在預設時間段內獲取自身所位于進程的運行狀況數(shù)據(jù),作為PaaS平臺上運行的且與第一應用位于同一進程中的第二應用的運行狀況數(shù)據(jù);并基于獲取的第二應用的運行狀況數(shù)據(jù),確定對第二應用進行性能優(yōu)化的優(yōu)化策略。采用本發(fā)明實施例提供的方案,能夠基于PaaS平臺上的應用實際運行的運行狀況數(shù)據(jù),針對該應用確定出更合理的優(yōu)化策略。本申請的實施例所提供的應用優(yōu)化策略確定裝置可通過計算機程序實現(xiàn)。本領域技術人員應該能夠理解,上述的模塊劃分方式僅是眾多模塊劃分方式中的一種,如果劃分為其他模塊或不劃分模塊,只要應用優(yōu)化策略確定裝置具有上述功能,都應該在本申請的保護范圍之內。本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。