TWI453604B - 在一或多個虛擬機器中產生應用層級相依性的系統與方法 - Google Patents

在一或多個虛擬機器中產生應用層級相依性的系統與方法 Download PDF

Info

Publication number
TWI453604B
TWI453604B TW100148887A TW100148887A TWI453604B TW I453604 B TWI453604 B TW I453604B TW 100148887 A TW100148887 A TW 100148887A TW 100148887 A TW100148887 A TW 100148887A TW I453604 B TWI453604 B TW I453604B
Authority
TW
Taiwan
Prior art keywords
application
information
virtual machine
control protocol
virtual
Prior art date
Application number
TW100148887A
Other languages
English (en)
Other versions
TW201324182A (zh
Inventor
Tzi Cker Chiueh
Hao Cheng Lin
Original Assignee
Ind Tech Res Inst
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ind Tech Res Inst filed Critical Ind Tech Res Inst
Priority to CN201110451868.XA priority Critical patent/CN103164288B/zh
Publication of TW201324182A publication Critical patent/TW201324182A/zh
Application granted granted Critical
Publication of TWI453604B publication Critical patent/TWI453604B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Description

在一或多個虛擬機器中產生應用層級相依性的系統與方法
本揭露係關於一種在一或多個虛擬機器(virtual machines,VM)中產生應用層級相依性(application-level dependencies)的系統與方法。
企業服務通常是由大量的服務伺服器(service server)且/或網路組成的。隨著網路成長與成熟的虛擬化計算技術的發展,企業化的應用變得更為複雜。例如,更多的用戶級的應用(user application)因為雲端計算(cloud computing),從個人電腦轉移到虛擬資料中心(virtual data center,VDC),終端用戶(end-user)藉由請求資料中心的服務伺服器所提供的服務,來使用遠端的應用(remote application)。分散式的應用變得效力更強也更廣泛。一個單一節點的效能問題或是失敗(failure)可以影響整個分散式系統的服務品質(quality of service,QoS)。相較於硬體的失敗或是資源耗盡(resource exhaustion),軟體問題是難以偵測的。所以,分散式的應用管理是需要的。
現今應用探索(application discovery)技術之一是藉由監視應用事件(application event)。此技術在每一實體伺服器(physical server)上裝設一代理(agent)。此代理監視由應用呈報的事件,並且將這些事件轉送至一中央應用管理伺服器(application management server)。此應用管理伺服器然後在一資料中心分析這些應用事件、探索運行在此資料中心的應用、以及找出這些應用之間的相依性。
現今應用相依性探索(application dependency discovery)技術之一是監視Java位元組-碼(byte-code)的中介軟體。此監視碼(instrumented)追蹤經由此中介軟體的請求,並且將追蹤記錄(tracking log)傳送至一中央應用管理伺服器。此應用管理伺服器然後分析這些記錄、瞭解應用之間的信息交換、以及探索這些應用之間的相依性。此技術是運行在藉由此監視的中介軟體來通訊的分散式應用上。
現今應用相依性探索(application dependency discovery)技術之一是在每一實體伺服器上查究網路的信息流通量(network traffic)。此技術在每一實體伺服器上裝設一代理來查究進出此伺服器之網路的信息流通量,並且將這些信息流通量的記錄(traffic log)傳送至一中央應用管理伺服器。此應用管理伺服器然後分析這些信息流通量的記錄、以產生這些實體伺服器之間的應用相依性。第一圖是藉由在每一實體伺服器上查究網路的信息流通量而產生出的應用相依性的一個範例。在此範例中,一交換的客戶端應用(exchange client application)經由熟知的網域名稱系統(Domain Name System,DNS)埠口(port)53而連接至一伺服器,經由熟知的活動目錄(Active Directory,AD)埠口88、135、1024、389而連接至另一伺服器,並且經由熟知的信箱(MailBox)埠口135而連接至另一伺服器。所產生的此交換的客戶端應用的應用相依圖(application dependency map)可如第一圖的範例所示。
以下是應用(application)、程序(process)、以及緒(thread)等用詞的背景說明。一應用是運行在實體機器或是虛擬機器上的可執行電腦軟體(executable computer siftware)。一應用可以創造出作業系統中的一或多個程序。一程序是作業系統中一執行環境(execution environment)的一基本單位,以運行用戶級的應用。此執行環境分配來自作業系統的資源並且擁有這些資源,所以運行在此程序裡的緒可以分享這些資源。這些資源可以包括記憶體、開啟檔案的描述器(open file’s descriptor)、開啟網路連線等。一緒是一電腦系統裡執行控制的一基本單位。可以有一或多個緒運行在一程序的執行環境中。一應用可以創造出多個程序來提供實體伺服器上的多元服務,並且每一程序可以創造出一或多個同時發生的緒,這些緒分享此程序所擁有的資源。凡是可以創造出多個程序的應用且在每一程序具有一單一緒的應用,則此應用稱為多程序應用(multi-process application)。在單一程序中可以創造出多個同時發生的緒的應用則為多緒應用(multi-thread application)。
本揭露實施例可提供一種在一或多個虛擬機器中產生應用層級相依性的系統與方法。
所揭露的一實施例是關於一種在一或多個虛擬機器中產生應用層級相依性的系統。此系統包含一應用效能管理(application performance management,APM)伺服器且運行在一實體機器上、一或多個攔截模組(intercepting module)、以及一或多個內部檢視模組(introspecting module)。此應用效能管理伺服器接受一請求並且傳送一指令到至少一轉送的幕後程式(forward daemon),以開啟此一或多個虛擬機器的至少一相關的虛擬機器的檢視狀態(inspect status)、以及產生一選出的應用的一應用層級軌跡(application trajectory)並且呈現出此選出的應用的應用層級相依性。每一攔截模組在此至少一相關的虛擬機器上傳輸控制協定發送與關閉相關的運行時,攔截一虛擬電腦作業系統。每一內部檢視模組執行傳輸控制協定(transmission control protocol,TCP)連線及執行緒資訊之虛擬機器的內部檢視。
所揭露的另一實施例是關於一種在一或多個虛擬機器中產生應用層級相依性的以電腦實現(computer-implemented)的方法。此方法包含:受控於一或多個實體伺服器下,並且此一或多個實體伺服器提供備有此一或多個虛擬機器的一虛擬環境;在此一或多個虛擬機器的至少一相關的虛擬機器上傳輸控制協定發送與關閉相關的運行時,攔截一虛擬電腦作業系統;執行傳輸控制協定連線及緒資訊之虛擬機器的內部檢視;以及產生一選出的應用的一應用層級軌跡並且從此應用層級軌跡呈現出此選出的應用的應用層級相依性。
茲配合下列圖示、實施例之詳細說明及申請專利範圍,將上述及本發明之其他優點詳述於後。
本揭露之實施範例揭露一種藉由檢視虛擬機器來產生在一虛擬環境中的應用層級相依性的技術。此虛擬機器檢視可藉由攔截虛擬機器的執行以及檢視虛擬機器的內部狀態來實行。此技術在封包發送(send)的系統呼叫時,攔截一虛擬電腦作業系統,並且執行虛擬機器的內部檢視以取得執行緒(running thread)與傳輸控制協定連線資訊,以及發送此信息流通記錄(traffic log)至伺服器。此基於緒(thread-based)的信息流通記錄再轉換為一應用效能管理伺服器中的緒與緒間(inter-thread)的信息流通記錄。從這些緒與緒間(inter-thread)的信息流通記錄可以產生兩類的輸出。其中一類的輸出是以緒為細微程度(in thread granularity)的應用層級軌跡,另一類的輸出是從此應用層級軌跡衍生的一精確的應用相依圖。
一應用層級軌跡是由一系列的應用之間的信息交換所組成的,每一信息交換伴隨它的發生時間。一應用層級軌跡可以包括由此應用直接發出的信息、以及由其他應用間接發出的信息,此其他應用是處理由此應用發出的信息。此應用層級軌跡可以儲存成樹狀資料結構(tree data structure)。此應用層級軌跡可以包含一或多個節點、一或多個連線(link)、以及一或多個箭頭(arrow)。第二A圖是根據一實施例,說明一應用層級軌跡的範例。參考第二A圖,應用層級軌跡200從瀏覽器(browser)1開始。在軌跡中的一節點表示一應用在一時間週期中的一信息交換;例如一節點210表示一應用(稱為網頁伺服器1,web server 1)在一時間週期(起始時間為0:01,終止時間為4:59)中的一信息交換。在軌跡中的一連線表示兩應用之間的一直接的信息交換;例如節點210與節點220之間的一連線表示應用(稱為網頁伺服器1,web server 1)與應用(稱為負載平衡器,load balancer)之間的一直接的信息交換。在軌跡中的一箭頭表示兩應用之間的一連線的方向,此方向為從客戶端應用(client application)至伺服端應用(server application);例如箭頭230表示一客戶端應用(應用伺服器1,0:33,4:59)至一伺服端應用(資料庫伺服器,4:50,4:59)的連線。
一應用層級軌跡可以幫助管理者來找出應用效能的瓶頸。例如,當資料庫伺服器回應應用伺服器1的信息回應時間(message response time)很長時,此將間接影響在瀏覽器1上的使用者的執行效能。藉由檢查應用層級軌跡資訊,可以找出哪一個應用的信息交換的整個時間是太長的。一應用相依圖還可以藉由一圖形顯示器(graphic display),來告知管理者哪一個相依性關聯是非常低的。
此應用相依圖記錄應用與應用之間的相依性。第二B圖是根據一實施例,說明一應用相依圖的範例。參考第二B圖,應用相依圖250從瀏覽器1開始。在應用相依圖250中,如果應用A與應用B有資料交換,並且應用A是A至B連線的客戶端,則A相依(depend on)B。例如,若負載平衡器(應用A)與應用伺服器2(應用B)有資料交換,則負載平衡器相依應用伺服器2。應用相依圖等於軌跡的靜態示意圖(static view)。虛擬機器或是實體機器的資訊可以加入於應用相依圖上,以幫助瞭解應用的部署。本揭露實施例可結合虛擬機器核心資訊來產生在一虛擬環境中的應用相依圖。第二C圖是根據一實施例,說明在第二B圖的應用相依圖上,再加入虛擬機器資訊的的範例。其中,一虛線方塊表示一虛擬環境中的一虛擬機器,並且一虛擬機器可包含一或多個元件。例如,網頁伺服器1與負載平衡器位於一相同的虛擬機器中,並且此虛擬環境中有五個虛擬機器。
第三A圖是根據一實施例的一種在一或多個虛擬機器中產生應用層級相依性的系統的一示意圖。參考第三A圖,一系統300包含一應用效能管理(APM)伺服器330且運行在一實體機器310上、一或多個攔截模組、以及一或多個內部檢視模組。應用效能管理伺服器330接受一請求322並且傳送一控制指令330a到至少一轉送的幕後程式355,以開啟此一或多個虛擬機器,如虛擬機器1~虛擬機器N,的至少一相關的虛擬機器的檢視狀態、以及產生一選出的應用的一應用層級軌跡並且呈現出此選出的應用(selected application)的應用層級相依性,N為一正整數。每一攔截模組,如攔截模組374,在所有相關的虛擬機器上傳輸控制協定發送(send)與關閉(close)相關的運行時,攔截一虛擬電腦作業系統。每一內部檢視模組,如內部檢視模組372,藉由檢查此虛擬電腦作業系統的執行核心資料結構以及取得一或多個執行緒的程序與緒資訊,來執行傳輸控制協定(TCP)連線及緒資訊之虛擬機器的內部檢視,並且產生一或多個每一緒信息流通記錄(per-thread traffic log)330b,以經由轉送的幕後程式355傳送至應用效能管理伺服器330。攔截模組374與內部檢視模組372是在一相對應的實體伺服器(如實體伺服器1)上的一相對應的虛擬機器監視器(VM monitor,VMM)如虛擬機器監視器370中,並且一相對應的轉送的幕後程式355是運行在此相對應的實體伺服器1上。
第三B圖是根據一實施例,說明在一範例環境中,第三A圖的系統的細部運作。在此環境中,應用效能管理(APM)伺服器330可經由一圖形使用者介面(graphic user interface,GUI)320,接收來自一管理者(administrator)的請求322,以開始進行此應用層級相依性的產生。請求322可包含至少一選出的應用以及一相關的虛擬機器-識別名單(vm-id list)。此選出的應用是要被識別應用相依性的一應用,此應用可包含至少一應用的名稱(application name)以及它的運行的虛擬機器的虛擬機器-識別(vm-id);此虛擬機器-識別名單代表一系列的虛擬機器,這些虛擬機器與選出的應用相關且需要這些虛擬機器來啟動虛擬機器的檢視。一但收到請求322,此應用效能管理(APM)伺服器將控制指令330a傳送至一或多個實體伺服器上的一或多個轉送的幕後程式,其中此一或多個實體伺服器運行在與選出的應用相關的虛擬機器上。此控制指令可包含開啟/關閉檢視特徵inspection feature)以及相對應的虛擬機器-識別。每一轉送的幕後程式將此控制指令轉送至一相對應的虛擬機器監視器。對一個檢視狀態是開啟的虛擬機器,例如虛擬機器監視器370,虛擬機器攔截模組374攔截在傳輸控制協定發送與關閉相關函式的執行,而內部檢視模組372檢查核心資料結構並取得執行緒與傳輸控制協定(TCP)連線資訊。對於虛擬機器中的傳輸控制協定(TCP)相關函式的每一次呼叫,內部檢視模組372產生每一緒信息流通記錄。這些每一緒信息流通記錄被送至轉送的幕後程式355,以轉送這些每一緒信息流通記錄330b至應用效能管理伺服器330。應用效能管理伺服器330可藉由分析收到的記錄,經由圖形使用者介面320,傳送一輸出324至管理者。此輸出可包含至少一應用層級軌跡、以及選出的應用的一應用相依圖。
在虛擬機器監視器370中的虛擬機器核心資訊(VM kernel information)376可包含傳輸控制協定(TCP)運作攔截資訊以及核心物件定義(kernel object definition)。傳輸控制協定(TCP)發送攔截資訊是攔截傳輸控制協定(TCP)發送與傳輸控制協定(TCP)關閉運作的必要資訊。在一實施例中,此資訊可以是傳輸控制協定(TCP)發送與關閉相關函式的位址或是傳輸控制協定(TCP)發送與關閉相關的系統呼叫號碼(system call number)。在收到開啟檢視指令之後,攔截模組374從虛擬機器核心資訊376下載攔截資訊並且開始攔截傳輸控制協定(TCP)發送與關閉相關的運作。在攔截模組374成功地攔截傳輸控制協定(TCP)的運作後,系統300在內部檢視模組372中開始執行信息流通記錄的收集。
內部檢視模組372被配置來執行對緒與傳輸控制協定(TCP)連線之虛擬機器內部檢視。內部檢視模組372可以檢查虛擬機器之中央處理單元(CPU)暫存器值、取得執行緒與處理套接(processing socket)的核心物件、以及產生每一緒信息流通記錄。內部檢視模組372接收來自虛擬機器核心資訊376的核心物件定義。此核心物件定義包括對程序、緒、以及套接物件的定義。內部檢視模組372使用核心物件定義來解譯緒與套接物件中的值,以產生每一緒信息流通記錄。被內部檢視模組372收集的各筆每一緒信息流通記錄可至少包含如時間資訊、緒資訊、連線資訊、方向等資訊。內部檢視模組372在產生每一緒信息流通記錄後,輸出各筆每一緒信息流通記錄至轉送的幕後程式355,轉送的幕後程式355轉送此每一緒信息流通記錄330b至應用效能管理伺服器330。
應用效能管理伺服器330還可包括一信息流通記錄轉換模組(traffic log conversion module)334、以及一相依圖產生模組(dependency map generation module)336。以各筆每一緒信息流通記錄,信息流通記錄轉換模組334藉由找出各筆每一緒信息流通記錄的目的端緒(destination thread),來執行從每一緒信息流通記錄轉換為緒與緒間的信息流通記錄,並且將各筆緒與緒間的信息流通記錄儲存至一記錄資料庫(log database)380。相依圖產生模組336從記錄資料庫380中讀取緒與緒間的信息流通記錄。每筆緒與緒間的信息流通記錄可包含如時間、傳送端(sender)/接收端(receiver)緒資訊、方向等資訊。應用效能管理伺服器330可使用一增加致能模組(incremental enable module)332來逐步地開啟相關的虛擬機器的檢視狀態,直到至少一相關的虛擬機器的檢視狀態開啟為止。
從所有的緒與緒間的信息流通記錄,相依圖產生模組336藉由一產生應用層級軌跡(generation application trajectory,GAT)演算法,產生一應用層級軌跡,並且從應用層級軌跡,相依圖產生模組336藉由一產生應用相依性(generation application dependency,GAD)演算法,產生在一時間週期的期間的精確的應用相依性,並且對所選出的應用,呈現出應用層級相依性。應用層級軌跡可以儲存成如樹狀資料結構。此GAD演算法可以從應用層級軌跡以及利用遞迴呼叫一GAD副程式來產生出應用相依圖。
第四圖是根據一實施例,說明產生應用層級軌跡以及相依性之系統300的資料流。一管理者輸入一選出的應用414以及一相關的虛擬機器-識別名單416於此系統。攔截模組374自虛擬機器核心資訊376下載攔截資訊412,並且開始在相關的虛擬機器上攔截。當虛擬電腦的虛擬機器被攔截時,內部檢視模組372自虛擬機器核心資訊376下載核心物件定義422、讀取在虛擬電腦的虛擬機器中的核心物件以取得緒與傳輸控制協定(TCP)連線資訊、以及產生每一緒信息流通記錄330b並輸出至信息流通記錄轉換模組334。信息流通記錄轉換模組334將每一緒信息流通記錄330b轉換為緒與緒間的信息流通記錄435並輸出至相依圖產生模組336。相依圖產生模組336產生應用層級軌跡445,然後產生應用相依性447並輸出至管理者。
在一例子中,此管理者可能不知道與所選出的應用真正相關的虛擬機器並且必須致能(enable)在虛擬資料中心裡每一虛擬機器的檢視狀態,以產生應用相依性。本揭露實施例使用一種三-階段方法來尋找與所選出的應用真正相關的虛擬機器,所以降低所產生之信息流通記錄的個數以及產生應用相依性的成本。
第五圖是根據一實施例,說明一種三-階段方法的一示意圖。參考第五圖,此三階段包括一學習階段(learning phase)510、一探索階段(discovery phase)520、以及一產生階段(generation phase)530。學習階段510識別與一應用相關的虛擬機器。只有相關的虛擬機器在探索階段520被致能虛擬機器的檢視狀態。此會降低需要被檢視之虛擬機器的個數。在學習階段510中,輸入要產生相依性的一選出的應用,並且使用一增加技術(incremental approach)來致能相關之虛擬機器的檢視特徵,直到沒有發現新的相關之虛擬機器為止。學習階段510的輸出是選出的應用414以及此應用之相關的虛擬機器識別名單416,並且還傳送至探索階段520。在探索階段520中,根據此應用以及它的相關的虛擬機器識別名單,收集基於緒的信息流通記錄並且產生緒與緒間的信息流通記錄。此緒與緒間的信息流通記錄435再被送至產生階段530。在產生階段530中,產生應用層級軌跡445與應用相依性447。
所以,根據第四圖的實施例,第六圖是根據一實施例,說明第五圖之三-階段方法以及在一虛擬環境中產生應用層級相依性的方法。在第六圖中,探索階段520包括攔截610、內部檢視620、以及信息流通記錄轉換630。攔截610執行攔截模組374的運作。內部檢視620執行內部檢視模組372的運作。信息流通記錄轉換630執行信息流通記錄轉換模組334的運作。產生階段530包括相依圖產生640的步驟,此相依圖產生640執行相依性產生模組336的運作。學習階段510包括增加致能(incremental enabling)650的步驟。增加致能650藉由利用來自信息流通記錄轉換630的緒與緒間的信息流通記錄,遞增地致能虛擬機器信息流通記錄,並且輸出一虛擬機器識別名單至探索階段520。
依此,一種在一或多個虛擬機器中產生應用層級相依性的以電腦實現的方法可包含攔截610、內部檢視620、信息流通記錄轉換630、以及相依圖產生640。換句話說,受控於一或多個實體伺服器下,並且此一或多個實體伺服器提供備有此一或多個虛擬機器的一虛擬環境,此方法可在此一或多個虛擬機器的至少一相關的虛擬機器上傳輸控制協定發送與關閉相關的運行時,攔截一虛擬電腦作業系統;藉由檢查該虛擬電腦作業系統的執行核心資料結構以及取得一或多個執行緒及傳輸控制協定連線資訊,來執行傳輸控制協定連線及緒資訊之虛擬機器的內部檢視,並且產生一或多個每一緒信息流通記錄,然後將此一或多個每一緒信息流通記錄轉換為一或多個緒與緒間的信息流通記錄;以及從此一或多個緒與緒間的信息流通記錄,產生一應用層級軌跡並且從此應用層級軌跡,呈現出一選出的應用的應用層級相依性。
本揭露之在一虛擬環境中產生應用層級相依性的實施例可運行在多程序(multi-process)模式如Apache Pre-fork模式、或是多緒(multi-thread)模式如Apache worker模式、或是可運行在前述兩者模式。在一些實施例中,攔截610的實現方式可以藉由以硬體中斷點(hardware breakpoint)來攔截、或是藉由攔截傳輸控制協定(TCP)相關的系統呼叫,但不限於前述的實現方式。第七圖是根據一實施例的一流程圖,說明選擇攔截機制的決策。在一實施例中,選擇攔截機制的決策可依一中央處理單元所支援的硬體除錯暫存器(hardware debug register)的個數DN以及與傳輸控制協定(TCP)發送及關閉相關函式的個數來決定。如第七圖所示,當個數DN大於與TCP發送及關閉相關函式的個數時,選擇以硬體中斷點來攔截,如步驟710所示。當個數DN不大於與TCP發送及關閉相關函式的個數時,選擇攔截傳輸控制協定(TCP)相關的系統呼叫,此包括從一虛擬機器虛擬電腦作業系統(VM guest OS)複製(clone)一映射(shadow)服務描述元表(service descriptor table,SDT)至一虛擬機器監視器中(步驟720),以及修改此虛擬機器虛擬電腦作業系統中的服務描述元表以攔截傳輸控制協定(TCP)相關的系統呼叫(步驟722)。
第八圖是根據一實施例,說明在傳輸控制協定的關閉與發送的函式設定硬體中斷點的一示意圖。參考第八圖,一虛擬電腦虛擬機器800可在核心模式820中提供多種發送函式(dispatch function),如系統呼叫發送(syscall dispatch)821、物件型態發送(object type dispatch)823、協定型態發送(protocol type dispatch)825。系統呼叫發送821是基於系統呼叫號碼的發送函式。物件型態發送823是基於檔案描述元物件的檔案系統型態,如套接、檔案、程序等,的發送函式。協定型態發送825是基於套接的協定型態,如傳輸控制協定(TCP)、用戶資料訊息協定(User Datagram Protocol,UDP)、多播(Multicast,MCAST)等,的發送函式。使用者應用(user application)812是運行在虛擬電腦虛擬機器800的使用者模式810。它可以呼叫多種不同的系統呼叫來發送傳輸控制協定(TCP)信息流通。例如,很多系統呼叫使用傳輸控制協定(TCP)套接檔案描述元作為參數,可傳送封包進入至傳輸控制協定(TCP)連線,如send()、sendto()、write()、sendmsg()。這些系統呼叫皆間接呼叫Linux核心TCP協定堆疊(stack)的一核心函式,稱為tcp_sendmsg()。
以一例子來說明,可以在此tcp_sendmsg()函式致能一硬體除錯中斷點。當虛擬機器監視器因為在此tcp_sendmsg()函式的此硬體除錯中斷點而取得一虛擬機器_離開(VM_exit)事件時,此虛擬機器監視器成功地攔截傳輸控制協定(TCP)發送相關的系統呼叫,並且在下一步驟開始執行信息流通記錄的收集。依此,本揭露實施例可以中斷虛擬電腦作業系統的TCP協定發送(send)822的運作,以產生發送封包要求TCP連線的緒記錄(log of thread),並且中斷虛擬電腦作業系統的TCP協定關閉(close)824的運作,以產生關閉TCP連線的緒記錄(log of thread)。所以,以硬體中斷點來攔截可以藉由設定硬體中斷點,例如在TCP協定的close()與send()函式,來實行。
在本揭露中,虛擬機器(VM)、虛擬電腦虛擬機器(guest VM)、或是虛擬電腦(guest)之這些用詞是用來代表同一件事情。虛擬電腦(guest)用詞通常與虛擬機器監視器(VMM)一起使用,以強調多個虛擬機器可以運行在同一實體伺服器上並且可以使用虛擬機器監視器所分配的資源,像一虛擬電腦。第九圖是根據一實施例,說明藉由複製一映射服務描述元表(Service Descriptor Table)至一虛擬機器監視器中,來攔截傳輸控制協定相關的系統呼叫的一示意圖。其中,一映射服務描述元表被複製到虛擬機器監視器中,並且在虛擬電腦的作業系統之服務描述元表裡傳輸控制協定(TCP)相關的系統呼叫的元素被修改為一無效位址(invalid address)。參考第九圖,當呼叫一系統呼叫時,虛擬電腦虛擬機器800跳至在它的服務描述元表裡指定的該無效位址,並且產生一分頁錯誤(page fault)。此分頁錯誤導致一虛擬機器_離開事件,並以“分頁錯誤”作為理由。然後,虛擬機器監視器910裡的分頁錯誤處理器(handler)914收到此虛擬機器_離開事件並且檢查它的錯誤位址。如果錯誤位址是虛擬電腦虛擬機器的服務描述元表裡指定的該無效位址,則虛擬機器監視器910將此虛擬機器的程式指標(program counter)改變為儲存於服務描述元表裡的位址,所以,虛擬機器可以繼續它的傳輸控制協定(TCP)的系統呼叫的運作。所以,攔截傳輸控制協定相關的系統呼叫可以藉由複製一映射服務描述元表912至一虛擬機器監視器中,並且修改虛擬機器之服務描述元表裡的如傳輸控制協定(TCP)發送與關閉相關的系統呼叫處理器來實現。
第十圖與第十一圖舉例說明內部檢視620運作的細節。參考第十圖,內部檢視查詢因網頁伺服器程序(web server process)1020而收到的核心物件,包括一程序物件(task_struct 1021)、一程序的開啟檔案描述元表(files_struct 1022、fdtable 1023、以及file[]1024)、一檔案描述元物件(file 1025)、以及套接物件(socket 1026、以及inet_socket 1027)。虛擬機器監視器檢查一運行的虛擬機器的虛擬中央處理單元(virtual CPU)的堆疊指標暫存器(stack pointer register)1010,並且以4096來掩飾(mask)此堆疊指標暫存器的值以取得此執行緒之task_struct核心物件的位址。此虛擬機器監視器利用核心物件定義的訊息來攔截task_struct物件1021,並且取得目前的執行緒資訊。可以窺知,此虛擬機器監視器也可以從攔截到的函式之參數名單(parameter list),取得目前處理中的傳輸控制協定(TCP)連線資訊。在Intel處理器的一個例子中,經過核心函式呼叫的參數被儲存在中央處理單元暫存器中。為了攔截傳輸控制協定(TCP)相關的函式,目前處理中的套接物件(socket 1026)的位址在它的參數名單中是越過的(passing)。藉由從此中央處理單元暫存器讀取套接物件的位址以及利用核心物件定義的訊息來攔截套接物件,則可取得傳輸控制協定(TCP)連線資訊。為了攔截傳輸控制協定(TCP)相關的系統呼叫,檔案描述元號碼(file descriptor number)在它的參數名單中是越過的(passing)。藉由查詢程序中的檔案描述元表、讀取檔案描述元中的套接物件的位址、以及利用核心物件定義的訊息來攔截套接物件,則可取得傳輸控制協定(TCP)連線資訊。
每一虛擬機器監視器藉由攔截與內部檢視虛擬電腦虛擬機器(guest VM)來產生每一緒信息流通記錄。然後,產生的每一緒信息流通記錄還被送至一應用效能管理伺服器。如第十一圖所示,產生的每一緒信息流通記錄可以被送到運行在一域0(domain 0)的一轉送的幕後程式,以轉送至一應用效能管理伺服器1120。每一筆產生的每一緒信息流通記錄1110可包含如時間資訊、緒資訊、連線資訊、以及方向(請求或回覆)等資訊。
第十二圖是根據一實施例,說明在多個虛擬電腦虛擬機器間攔截及內部檢視的一虛擬機器監視器機制。參考第十二圖,在一虛擬機器監視器裡的此虛擬機器監視器機制可包含處理虛擬機器-離開事件的一虛擬機器-離開處理器(VM-exit handler) 1210、處理分頁-錯誤虛擬機器-離開事件的一分頁錯誤處理器(page fault handler) 1220、處理中斷點虛擬機器-離開事件的一除錯處理器(debug handler) 1230、執行虛擬機器核心物件與信息流通記錄之內部檢視的一虛擬機器檢視器(VM inspector) 1240、恢復(resume)虛擬機器執行的一虛擬機器排程器(VM scheduler) 1250、儲存每一緒信息流通記錄的一信息流通記錄緩衝器(traffic log buffer) 1260、以及包含在一虛擬機器資訊快取記憶體(VM information cache)1270中的虛擬機器核心資訊376。此虛擬機器核心資訊包含基於虛擬機器的攔截及內部檢視資訊,此資訊至少包括檢視狀態(例如開或關)、攔截方法(例如藉由硬體中斷或藉由映射服務描述元表)、傳輸控制協定(TCP)發送與關閉相關的函式的位址、傳輸控制協定(TCP)相關的系統呼叫的號碼、映射服務描述元表、以及核心物件定義(例如緒物件與套接物件的位址偏移量(address offset))。每一緒信息流通記錄的資訊1110可包含時間資訊、緒資訊(例如虛擬機器識別、程序識別、應用名稱)、連線資訊(例如來源網協(IP)、來源端埠、目的端IP、目的端埠)以及方向(例如請求、回覆)。
當此虛擬機器監視器機制使用硬體中斷(hardware interrupt)方式在多個虛擬電腦虛擬機器間,例如虛擬機器1與虛擬機器2間,攔截及內部檢視時,此虛擬機器監視器機制執行兩部分。第一部分是虛擬機器1擊中傳輸控制協定(TCP)發送與關閉相關的中斷點,以及第二部分是虛擬機器1的排程配合虛擬機器2。在第一部分中,虛擬機器1執行傳輸控制協定(TCP)發送函式並且藉由硬體中斷點觸發一虛擬機器-離開事件。虛擬機器-離開處理器1210檢查其離開原因是“硬體中斷點”並且呼叫除錯處理器1230。除錯處理器1230檢查其中斷位址是在傳輸控制協定(TCP)發送函式,並且呼叫虛擬機器檢視器1240以執行內部檢視。虛擬機器檢視器1240從虛擬機器資訊快取記憶體1270查詢核心物件定義,並且執行虛擬機器1中的核心物件。此內部檢視完成後,虛擬機器檢視器1240取得緒與傳輸控制協定(TCP)連線資訊,並且產生一每一緒信息流通記錄並儲存於信息流通記錄緩衝器1260中。然後,虛擬機器排程器1250恢復虛擬機器1的執行。
在第二部分中,虛擬機器1因為其時段(time slice)已到期而離開,並且因為虛擬機器1重新排程而產生一虛擬機器-離開事件。虛擬機器排程器1250儲存虛擬機器(虛擬機器1)的內文(context)於一記憶體中,並且從記憶體中下載至下一個虛擬機器(虛擬機器2)。因為虛擬機器1與虛擬機器2之檢視狀態與傳輸控制協定(TCP)發送相關函式的位址未必相同,所以在切換至下一個虛擬機器之前,也要執行下載檢視狀態以及組態硬體中斷點。虛擬機器排程器1250從虛擬機器資訊快取記憶體1270讀取下一個虛擬機器的檢視狀態。如果下一個虛擬機器(虛擬機器2)的檢視狀態是開啟(on)並且攔截方法是藉由硬體中斷(例如1)的話,則虛擬機器檢視器1240從虛擬機器資訊快取記憶體1270讀取傳輸控制協定(TCP)發送相關的位址並且設定硬體除錯暫存器。
當此虛擬機器監視器機制使用映射服務描述元表(SDT)的方式在多個虛擬電腦虛擬機器間,例如虛擬機器1與虛擬機器2間,執行攔截及內部檢視時,此虛擬機器監視器機制執行兩部分。第一部分是虛擬機器1呼叫傳輸控制協定(TCP)發送相關的系統呼叫,以及第二部分是虛擬機器1的排程配合虛擬機器2。在第一部分中,虛擬機器1呼叫傳輸控制協定(TCP)發送相關的系統呼叫並且藉由分頁錯誤觸發一虛擬機器-離開事件。虛擬機器-離開處理器1210檢查其離開原因是“分頁錯誤”,並且呼叫分頁錯誤處理器1220。此分頁錯誤處理器此錯誤位址是映射服務描述元表(SDT)中指定的位址,並且呼叫虛擬機器檢視器1240。虛擬機器檢視器1240從虛擬機器資訊快取記憶體1270查詢核心物件定義,並且執行虛擬機器1中的核心物件的內部檢視。此內部檢視完成後,虛擬機器檢視器1240取得緒與傳輸控制協定(TCP)連線資訊,並且產生一每一緒信息流通記錄並儲存於信息流通記錄緩衝器1260中。虛擬機器檢視器1240也藉由查詢虛擬機器資訊快取記憶體1270中的服務描述元表(SDT),來設定一虛擬中央處理單元之指令指標暫存器,以修正系統呼叫函式的位址。然後,虛擬機器排程器1250恢復虛擬機器1的執行。
在第二部分中,虛擬機器1因為其時段(time slice)已到期而離開,並且因為虛擬機器重新排程而產生一虛擬機器-離開事件。虛擬機器排程器1250儲存虛擬機器(虛擬機器1)的內文(context)於一記憶體中,並且從記憶體中下載至下一個虛擬機器(虛擬機器2)。虛擬機器排程器1250也從虛擬機器資訊快取記憶體1270讀取檢視狀態。如果虛擬機器2的檢視狀態是開啟(on),此方法是藉由映射服務描述元表(例如2)進行攔截,並且它的映射服務描述元表不是存在的話,則虛擬機器檢視器1240從下一個虛擬機器(虛擬機器2)複製一映射服務描述元表,並且將虛擬機器2的映射服務描述元表裡的傳輸控制協定(TCP)相關的系統呼叫的元素修改為無效位址。然後,虛擬機器排程器1250恢復虛擬機器2的執行。
攔截610與內部檢視620後,應用效能管理伺服器中的每一緒信息流通記錄會被轉換為緒與緒間的信息流通記錄。第十三圖是根據一實施例,說明每一緒信息流通記錄轉換為緒與緒間的信息流通記錄的一個例子。應用效能管理伺服器藉由尋找每一緒信息流通記錄之目的端緒(destination thread),將每筆每一緒信息流通記錄會被轉換為一相對應的緒與緒間的信息流通記錄。如第十三圖的例子所示,每筆每一緒信息流通記錄會被轉換為一緒與緒間的信息流通記錄。例如,兩筆每一緒信息流通記錄(1310與1320)代表兩筆緒(TA與TB)藉由相同的傳輸控制協定(TCP)連線c互相傳送。此兩筆每一緒信息流通記錄被轉換為兩筆緒與緒間的信息流通記錄(1330與1340)。由時間(t1)、緒資訊(TA)、連線(c1)、以及方向(請求)組成的每一緒信息流通記錄1310被轉換為由時間(t5)、緒資訊(TB)、連線(c1)、以及方向(回覆)組成的緒與緒間的信息流通記錄1330。類似地,由時間(t5)、緒資訊(TB)、連線(c1)、以及方向(回覆)組成的每一緒信息流通記錄1320被轉換為由時間(t5)、發送端緒資訊(TB)、接收端緒資訊(TA)、以及方向(回覆)組成的緒與緒間的信息流通記錄1340。這些緒與緒間的信息流通記錄可以儲存在應用效能管理伺服器中的資料庫。
因為產生的信息流通記錄記錄了緒與緒間的信息交換,相依性產生演算法可以使用此緒與緒間的信息交換資訊,對於運行在多程序(multi-process)與多緒(multi-thread)模型的應用來產生100%精確的應用相依圖。
根據本揭露實施例之從緒與緒間的信息流通記錄來產生軌跡的設計是利用一遞迴的(recursive)技術來找出在一時間週期(time period)中,緒與緒之間所有間接的信息交換。第十四圖是根據一實施例,說明產生一應用層級軌跡的例子。參考第十四圖,應用層級軌跡從緒A開始,並且分別在一時間週期△t1與一時間週期△t2中,與緒B和緒C有信息交換。緒B分別在一時間週期△t11、一時間週期△t12、以及一時間週期△t13中,與緒D、緒E、以及緒F有信息交換。時間週期△ta中,應用A的軌跡以符號TRA(A,△ta)來表示,並且可藉由下列的遞迴的技術來擴展。
TRA(A,△ta)
={(B,△t1),TRA(B,△t1),(C,△t2),TRA(C,△t2)} (1)
={(B,△t1),{(D,△t11),(E,△t12),(F,△t13)},(C,△t2),TRA(C,△t2)} (2)
={(B,△t1),{(D,△t11),(E,△t12),(F,△t13)},(C,△t2),{(G,△t21),(H,△t22)}}(3)
方程式(1)暗示了應用(緒A)在時間週期△ta中的軌跡等於與緒B在時間週期△t1中的信息交換(記為(B,△t1)),加上緒B在時間週期△t1中的軌跡(記為TRA(B,△t1)),以及與緒C在時間週期△t2中的信息交換(記為(C,△t2)),加上緒C在時間週期△t2中的軌跡(記為TRA(C,△t2))。方程式(2)可藉由再擴展緒B的軌跡而得到。方程式(3)可藉由再擴展緒C的軌跡而得到。在方程式(3)中,應用A在時間週期△ta中的軌跡是與應用(或緒)B、D、E、F、C、G、以及H的信息交換。應用(或緒)D、E、F、G、以及H是間接與應用A連接。
第十五圖是根據一實施例,說明對一緒Ta在一時間週期△ta中,產生應用層級軌跡(GAT)的一演算法的一流程圖。此GAT之演算法的輸出是以一樹狀資料結構儲存的一應用層級軌跡。參考第十五圖,此演算法GAT(Ta,△ta)開始時,先進行一初始化(initialization),包括將一應用層級軌跡設定為一空樹(empty tree)(亦即result={})、一目前的相依緒設定為空(null)(亦即current-dep-thread=null)、以及一開始時間設定為時間週期△ta的開始時間(亦即△t開始時間=△ta開始時間),如步驟1510所示。然後,此演算法GAT(Ta,△ta)尋找在△ta期間與緒Ta相關的下一筆信息流通記錄(步驟1515)。當沒有找到與緒Ta相關的下一筆信息流通記錄時,此演算法GAT(Ta,△ta)更新前一筆信息流通記錄(亦即pre-log=cur-log;cur-log=found log),並且設定一緒Tb為此目前記錄(current log)的一遠端緒(remote thread)(亦即Tb=cur-log的遠端緒),如步驟1520所示。
當緒Tb不是此目前的相依緒(亦即Tb!=current-dep-thread)(步驟1522)或是此目前記錄是△ta期間的最後一元素(步驟1524)時,此演算法GAT(Ta,△ta)執行動作並返回至步驟1515;否則的話,直接返回至步驟1515。其中,此動作包括設定△t的結束時間為前一筆記錄的時間(亦即△t結束時間=pre-log的時間)(步驟1530)、附加一軌跡項目(trajectory item)並作為此應用層級軌跡的子節點(亦即result +=(current-dep-thread,△t))(步驟1532)、遞迴地呼叫演算法GAT以產生在△t期間此目前的相依緒之應用層級軌跡樹以及加入此產生的樹並作為此應用層級軌跡樹的子樹(亦即result +=GAT(current-dep-thread,△t))(步驟1534)、以及設定目前的相依緒為Tb並且設定△t的開始時間為目前記錄的時間(亦即current-dep-thread=Tb;△t的開始時間=cur-log的時間)(步驟1536)。結果,此演算法GAT(Ta,△ta)輸出此樹狀資料結構的應用層級軌跡result。
第十六A圖與第十六B圖是根據一實施例,說明從樹狀資料結構的一應用層級軌跡,以圖形資料結構產生應用相依性(GAD)的演算法的運作流程。參考第十六A圖,此GAD演算法開始時,先進行一初始化(initialization),包括將一應用相依設定為一空圖形(empty graph)(亦即result=空圖形),並且將一根節點(root node)設定為此軌跡樹的根(亦即rnode=軌跡樹的根),如步驟1610所示。然後,此GAD演算法藉由遞迴地呼叫一函式_GAD來產生一應用相依圖(亦即result)(步驟1615)。第十六B圖是根據一實施例,說明函式_GAD(rnode,result)運作的一流程圖。
參考第十六B圖,函式_GAD(rnode,result)有兩個參數。一個是根節點(即rnode),另一個是result。rnode參數是一樹狀資料結構的中的一節點,此節點代表應用層級軌跡中的一子樹(sub-tree)。result參數是一圖形資料結構,此圖形資料結構儲存在遞迴地呼叫函式_GAD期間所產生的應用相依圖。此_GAD函式一開始時,先取得應用層級軌跡中根節點的下一個子節點子,亦即c=取得rnode的下一個子節點(步驟1620)。如果不再有子節點被找到的話,則返回(return)(步驟1625)。如果rnode有這樣的的一子節點被找到的話,則至步驟1621,檢查result中是否含節點c。如果此圖形資料結構result中不含節點c,則將節點c加入於此圖形資料結構result(步驟1622)。因為現在根節點rnode與節點c圖形資料結構result中,則至步驟1624,檢查從根節點rnode至節點c的連線(即link(rnode,c))是否在result中。如果從根節點rnode至節點c的連線(link)沒有含在此圖形資料結構result中,則將link(rnode,c)加入於此圖形result中(步驟1626)。在步驟1628中,以(c,result)作為新的兩參數,遞迴地呼叫函式_GAD(c,result),以產生剩餘的相依性。
從第十六A圖與第十六B圖可以看出,此GAD演算法的執行是藉由從一應用層級軌跡來產生一應用相依圖,並且迴地呼叫一函式_GAD直到沒有找到根節點rnode的下一個子節點為止。換句話說,應用相依性演算法是使用一遞迴的技術,來找出在一時間週期與選出的應用相關的所有間接的相依的緒。GAD演算法的輸出是一應用相依圖。此圖可以表示成一圖形資料結構。
所產生的應用相依圖可以顯示在如一圖形使用者介面上,來幫助如管理者去瞭解軟體的佈署、找出失敗的緒、找出效能的瓶頸等。也可以分析所產生的應用相依圖來自動發現在分散式的應用上效能問題的根源(root cause)。
如前面所提及的,本揭露實施例使用一種三-階段方法來降低信息流通記錄收集以及產生應用相依性的成本。產生應用相依性以及收集的成本可包括如被虛擬機器監視器檢視傳輸控制協定(TCP)運作、傳送記錄元素至應用效能管理伺服器、儲存記錄元素至應用效能管理伺服器的資料庫等。被虛擬機器監視器檢視傳輸控制協定(TCP)運作的成本包括如將內文從虛擬機器切換至虛擬機器監視器、執行核心物件的內部檢視、內文切換來恢復原始虛擬機器執行等。傳送記錄元素至應用效能管理伺服器的成本包括如虛擬機器監視器經由一通道(channel)傳送記錄元素至域(domain)0的一轉送的幕後程式、以及轉送的幕後程式藉由傳輸控制協定(TCP)連線來傳送記錄元素至應用效能管理伺服器等。
在學習階段中,增加致能650的步驟識別與選出的應用414相關的虛擬機器,以產生相依性。換句話說,只有相關的虛擬機器被選出,並且在下一階段被致能虛擬機器檢視,因而減少需要檢視之虛擬機器的個數。本揭露實施例利用增加致能650來的致能相關的虛擬機器之檢視特性,直到沒有新的相關的虛擬機器被找到為止。如第六圖中提到的,增加致能650藉由利用來自信息流通記錄轉換630的緒與緒間的信息流通記錄435,遞增地致能虛擬機器信息流通記錄,並且輸出一虛擬機器識別名單416至攔截610。第十七圖是根據一實施例,說明在學習階段中,在一虛擬資料中心1700中增加致能信息流通記錄的例子。
在第十七圖的例子中,最出,選出在虛擬機器1710中的一應用(瀏覽器1),並且開始學習階段。在第一次的致能,含有應用網域名稱系統(與應用瀏覽器1相依)的虛擬機器1720被識別出。在第二次的致能,含有應用網頁伺服器1(與應用瀏覽器1相依)的虛擬機器1730被識別出。在第三次的致能,含有應用網頁應用1的虛擬機器1740以及含有應用網頁應用2(與應用網頁伺服器1相依)的虛擬機器1760被識別出。在第四次的致能,含有應用資料庫伺服器(與應用網頁應用1相依)的虛擬機器1750被識別出。所以,學習階段後,此輸出的相關的虛擬機器識別名單可包括虛擬機器1710、虛擬機器1720、虛擬機器1730、虛擬機器1740、虛擬機器1750、以及虛擬機器1760。因此,只有相關的虛擬機器被選出,並且在下一階段(探索階段)被致能虛擬機器檢視。探索階段可再從應用(瀏覽器1)開始,並且記錄信息流通於應用效能管理伺服器。並且,在產生階段,應用效能管理伺服器可執行產生應用相依性(GAD)的演算法,以及經由一圖形使用者介面呈現出應用層級軌跡與相依性1770至,例如,一管理系統或是一根源分析模組。
所以,本揭露實施例提供一種在一虛擬環境中深入檢查至緒層級來產生應用層級相依性的技術。此技術無需裝設額外軟體或執行如埠輪詢等行動,而是採用虛擬機器內部檢視方法。此技術攔截系統呼叫並且快速偵測部署改變。此技術也記錄緒之間層級(inter-thread level)的信息流通,以及產生以緒的細微程度的一應用層級軌跡。此技術從應用層級軌跡,藉由一相依性產生演算法來產生完全精確的應用相依性。此技術可以在多程序的應用上運行,也可以在多緒的應用上運行。
以上所述者僅為本揭露實施例,當不能依此限定本揭露實施之範圍。即大凡本發明申請專利範圍所作之均等變化與修飾,皆應仍屬本發明專利涵蓋之範圍。
200...應用層級軌跡
210、220...節點
230...箭頭
250...應用相依圖
300...系統
310...實體機器
322...請求
330...應用效能管理伺服器
330a...控制指令
330b...每一緒信息流通記錄
355...轉送的幕後程式
370...虛擬機器監視器
372...內部檢視模組
374...攔截模組
N...正整數
320...圖形使用者介面
324...輸出
332...增加致能模組
334...信息流通記錄轉換模組
336...相依圖產生模組
376...虛擬機器核心資訊
380...記錄資料庫
412...攔截資訊
422...核心物件定義
414...選出的應用
416...相關的虛擬機器-識別名單
435...緒與緒間的信息流通記錄
445...應用層級軌跡
447...應用相依性
510...學習階段
520...探索階段
530...產生階段
610...攔截
620...內部檢視
630...信息流通記錄轉換
640...相依圖產生
650...增加致能
710...選擇以硬體中斷點來攔截
720...從一虛擬機器虛擬電腦作業系統複製一映射服務描述元表至一虛擬機器監視器中
722...修改此虛擬機器虛擬電腦作業系統中的服務描述元表以攔截傳輸控制協定相關的系統呼叫
DN...一中央處理單元所支援的硬體除錯暫存器的個數
TCP...傳輸控制協定
800...虛擬電腦虛擬機器
810...使用者模式
812...使用者應用
820...核心模式
821...系統呼叫發送
823...物件型態發送
825...協定型態發送
822...傳輸控制協定發送
824...傳輸控制協定關閉
910...虛擬機器監視器
912...映射服務描述元表
914...分頁錯誤處理器
1010...堆疊指標暫存器
1020...網頁伺服器程序
1021...task_struct
1022...files_struct
1023...fdtable
1024...file[]
1025...file
1026...socket
1027...inet_socket
1110...每一緒信息流通記錄的資訊
1120...應用效能管理伺服器
1210...虛擬機器-離開處理器
1220...分頁錯誤處理器
1230...除錯處理器
1240...虛擬機器檢視器
1250...虛擬機器排程器
1260...信息流通記錄緩衝器
1270...虛擬機器資訊快取記憶體
1310、1320...兩筆每一緒信息流通記錄
1330、1340...兩筆緒與緒間的信息流通記錄
TA、TB...兩筆緒
t1、t5...時間
△t1、△t2、△t11、△t12、△t13、△ta...時間週期
A、B、D、E、F、C、G、H...應用或緒
1510...result={};current-dep-thread=null;△t開始時間=△ta開始時間
1515...尋找在△ta期間與緒Ta相關的下一筆信息流通記錄
1520...pre-log=cur-log;cur-log=found log;Tb=cur-log的遠端緒
1522...Tb!=current-dep-thread
1524...此目前記錄是△ta期間的最後一元素
1530...△t結束時間=pre-log的時間
1532...result +=(current-dep-thread,△t)
1534...result +=GAT(current-dep-thread,△t)
1536...current-dep-thread=Tb;△t的開始時間=cur-log的時間
1610...result=空圖形;rnode=軌跡樹的根
1615..._GAD(rnode,result)
1620...c=取得rnode的下一個子節點
1621...result中是否含節點c
1622...將節點c加入於result
1624...link(rnode,c)是否在result中
1625...返回
1626...將link(rnode,c)加入於result中
1628...遞迴地呼叫函式_GAD(c,result)
1710、1720、1730、1740、1750、1760...虛擬機器
1700...虛擬資料中心
1770...相依性
第一圖是藉由在每一實體伺服器上查究網路的信息流通量而產生出的應用相依性的一個範例。
第二A圖是根據一實施例,說明一應用層級軌跡的範例。
第二B圖是根據一實施例,說明一應用相依圖的範例。
第二C圖是根據一實施例,說明具有虛擬機器資訊的一應用相依圖的範例。
第三A圖是根據一實施例的一種在一或多個虛擬機器中產生應用層級相依性的系統的一示意圖。
第三B圖是根據一實施例,說明在一範例環境中,第三A圖的系統的細部運作。
第四圖是根據一實施例,說明在一虛擬環境中,產生應用層級相依性的資料流的一示意圖。
第五圖是根據一實施例,說明一種三-階段方法的一示意圖。
第六圖是根據一實施例,說明第五圖之三-階段方法以及在一虛擬環境中產生應用層級相依性的方法。
第七圖是根據一實施例的一流程圖,說明選擇攔截機制的決策。
第八圖是根據一實施例,說明在傳輸控制協定的關閉與發送的函式設定硬體中斷點的一示意圖。
第九圖是根據一實施例,說明藉由複製一映射服務描述元表至一虛擬機器監視器中,來攔截傳輸控制協定相關的系統呼叫的一示意圖。
第十圖是根據一實施例,說明在一程序中,對執行緒與傳輸控制協定連線資訊,內部檢視Linux核心的資料結構的一示意圖。
第十一圖是根據一實施例,說明每一緒信息流通記錄的格式,以及每一緒信息流通記錄在一虛擬機器監視器中產生並且藉由一轉送的幕後程式被轉送至一應用效能管理伺服器。
第十二圖是根據一實施例,說明在多個虛擬電腦虛擬機器間攔截及內部檢視的一虛擬機器監視器機制。
第十三圖是是根據一實施例,說明每一緒信息流通記錄轉換為緒與緒間的信息流通記錄的一個例子。
第十四圖是根據一實施例,說明產生一應用層級軌跡的例子。
第十五圖是根據一實施例,說明對一緒Ta在一時間週期△ta中,產生應用層級軌跡(GAT)的一演算法的一流程圖。
第十六A圖與第十六B圖是根據一實施例,說明從樹狀資料結構的一應用層級軌跡,以圖形資料結構產生應用相依性(GAD)的演算法的運作流程。
第十七圖是根據一實施例,說明在學習階段中,在一虛擬資料中心中增加致能信息流通記錄的例子。
300...系統
310...實體機器
322...請求
330...應用效能管理伺服器
330a...控制指令
330b...每一緒信息流通記錄
355...轉送的幕後程式
370...虛擬機器監視器
372...內部檢視模組
374...攔截模組
N...正整數

Claims (28)

  1. 一種在一或多個虛擬機器中產生應用層級相依性的系統,包含:一應用效能管理伺服器且運行在一實體機器上,以接受一請求並且傳送一指令到至少一轉送的幕後程式,以開啟該一或多個虛擬機器的至少一相關的虛擬機器的檢視狀態、以及該應用效能管理伺服器還產生一選出的應用的一應用層級軌跡並且自該應用層級軌跡呈現出該選出的應用的應用層級相依性;一或多個攔截模組,其中每一攔截模組在該至少一相關的虛擬機器上傳輸控制協定發送與關閉相關的運行時,攔截一虛擬電腦作業系統;以及一或多個內部檢視模組,其中每一內部檢視模組執行傳輸控制協定連線及執行緒資訊之虛擬機器的內部檢視;其中每一攔截模組係藉由在一緒層級中的硬體中斷點或是藉由攔截傳輸控制協定相關的系統呼叫,來實現該攔截。
  2. 如申請專利範圍第1項所述之系統,其中該每一內部檢視模組藉由檢查該虛擬電腦作業系統的執行核心資料結構以及取得一或多個執行緒及傳輸控制協定連線資訊,來執行該虛擬機器的內部檢視,並且產生一或多個每一緒信息流通記錄,以經由該轉送的幕後程式傳送至該應用效能管理伺服器。
  3. 如申請專利範圍第1項所述之系統,其中該每一攔截模組與該每一內部檢視模組是在一相對應的實體伺服器 上的一相對應的虛擬機器監視器中,並且一相對應的轉送的幕後程式是運行在該相對應的實體伺服器上。
  4. 如申請專利範圍第1項所述之系統,其中該應用效能管理伺服器還包含:一信息流通記錄轉換模組,將一或多筆每一緒信息流通記錄轉換為一或多筆緒與緒間的信息流通記錄;以及一相依圖產生模組,從該一或多筆緒與緒間的信息流通記錄產生該應用層級軌跡並且從該應用層級軌跡呈現出該選出的應用的應用層級相依性。
  5. 如申請專利範圍第1項所述之系統,該系統使用一記錄資料庫來儲存該一或多筆緒與緒間的信息流通記錄。
  6. 如申請專利範圍第1項所述之系統,其中該一或多筆每一緒信息流通記錄轉換的每一筆信息流通記錄包含時間資訊、緒資訊、連線資訊、以及方向資訊。
  7. 如申請專利範圍第1項所述之系統,其中該一或多筆緒與緒間的信息流通記錄的每一筆信息流通記錄包含時間資訊、傳送端緒資訊、接收端緒資訊、以及方向。
  8. 如申請專利範圍第1項所述之系統,其中該應用層級軌跡記錄多個應用之間的信息交換與時間週期,該多個應用起始於一應用。
  9. 如申請專利範圍第1項所述之系統,其中該應用層級軌跡以一樹狀資料結構來儲存並且該樹狀資料結構起始於一根節點,並且該應用層級軌跡包含一或多個節點、一或多個連、以及一或多個箭頭,在該應用層級軌跡中的一節點表示一應用在一時間週期中的一信息交換,在該 應用層級軌跡中的一連線表示兩應用之間的一直接的信息交換,在該應用層級軌跡中的一箭頭表示兩應用之間的一連線的方向。
  10. 如申請專利範圍第1項所述之系統,其中該應用層級相依性是以一樹狀資料結構來表示的一應用相依圖。
  11. 如申請專利範圍第1項所述之系統,其中該應用效能管理伺服器使用一增加致能模組來逐步地開啟相關的虛擬機器的檢視狀態,直到至少一相關的虛擬機器的檢視狀態被開啟為止。
  12. 一種在一或多個虛擬機器中產生應用層級相依性的方法,以電腦系統來實現,包含:受控於一或多個實體伺服器下,並且該一或多個實體伺服器提供備有該一或多個虛擬機器的一虛擬環境;在該一或多個虛擬機器的至少一相關的虛擬機器上傳輸控制協定發送與關閉相關的運行時,攔截一虛擬電腦作業系統;執行傳輸控制協定連線及緒資訊之虛擬機器的內部檢視;以及產生一選出的應用的一應用層級軌跡並且從該應用層級軌跡呈現出該選出的應用的應用層級相依性;以及藉由在一緒層級中的硬體中斷點或是藉由攔截傳輸控制協定相關的系統呼叫,來實現該攔截。
  13. 如申請專利範圍第12項所述之方法,還包含藉由檢查該虛擬電腦作業系統的執行核心資料結構以及取得一或多個執行緒及傳輸控制協定連線資訊,來執行該虛擬 機器的內部檢視,並且產生一或多個每一緒信息流通記錄。
  14. 如申請專利範圍第13項所述之方法,還包含將該一或多筆每一緒信息流通記錄轉換為一或多筆緒與緒間的信息流通記錄。
  15. 如申請專利範圍第14項所述之方法,還包含一學習階段、一探索階段、以及一產生階段,以產生該應用層級相依性。
  16. 如申請專利範圍第15項所述之方法,還包含在該學習階段,使用一增加技術來致能相關於該選出的應用之至少一虛擬機器,以及產生一相關的虛擬機器識別名單並且提供給該探索階段。
  17. 如申請專利範圍第15項所述之方法,還包含在該探索階段,收集該該一或多筆每一緒信息流通記錄、以及產生該一或多筆緒與緒間的信息流通記錄並且提供給該產生階段。
  18. 如申請專利範圍第15項所述之方法,還包含在該產生階段,產生該應用層級軌跡,並且從該應用層級軌跡藉由使用一應用相依性演算法產生一應用相依圖。
  19. 如申請專利範圍第18項所述之方法,還包含藉由該應用相依性演算法,利用一遞迴的技術來找出在一時間週期中,與該選出的應用相關的所有間接的相依的緒。
  20. 如申請專利範圍第13項所述之方法,其中該一或多筆每一緒信息流通記錄的每一筆信息流通記錄包含時間資訊、緒資訊、連線資訊、以及方向。
  21. 如申請專利範圍第20項所述之方法,其中該一或多筆緒與緒間的信息流通記錄的每一筆信息流通記錄包含時間資訊、傳送端緒資訊、接收端緒資訊、以及方向。
  22. 如申請專利範圍第12項所述之方法,其中該選出的應用運行在多程序的模式。
  23. 如申請專利範圍第12項所述之方法,其中該選出的應用運行在多緒的模式。
  24. 如申請專利範圍第12項所述之方法,其中選擇一攔截機制係依一中央處理單元所支援的硬體除錯暫存器的個數以及與傳輸控制協定發送及關閉相關函式的個數來決定。
  25. 如申請專利範圍第24項所述之方法,其中當一中央處理單元所支援的硬體除錯暫存器的個數大於與傳輸控制協定發送及關閉相關函式的個數時,選擇藉由硬體中斷點來攔截。
  26. 如申請專利範圍第24項所述之方法,其中當一中央處理單元所支援的硬體除錯暫存器的個數不大於與傳輸控制協定發送及關閉相關函式的個數時,選擇攔截傳輸控制協定相關的系統呼叫,其包括複製一映射服務描述元表至一虛擬機器監視器中,以及修改該服務描述元表以攔截傳輸控制協定相關的系統呼叫。
  27. 一種在一或多個虛擬機器中產生應用層級相依性的系統,包含:一應用效能管理伺服器且運行在一實體機器上,以接受一請求並且傳送一指令到至少一轉送的幕後程式,以開 啟該一或多個虛擬機器的至少一相關的虛擬機器的檢視狀態、以及產生一選出的應用的一應用層級軌跡並且呈現出該選出的應用的應用層級相依性;一或多個攔截模組,其中每一攔截模組在該至少一相關的虛擬機器上傳輸控制協定發送與關閉相關的運行時,攔截一虛擬電腦作業系統;一或多個內部檢視模組,其中每一內部檢視模組執行傳輸控制協定連線及執行緒資訊之虛擬機器的內部檢視;其中該一或多個攔截模組的每一攔截模組係藉由硬體中斷點或是藉由攔截傳輸控制協定相關的系統呼叫,來實現該攔截,並且選擇一攔截機制係依一中央處理單元所支援的硬體除錯暫存器的個數以及與傳輸控制協定發送及關閉相關函式的個數來決定。
  28. 一種在一或多個虛擬機器中產生應用層級相依性的方法,以電腦系統來實現,包含:受控於一或多個實體伺服器下,並且該一或多個實體伺服器提供備有該一或多個虛擬機器的一虛擬環境;在該一或多個虛擬機器的至少一相關的虛擬機器上傳輸控制協定發送與關閉相關的運行時,攔截一虛擬電腦作業系統;執行傳輸控制協定連線及緒資訊之虛擬機器的內部檢視;產生一選出的應用的一應用層級軌跡並且從該應用層級軌跡呈現出該選出的應用的應用層級相依性;以及藉由硬體中斷點或是藉由攔截傳輸控制協定相關的系統 呼叫,來實現該攔截;其中選擇一攔截機制係依一中央處理單元所支援的硬體除錯暫存器的個數以及與傳輸控制協定發送及關閉相關函式的個數來決定。
TW100148887A 2011-12-15 2011-12-27 在一或多個虛擬機器中產生應用層級相依性的系統與方法 TWI453604B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110451868.XA CN103164288B (zh) 2011-12-15 2011-12-29 在一个或多个虚拟机中生成应用级依赖的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/327,407 US8881145B2 (en) 2011-12-15 2011-12-15 System and method for generating application-level dependencies in one or more virtual machines

Publications (2)

Publication Number Publication Date
TW201324182A TW201324182A (zh) 2013-06-16
TWI453604B true TWI453604B (zh) 2014-09-21

Family

ID=48611620

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100148887A TWI453604B (zh) 2011-12-15 2011-12-27 在一或多個虛擬機器中產生應用層級相依性的系統與方法

Country Status (2)

Country Link
US (1) US8881145B2 (zh)
TW (1) TWI453604B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI652621B (zh) 2015-12-23 2019-03-01 財團法人工業技術研究院 產生虛擬機器訊息佇列應用程式之相依關係的方法與系統

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8175863B1 (en) 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US9778953B2 (en) * 2009-06-16 2017-10-03 International Business Machines Corporation Process and system for comprehensive IT discovery without credentials
CN102693210B (zh) * 2011-03-21 2017-03-01 中兴通讯股份有限公司 一种处理器间传递参数的方法及装置
US8973136B2 (en) * 2011-08-02 2015-03-03 Quick Heal Technologies Private Limited System and method for protecting computer systems from malware attacks
US10514937B2 (en) * 2012-01-05 2019-12-24 Vmware, Inc. Auto-discovery service and method of discovering applications within a virtual network
US8839447B2 (en) * 2012-02-27 2014-09-16 Ca, Inc. System and method for virtual image security in a cloud environment
US9052961B2 (en) * 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
EP2842026A4 (en) * 2012-04-27 2016-01-13 Hewlett Packard Development Co MAPPING OF APPLICATION DEPENDENCIES AT TIME OF EXECUTION
US20140067912A1 (en) * 2012-09-04 2014-03-06 Bank Of America Corporation System for Remote Server Diagnosis and Recovery
US9557879B1 (en) 2012-10-23 2017-01-31 Dell Software Inc. System for inferring dependencies among computing systems
US10333820B1 (en) 2012-10-23 2019-06-25 Quest Software Inc. System for inferring dependencies among computing systems
US9282118B2 (en) 2012-11-13 2016-03-08 Intel Corporation Policy enforcement in computing environment
US9405605B1 (en) 2013-01-21 2016-08-02 Amazon Technologies, Inc. Correction of dependency issues in network-based service remedial workflows
US9183092B1 (en) * 2013-01-21 2015-11-10 Amazon Technologies, Inc. Avoidance of dependency issues in network-based service startup workflows
US9286047B1 (en) 2013-02-13 2016-03-15 Cisco Technology, Inc. Deployment and upgrade of network devices in a network environment
US9292331B2 (en) * 2013-03-15 2016-03-22 Bracket Computing, Inc. Expansion of services for a virtual data center guest
CN104424144B (zh) * 2013-08-21 2018-06-01 展讯通信(上海)有限公司 一种日志数据处理系统及处理方法
US11005738B1 (en) 2014-04-09 2021-05-11 Quest Software Inc. System and method for end-to-end response-time analysis
US9479414B1 (en) 2014-05-30 2016-10-25 Dell Software Inc. System and method for analyzing computing performance
US10097410B2 (en) 2014-06-26 2018-10-09 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments
US10291493B1 (en) 2014-12-05 2019-05-14 Quest Software Inc. System and method for determining relevant computer performance events
US9189630B1 (en) * 2015-01-21 2015-11-17 AO Kaspersky Lab Systems and methods for active operating system kernel protection
US9274758B1 (en) 2015-01-28 2016-03-01 Dell Software Inc. System and method for creating customized performance-monitoring applications
US9996577B1 (en) 2015-02-11 2018-06-12 Quest Software Inc. Systems and methods for graphically filtering code call trees
US10257123B2 (en) * 2015-05-05 2019-04-09 Dell Products Lp Software-defined-networking (SDN) enabling operating-system containers for real-time application traffic flow improvement
US10374904B2 (en) 2015-05-15 2019-08-06 Cisco Technology, Inc. Diagnostic network visualization
US9800497B2 (en) 2015-05-27 2017-10-24 Cisco Technology, Inc. Operations, administration and management (OAM) in overlay data center environments
US10187260B1 (en) 2015-05-29 2019-01-22 Quest Software Inc. Systems and methods for multilayer monitoring of network function virtualization architectures
CA2987933A1 (en) * 2015-06-01 2016-12-08 Draios Inc. Implicit push data transfer
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US9967158B2 (en) 2015-06-05 2018-05-08 Cisco Technology, Inc. Interactive hierarchical network chord diagram for application dependency mapping
US10089099B2 (en) 2015-06-05 2018-10-02 Cisco Technology, Inc. Automatic software upgrade
US10033766B2 (en) 2015-06-05 2018-07-24 Cisco Technology, Inc. Policy-driven compliance
US11438278B2 (en) * 2015-06-29 2022-09-06 Vmware, Inc. Container-aware application dependency identification
US10200252B1 (en) 2015-09-18 2019-02-05 Quest Software Inc. Systems and methods for integrated modeling of monitored virtual desktop infrastructure systems
US9800585B2 (en) 2015-10-21 2017-10-24 Red Hat, Inc. Restricting access by services deployed on an application server
US10346281B2 (en) * 2015-11-12 2019-07-09 Oracle International Corporation Obtaining and analyzing a reduced metric data set
US9866474B2 (en) * 2015-12-01 2018-01-09 Quanta Computer Inc. Centralized server switch management
US10931629B2 (en) 2016-05-27 2021-02-23 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10171357B2 (en) 2016-05-27 2019-01-01 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10289438B2 (en) 2016-06-16 2019-05-14 Cisco Technology, Inc. Techniques for coordination of application components deployed on distributed virtual machines
US10230601B1 (en) 2016-07-05 2019-03-12 Quest Software Inc. Systems and methods for integrated modeling and performance measurements of monitored virtual desktop infrastructure systems
US10708183B2 (en) 2016-07-21 2020-07-07 Cisco Technology, Inc. System and method of providing segment routing as a service
US10019282B1 (en) * 2016-07-21 2018-07-10 Parallels International Gmbh Virtual machine exit processing accelerator
US10031834B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10972388B2 (en) 2016-11-22 2021-04-06 Cisco Technology, Inc. Federated microburst detection
US10708152B2 (en) 2017-03-23 2020-07-07 Cisco Technology, Inc. Predicting application and network performance
US10523512B2 (en) 2017-03-24 2019-12-31 Cisco Technology, Inc. Network agent for generating platform specific network policies
US10250446B2 (en) 2017-03-27 2019-04-02 Cisco Technology, Inc. Distributed policy store
US10764141B2 (en) 2017-03-27 2020-09-01 Cisco Technology, Inc. Network agent for reporting to a network policy system
US10594560B2 (en) 2017-03-27 2020-03-17 Cisco Technology, Inc. Intent driven network policy platform
US10873794B2 (en) 2017-03-28 2020-12-22 Cisco Technology, Inc. Flowlet resolution for application performance monitoring and management
US10318332B2 (en) * 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
US10680887B2 (en) 2017-07-21 2020-06-09 Cisco Technology, Inc. Remote device status audit and recovery
TWI625670B (zh) * 2017-07-28 2018-06-01 Chunghwa Telecom Co Ltd A coding method for identifying the sequential order of tree data structures
US10581859B2 (en) 2017-08-07 2020-03-03 International Business Machines Corporation Detection and prevention of attempts to access sensitive information in real-time
US10554501B2 (en) 2017-10-23 2020-02-04 Cisco Technology, Inc. Network migration assistant
US10523541B2 (en) 2017-10-25 2019-12-31 Cisco Technology, Inc. Federated network and application data analytics platform
US10594542B2 (en) 2017-10-27 2020-03-17 Cisco Technology, Inc. System and method for network root cause analysis
US11233821B2 (en) 2018-01-04 2022-01-25 Cisco Technology, Inc. Network intrusion counter-intelligence
US11765046B1 (en) 2018-01-11 2023-09-19 Cisco Technology, Inc. Endpoint cluster assignment and query generation
US10574575B2 (en) 2018-01-25 2020-02-25 Cisco Technology, Inc. Network flow stitching using middle box flow stitching
US10999149B2 (en) 2018-01-25 2021-05-04 Cisco Technology, Inc. Automatic configuration discovery based on traffic flow data
US10873593B2 (en) 2018-01-25 2020-12-22 Cisco Technology, Inc. Mechanism for identifying differences between network snapshots
US10826803B2 (en) 2018-01-25 2020-11-03 Cisco Technology, Inc. Mechanism for facilitating efficient policy updates
US10798015B2 (en) 2018-01-25 2020-10-06 Cisco Technology, Inc. Discovery of middleboxes using traffic flow stitching
US10917438B2 (en) 2018-01-25 2021-02-09 Cisco Technology, Inc. Secure publishing for policy updates
US11128700B2 (en) 2018-01-26 2021-09-21 Cisco Technology, Inc. Load balancing configuration based on traffic flow telemetry
US10862779B2 (en) * 2018-04-23 2020-12-08 Vmware, Inc. Application dependency determination based on application logs
US11481240B2 (en) * 2018-11-30 2022-10-25 International Business Machines Corporation Capturing traces of virtual machine objects combined with correlated system data
EP3887985A1 (en) * 2018-11-30 2021-10-06 Morphisec Information Security 2014 Ltd Malicious code protection for computer systems based on system call table modification and runtime application patching
US11010280B1 (en) * 2019-03-13 2021-05-18 Parallels International Gmbh System and method for virtualization-assisted debugging
TWI840631B (zh) * 2020-11-18 2024-05-01 財團法人工業技術研究院 作業系統之多執行緒追蹤方法與系統及應用其之電子裝置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040177141A1 (en) * 2003-03-06 2004-09-09 Actional Corporation Network interaction analysis arrangement
TW200712893A (en) * 2005-06-21 2007-04-01 Intel Corp Address window support for direct memory access translation
US20090024994A1 (en) * 2007-07-20 2009-01-22 Eg Innovations Pte. Ltd. Monitoring System for Virtual Application Environments
TW200941209A (en) * 2008-03-28 2009-10-01 Microsoft Corp Power-aware thread schedulingard and dynamic use of processors

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4780821A (en) * 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
GB9805486D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Adapter
US6182136B1 (en) * 1998-09-08 2001-01-30 Hewlett-Packard Company Automated service elements discovery using core service specific discovery templates
AU2001293269A1 (en) * 2000-09-11 2002-03-26 David Edgar System, method, and computer program product for optimization and acceleration of data transport and processing
US7054930B1 (en) * 2000-10-26 2006-05-30 Cisco Technology, Inc. System and method for propagating filters
US7792948B2 (en) * 2001-03-30 2010-09-07 Bmc Software, Inc. Method and system for collecting, aggregating and viewing performance data on a site-wide basis
US20060130016A1 (en) * 2003-03-17 2006-06-15 Wagner John R Method of kernal-mode instruction interception and apparatus therefor
US20050216895A1 (en) * 2004-03-23 2005-09-29 Tran Hieu T Method and apparatus for remote debugging of kernel and application software
US7552447B2 (en) 2004-05-26 2009-06-23 International Business Machines Corporation System and method for using root cause analysis to generate a representation of resource dependencies
US7697545B1 (en) 2004-07-14 2010-04-13 Computer Associates Think, Inc. Discovery of component relationships in distributed data processing networks
US7509330B2 (en) * 2004-09-03 2009-03-24 Crossroads Systems, Inc. Application-layer monitoring of communication between one or more database clients and one or more database servers
US8028071B1 (en) * 2006-02-15 2011-09-27 Vmware, Inc. TCP/IP offload engine virtualization system and methods
US20140373144A9 (en) * 2006-05-22 2014-12-18 Alen Capalik System and method for analyzing unauthorized intrusion into a computer network
US8145760B2 (en) * 2006-07-24 2012-03-27 Northwestern University Methods and systems for automatic inference and adaptation of virtualized computing environments
US7843912B2 (en) * 2006-08-03 2010-11-30 Citrix Systems, Inc. Systems and methods of fine grained interception of network communications on a virtual private network
US7941812B2 (en) * 2007-01-30 2011-05-10 Hewlett-Packard Development Company, L.P. Input/output virtualization through offload techniques
US9459984B2 (en) * 2007-10-29 2016-10-04 Intel Corporation Method and systems for external performance monitoring for virtualized environments
US7782869B1 (en) * 2007-11-29 2010-08-24 Huawei Technologies Co., Ltd. Network traffic control for virtual device interfaces
US8261264B2 (en) * 2008-01-03 2012-09-04 Dell Products L.P. Accessing a network
US8849987B2 (en) 2008-07-29 2014-09-30 International Business Machines Corporation Automated discovery of a topology of a distributed computing environment
US8990368B2 (en) * 2009-02-27 2015-03-24 Red Hat, Inc. Discovery of network software relationships
US8863253B2 (en) 2009-06-22 2014-10-14 Beyondtrust Software, Inc. Systems and methods for automatic discovery of systems and accounts
US8341627B2 (en) * 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US9535732B2 (en) * 2009-11-24 2017-01-03 Red Hat Israel, Ltd. Zero copy transmission in virtualization environment
US7937438B1 (en) 2009-12-07 2011-05-03 Amazon Technologies, Inc. Using virtual networking devices to manage external connections
US9223617B2 (en) * 2010-05-06 2015-12-29 Nec Laboratories America, Inc. Methods and systems for migrating networked systems across administrative domains
US9292329B2 (en) * 2011-02-10 2016-03-22 Microsoft Technology Licensing, Llc Virtual switch interceptor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040177141A1 (en) * 2003-03-06 2004-09-09 Actional Corporation Network interaction analysis arrangement
TW200712893A (en) * 2005-06-21 2007-04-01 Intel Corp Address window support for direct memory access translation
US20090024994A1 (en) * 2007-07-20 2009-01-22 Eg Innovations Pte. Ltd. Monitoring System for Virtual Application Environments
TW200941209A (en) * 2008-03-28 2009-10-01 Microsoft Corp Power-aware thread schedulingard and dynamic use of processors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI652621B (zh) 2015-12-23 2019-03-01 財團法人工業技術研究院 產生虛擬機器訊息佇列應用程式之相依關係的方法與系統

Also Published As

Publication number Publication date
US20130159999A1 (en) 2013-06-20
US8881145B2 (en) 2014-11-04
TW201324182A (zh) 2013-06-16

Similar Documents

Publication Publication Date Title
TWI453604B (zh) 在一或多個虛擬機器中產生應用層級相依性的系統與方法
US10635558B2 (en) Container monitoring method and apparatus
US7171654B2 (en) System specification language for resource management architecture and corresponding programs therefore
US9916232B2 (en) Methods and systems of distributed tracing
KR102120567B1 (ko) 컨테이너들에서 고립된 애플리케이션들의 모니터링
Cardellini et al. Optimal operator replication and placement for distributed stream processing systems
Tak et al. vPath: Precise Discovery of Request Processing Paths from Black-Box Observations of Thread and Network Activities.
US11675682B2 (en) Agent profiler to monitor activities and performance of software agents
Sang et al. Precise, scalable, and online request tracing for multitier services of black boxes
US9521004B2 (en) Methods and systems of generating a billing feed of a distributed network
US10498817B1 (en) Performance tuning in distributed computing systems
EP3616061B1 (en) Hyper dynamic java management extension
Priyadarsini et al. Performance analysis of software defined network controller architecture—A simulation based survey
Shen et al. Network-centric distributed tracing with deepflow: Troubleshooting your microservices in zero code
Zavarella A methodology for using eBPF to efficiently monitor network behavior in Linux Kubernetes clusters
CN103164288B (zh) 在一个或多个虚拟机中生成应用级依赖的系统和方法
Parmer et al. Mutable protection domains: Adapting system fault isolation for reliability and efficiency
Anghel et al. Quantifying communication in graph analytics
Ezzati-Jivan et al. Debugging of performance degradation in distributed requests handling using multilevel trace analysis
Das et al. Live migration of containers in the edge
Weinsberg et al. Accelerating distributed computing applications using a network offloading framework
Pamboris Mobile code offloading for multiple resources
Cooper et al. The design and evaluation of mpi-style web services
Brunner et al. Management of Active Networks
Arad et al. GODS: Global observatory for distributed systems