本發明涉及計算機技術領域,具體涉及一種性能監控方法及裝置。
背景技術:
隨著應用系統在各行各業的普及,應用系統的業務處理量也日益增加,應用系統軟件版本的升級更新也越來越快,對應用系統的效率,安全,風險預估等要求也越來越高。
軟件開發行業往往關注應用系統投產前的測試工作,也關注投產后生產問題的跟進,但應用系統引而未發的系統風險,隱形問題,則缺少有效的預防與監控手段。
在現有技術中,應用系統的性能分析一般通過手工收集應用系統的運行數據,通過人工分析運行數據對應用系統的性能進行監控,但是人工統計數據的方法效率低下,處理時間長,且容易遺漏,這樣對生產問題或者隱藏風險無法及時預知。
技術實現要素:
有鑒于此,本發明提供一種性能監控方法及裝置,以解決現有技術中對應用系統的性能監控效率低下的技術問題。
為解決上述問題,本發明提供的技術方案如下:
一種性能監控方法,所述方法包括:
獲取應用系統的日志文件;
從所述日志文件獲取預設時間段內的任務總量以及所述預設時間段內的單位時間任務量;
從所述日志文件獲取各個任務的執行時間以及各個任務的執行時間耗時分布;
在所述執行時間耗時分布中獲取各個任務的數據庫執行時間;
當所述預設時間段內的任務總量、所述預設時間段內的單位時間任務量、所述各個任務的執行時間、所述各個任務的執行時間耗時分布以及所述各個任務的數據庫執行時間中的一項或多項超出預設范圍時,產生預警信息。
相應的,所述方法還包括:
從所述日志文件獲取數據庫的執行信息,從所述數據庫的執行信息中獲取數據庫性能指標數據;
對所述數據庫性能指標數據按占用數據庫時長進行排序。
相應的,所述方法還包括:
從所述日志文件中獲取批量作業的數據庫執行時間;
當所述批量作業的數據庫執行時間超出預設范圍時,產生預警信息。
相應的,當所述預設時間段內的任務總量、所述預設時間段內的單位時間任務量、所述各個任務的執行時間、所述各個任務的執行時間耗時分布以及所述各個任務的數據庫執行時間中的一項或多項超出預設范圍時,產生預警信息,包括:
計算所述各個任務的執行時間的平均值以及所述各個任務的數據庫執行時間的平均值;
當某一任務的執行時間超過執行時間閾值,或者,某一任務的執行時間與所述各個任務的執行時間的平均值之差大于第一閾值,或者,某一任務的數據庫執行時間超過數據庫執行時間閾值,或者,某一任務的數據庫執行時間與所述各個任務的數據庫執行時間的平均值之差大于第二閾值,或者,所述預設時間段內的任務總量大于第三閾值,或者,所述預設時間段內的單位時間任務量大于第四閾值,或者,所述各個任務的執行時間耗時分布超出預設范圍,產生預警信息。
相應的,所述方法還包括:
根據所述預設時間段內的任務總量、所述預設時間段內的單位時間任務量、所述各個任務的執行時間、所述各個任務的執行時間耗時分布、所述各個任務的數據庫執行時間、所述數據庫性能指標數據以及所述批量作業的數據庫執行時間生成對應的圖表進行顯示。
一種性能監控裝置,所述裝置包括:
第一獲取單元,用于獲取應用系統的日志文件;
第二獲取單元,用于從所述日志文件獲取預設時間段內的任務總量以及所述預設時間段內的單位時間任務量;
第三獲取單元,用于從所述日志文件獲取各個任務的執行時間以及各個任務的執行時間耗時分布;
第四獲取單元,用于在所述執行時間耗時分布中獲取各個任務的數據庫執行時間;
預警單元,用于當所述預設時間段內的任務總量、所述預設時間段內的單位時間任務量、所述各個任務的執行時間、所述各個任務的執行時間耗時分布以及所述各個任務的數據庫執行時間中的一項或多項超出預設范圍時,產生預警信息。
相應的,所述裝置還包括:
第五獲取單元,用于從所述日志文件獲取數據庫的執行信息,從所述數據庫的執行信息中獲取數據庫性能指標數據;
排序單元,用于對所述數據庫性能指標數據按占用數據庫時長進行排序。
相應的,所述裝置還包括:
第六獲取單元,用于從所述日志文件中獲取批量作業的數據庫執行時間;
所述預警單元,還用于當所述批量作業的數據庫執行時間超出預設范圍時,產生預警信息。
相應的,所述預警單元包括:
計算子單元,用于計算所述各個任務的執行時間的平均值以及所述各個任務的數據庫執行時間的平均值;
預警子單元,用于當某一任務的執行時間超過執行時間閾值,或者,某一任務的執行時間與所述各個任務的執行時間的平均值之差大于第一閾值,或者,某一任務的數據庫執行時間超過數據庫執行時間閾值,或者,某一任務的數據庫執行時間與所述各個任務的數據庫執行時間的平均值之差大于第二閾值,或者,所述預設時間段內的任務總量大于第三閾值,或者,所述預設時間段內的單位時間任務量大于第四閾值,或者,所述各個任務的執行時間耗時分布超出預設范圍,產生預警信息。
相應的,所述裝置還包括:
顯示單元,用于根據所述預設時間段內的任務總量、所述預設時間段內的單位時間任務量、所述各個任務的執行時間、所述各個任務的執行時間耗時分布、所述各個任務的數據庫執行時間、所述數據庫性能指標數據以及所述批量作業的數據庫執行時間生成對應的圖表進行顯示。
由此可見,本發明實施例具有如下有益效果:
本發明實施例從應用系統的日志文件中可以獲取各種性能數據,例如預設時間段內的任務總量、預設時間段內的單位時間任務量、各個任務的執行時間、各個任務的執行時間耗時分布、各個任務的數據庫執行時間等等,通過與各個性能數據的預設范圍進行比較,篩選出可疑性能數據,及時產生預警信息,可以提醒生產運維人員介入分析,修復系統潛在問題,提高性能監控效率,降低運營風險。
附圖說明
圖1為本發明實施例中提供的性能監控方法實施例的流程圖;
圖2為本發明實施例中提供的性能監控裝置實施例的示意圖。
具體實施方式
為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明實施例作進一步詳細的說明。
本發明實施例針對現有技術中人工統計應用系統的運行數據,使實現應用系統的性能監控效率低下,處理時間長,且容易遺漏,無法及時預知生產問題或者隱藏風險的技術問題,提出監控應用系統的運行日志,及時發現應用系統中運行數據中異常變化點,并將數據前后變化線性收集,提醒生產運維人員介入分析,修復系統潛在問題,提高系統執行效能,降低運營風險。
基于上述思想,參見圖1所示,示出了本發明實施例中提供的性能監控方法實施例,可以包括以下步驟:
步驟101:獲取應用系統的日志文件。
在實際應用中,本發明實施例可以應用于IBM Z/OS主機環境,主機環境中可以包括多個CICS,CICS是IBM公司的主機交易服務器。獲取應用系統的日志文件可以包括從SMF(System Monitoring Facility,系統監控工具)LOG中獲取主機環境的日志文件。
步驟102:從日志文件獲取預設時間段內的任務總量以及預設時間段內的單位時間任務量。
在實際應用中任務可以為運行的交易,則可以根據日志文件按照時間間隔統計整個主機環境的交易總量以及每秒交易峰值,也可以按照時間間隔統計各個CICS的交易總量以及每秒交易峰值。
步驟103:從日志文件獲取各個任務的執行時間以及各個任務的執行時間耗時分布。
同時,可以按照交易標識從日志文件獲取每個交易的執行時間以及各個交易的執行時間耗時分布,一個交易的執行時間耗時分布中可以包括該交易的數據庫執行時間、該交易的處理器耗時等等處理一個交易涉及到的各個環節的分別消耗時間。
步驟104:在執行時間耗時分布中獲取各個任務的數據庫執行時間。
在本實施例中可以按交易標識統計聯機時段各個交易的數據庫執行時間。
另外,在本發明的一些可能的實現方式中,本發明實施例中提供的性能監控方法還可以包括:
從日志文件獲取數據庫的執行信息,從數據庫的執行信息中獲取數據庫性能指標數據;
對數據庫性能指標數據按占用數據庫時長進行排序。
在實際應用中,可以按PLAN統計數據庫的執行信息,數據庫的執行信息中包括數據庫性能指標數據,數據庫性能指標數據可以包括DB2CL2、LOCK/LATCH、SYNCHRON.I/O、UPDATE COMMIT、PAGE LATCH、GLOBAL CONTENTION等比較有代表性的數據庫性能指標數據。
對數據庫性能指標數據按占用數據庫時長進行排序,可以獲得一段時間內占用數據庫消耗時間占比較多的數據庫性能指標數據,從而及時發現異常的數據。
在本發明的一些可能的實現方式中,本發明實施例中提供的性能監控方法還可以包括:
從日志文件中獲取批量作業的數據庫執行時間。
在本實施例中可以在批量作業運行時段統計批量作業的數據庫執行時間。
從而本發明實施例可以通過日志文件獲得各項性能數據,例如預設時間段內的任務總量、預設時間段內的單位時間任務量、各個任務的執行時間、各個任務的執行時間耗時分布以及各個任務的數據庫執行時間、數據庫性能指標數據以及批量作業的數據庫執行時間等等,可以將各項性能數據保存在歷史數據庫中,為未來的風險問題預見分析和歷史問題的分析提供依據。
步驟105:當預設時間段內的任務總量、預設時間段內的單位時間任務量、各個任務的執行時間、各個任務的執行時間耗時分布以及各個任務的數據庫執行時間中的一項或多項超出預設范圍時,產生預警信息。
通過比較各項性能數據與其對應的預設范圍之間的關系,可以篩選出可以性能數據,產生預警信息。
在本發明的一些可能的實現方式中,本步驟的實現可以包括:
計算各個任務的執行時間的平均值以及各個任務的數據庫執行時間的平均值;
當某一任務的執行時間超過執行時間閾值,或者,某一任務的執行時間與各個任務的執行時間的平均值之差大于第一閾值,或者,某一任務的數據庫執行時間超過數據庫執行時間閾值,或者,某一任務的數據庫執行時間與各個任務的數據庫執行時間的平均值之差大于第二閾值,或者,預設時間段內的任務總量大于第三閾值,或者,預設時間段內的單位時間任務量大于第四閾值,或者,各個任務的執行時間耗時分布超出預設范圍,產生預警信息。
在本發明的一些可能的實現方式中,還可以當批量作業的數據庫執行時間超出預設范圍時,產生預警信息。
也即對于單個任務的執行時間過長或者超出任務執行時間的平均值過多,可以認為該任務的執行過程可能存在異常,類似的,對于單個任務的數據庫執行時間過長或者超出數據庫執行時間的平均值過多,可以認為執行該任務時讀寫數據庫的過程可能存在異常;當任務總量過多或者單位時間任務量過多時,可以認為主機環境的負載壓力比較大,可以產生預警提示;而當批量作業的數據庫執行時間過長,或者,執行時間耗時分布中某項耗時較長時,也可以產生相應的預警信息。
在本發明的一些可能的實現方式中,本發明實施例中提供的性能監控方法還可以包括:
根據預設時間段內的任務總量、預設時間段內的單位時間任務量、各個任務的執行時間、各個任務的執行時間耗時分布、各個任務的數據庫執行時間、數據庫性能指標數據以及批量作業的數據庫執行時間生成對應的圖表進行顯示。
在本實施例中在將性能數據存入數據庫的同時,還可以生成相應的性能數據的圖表。
例如,在實際應用中某個CICS每5分鐘統計一次該時間段內的任務總量,可以按照時間與任務總量的關系生成折線圖,通過圖表分析各個CICS之間負載的差異。又例如,可以通過柱狀圖顯示各個數據庫性能指標數據,可以使分析更為直觀。
這樣,本發明實施例從應用系統的日志文件中可以獲取各種性能數據,例如預設時間段內的任務總量、預設時間段內的單位時間任務量、各個任務的執行時間、各個任務的執行時間耗時分布、各個任務的數據庫執行時間等等,通過與各個性能數據的預設范圍進行比較,篩選出可疑性能數據,及時產生預警信息,可以提醒生產運維人員介入分析,修復系統潛在問題,提高性能監控效率,降低運營風險。
參見圖2所示,示出了本發明實施例中提供的性能監控裝置實施例,可以包括:
第一獲取單元201,用于獲取應用系統的日志文件。
第二獲取單元202,用于從日志文件獲取預設時間段內的任務總量以及預設時間段內的單位時間任務量。
第三獲取單元203,用于從日志文件獲取各個任務的執行時間以及各個任務的執行時間耗時分布。
第四獲取單元204,用于在執行時間耗時分布中獲取各個任務的數據庫執行時間。
預警單元205,用于當預設時間段內的任務總量、預設時間段內的單位時間任務量、各個任務的執行時間、各個任務的執行時間耗時分布以及各個任務的數據庫執行時間中的一項或多項超出預設范圍時,產生預警信息。
在本發明的一些可能的實現方式中,本發明實施例中提供的性能監控裝置還可以包括:
第五獲取單元,用于從日志文件獲取數據庫的執行信息,從數據庫的執行信息中獲取數據庫性能指標數據;
排序單元,用于對數據庫性能指標數據按占用數據庫時長進行排序。
在本發明的一些可能的實現方式中,本發明實施例中提供的性能監控裝置還可以包括:
第六獲取單元,用于從日志文件中獲取批量作業的數據庫執行時間;
預警單元,還用于當批量作業的數據庫執行時間超出預設范圍時,產生預警信息。
在本發明的一些可能的實現方式中,預警單元可以包括:
計算子單元,用于計算各個任務的執行時間的平均值以及各個任務的數據庫執行時間的平均值;
預警子單元,用于當某一任務的執行時間超過執行時間閾值,或者,某一任務的執行時間與各個任務的執行時間的平均值之差大于第一閾值,或者,某一任務的數據庫執行時間超過數據庫執行時間閾值,或者,某一任務的數據庫執行時間與各個任務的數據庫執行時間的平均值之差大于第二閾值,或者,預設時間段內的任務總量大于第三閾值,或者,預設時間段內的單位時間任務量大于第四閾值,或者,各個任務的執行時間耗時分布超出預設范圍,產生預警信息。
在本發明的一些可能的實現方式中,本發明實施例中提供的性能監控裝置還可以包括:
顯示單元,用于根據預設時間段內的任務總量、預設時間段內的單位時間任務量、各個任務的執行時間、各個任務的執行時間耗時分布、各個任務的數據庫執行時間、數據庫性能指標數據以及批量作業的數據庫執行時間生成對應的圖表進行顯示。
這樣,本發明實施例從應用系統的日志文件中可以獲取各種性能數據,例如預設時間段內的任務總量、預設時間段內的單位時間任務量、各個任務的執行時間、各個任務的執行時間耗時分布、各個任務的數據庫執行時間等等,通過與各個性能數據的預設范圍進行比較,篩選出可疑性能數據,及時產生預警信息,可以提醒生產運維人員介入分析,修復系統潛在問題,提高性能監控效率,降低運營風險。
需要說明的是,本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的系統或裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。