TWI819662B - 系統剖析調校方法與電腦系統 - Google Patents

系統剖析調校方法與電腦系統 Download PDF

Info

Publication number
TWI819662B
TWI819662B TW111122314A TW111122314A TWI819662B TW I819662 B TWI819662 B TW I819662B TW 111122314 A TW111122314 A TW 111122314A TW 111122314 A TW111122314 A TW 111122314A TW I819662 B TWI819662 B TW I819662B
Authority
TW
Taiwan
Prior art keywords
program
analysis
adjustment
profiling
memory
Prior art date
Application number
TW111122314A
Other languages
English (en)
Other versions
TW202401253A (zh
Inventor
吳奕寬
洪勝凱
吳蔡偉
鄭才進
吳育昆
Original Assignee
瑞昱半導體股份有限公司
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 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW111122314A priority Critical patent/TWI819662B/zh
Priority to US18/323,422 priority patent/US20230409462A1/en
Application granted granted Critical
Publication of TWI819662B publication Critical patent/TWI819662B/zh
Publication of TW202401253A publication Critical patent/TW202401253A/zh

Links

Images

Classifications

    • 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/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/3409Recording 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 for performance assessment
    • 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)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stacking Of Articles And Auxiliary Devices (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一種系統剖析調校方法,以及運行系統剖析調校方法的電腦系統,在方法中,經電腦系統開機後運行一作業系統,其中運行一剖析調校系統。當作業系統載入並執行系統剖析調校程式,即啟始此剖析調校系統,其中包括同時運行有一剖析程序與一調校程序,剖析調校系統可通過剖析程序取得作業系統運作時產生的系統核心數據,可藉由核心追蹤工具分析系統核心數據,當判斷需要調校時,剖析程序通知調校程序,使調校程序根據剖析程序的分析結果即時調校作業系統的運作參數。

Description

系統剖析調校方法與電腦系統
說明書公開一種系統調校技術,特別是一種能夠根據事件即時資訊執行系統剖析與資源調配的系統剖析調校方法,以及執行系統剖析調校方法的電腦系統。
在特定電腦系統中,如Linux,其中執行動態調配處理器中斷(interrupt,IRQ)的工具如Linux irqbalance,預設為系統常駐(daemon),目的是能夠通過中斷調配以達到處理器負載平衡(loading balance),藉此提升系統效能。然而,這類電腦系統的中斷處理機制實現的動態調配最低的單位是1秒控制一次,因此無法使用在需要更迅速調配的應用下。
在習知技術中,常見僅在系統的監視,但沒辦法即時發現問題及時調校。另有Linux Cilium計畫,通過軟體手段從系統核心得出工作量(workload)資訊,據此執行動態流量平衡,特別是網路流量的平衡,還可排解網路連線問題,但這個計畫是針對資料中心(data center),而非針對使用者端的環境,也沒有額外做出控制調配的行為,沒有針對硬體上的特性去做動態設定。
再者,在現有單晶片系統中的Linux作業系統平台上,會為了加速某個特定功能而提出解決方案,但是這個解決方案可能對於其他功能造成不利的影響,因此需要權衡(trade-off)而犧牲了系統性能。
舉例來說,如果為了要提升網路效能而調高系統核心中無線區域網路行程(thread)的系統優先權,這個調整的動作可能相對地影響了播放串流影音的優先權,也就是高優先權的應用會取得過多處理器資源,因此,因為無線區域網路行程獲得過多的運算資源而影響串流影音的順暢度。
在另一範例中,在網路介面卡(NIC)中調高中斷緩和(interrupt mitigation)而能減少處理器針對網路所耗費的效能,因此有機會提升整體系統效能,但對特定小封包應用(例如小檔案存取、網頁應用等)卻會因為調高中斷緩和而導致網路介面卡的緩衝器容易被填滿而引發掉封包的問題。
為了要實現電腦系統資源有效調配的目的,其中之一包括快速調配中斷(interrupt,IRQ),揭露書提出一種系統剖析調校方法以及執行此方法的電腦系統。這是一種智能型的系統控制機制,通過事件驅動(event driven)調配系統資訊分配,可以針對使用者端的應用調配系統資源,特別可應用在網路流量調配,因此,在電腦系統中,可以達成使用者端客製化、硬體動態調配,以及即時應變的技術效果。
根據實施例,關於運行系統剖析調校方法的電腦系統,電腦系統中設有處理單元,於電腦系統開機後運行作業系統時,可自記憶單元中載入一系統剖析調校程式,並執行以下步驟,包括執行系統剖析調校程式後啟始一剖析程序與一調校程序,主要可通過剖析程序取得並分析電腦系統的系統核心數據,以即調校程序可根據剖析程序的分析結果調校作業系統的運作參數。
進一步地,所述剖析程序藉由作業系統中一核心追蹤工具分析系統核心數據,並將分析的數據主動告知調校程序。而此核心追蹤工具可為Linux系統中的擴展封包過濾器,用於分析Linux系統的系統核心行為,包括動態追蹤、靜態追蹤與剖析事件。
進一步地,剖析程序還以一數據處理工具分析系統核心數據,包括分析通過網路介面卡的封包並發現封包錯誤。
進一步地,剖析程序還以一效能分析工具分析系統核心數據,包括得出系統運作效能,以發現系統問題。
之後,剖析程序可通過比對分析結果與一調校門檻判斷是否執行調校,若比對結果顯示需要調校時,剖析程序產生調校訊號,並傳送至調校程序,使調校程序執行調校。
當剖析程序剖析出作業系統中不同應用之間受到網路流量影響,剖析程序通知調校程序,使得調校程序可即時調校作業系統中一或多個應用行程的優先權。
或者,當剖析程序剖析出電腦系統的網路介面卡因為緩衝記憶體被填滿而有掉封包的問題,經剖析程序通知調校程序,可通過調校程序調校中斷緩和的參數。
或者,經剖析程序剖析出記憶體不足事件、記憶體不足刪除程式啟動的事件或是配置記憶體失敗的事件,經剖析程序通知調校程序,可通過調校程序調校記憶體水位。
為使能更進一步瞭解本發明的特徵及技術內容,請參閱以下有關本發明的詳細說明與圖式,然而所提供的圖式僅用於提供參考與說明,並非用來對本發明加以限制。
以下是通過特定的具體實施例來說明本發明的實施方式,本領域技術人員可由本說明書所公開的內容瞭解本發明的優點與效果。本發明可通過其他不同的具體實施例加以施行或應用,本說明書中的各項細節也可基於不同觀點與應用,在不悖離本發明的構思下進行各種修改與變更。另外,本發明的附圖僅為簡單示意說明,並非依實際尺寸的描繪,事先聲明。以下的實施方式將進一步詳細說明本發明的相關技術內容,但所公開的內容並非用以限制本發明的保護範圍。
應當可以理解的是,雖然本文中可能會使用到“第一”、“第二”、“第三”等術語來描述各種元件或者訊號,但這些元件或者訊號不應受這些術語的限制。這些術語主要是用以區分一元件與另一元件,或者一訊號與另一訊號。另外,本文中所使用的術語“或”,應視實際情況可能包括相關聯的列出項目中的任一個或者多個的組合。
相對於習知技術如Linux BCC(BPF compiler collection)等系統核心的工具主要是追蹤(tracing)與剖析(profiling)的功能而無法即時發現問題與及時調校的限制,揭露書提出一種系統剖析調校方法與執行此方法的電腦系統,電腦系統中作業系統運行一剖析調校系統,剖析調校系統是通過電腦系統實現可根據即時資訊進行適時調校的智能型的解決方案,可通過事件驅動的方式實現更快調配控制的功效,系統剖析調校方法還可針對使用者端的行為執行資源調配,並針對網路流量問題執行控制與調校。更者,若應用在特定相容的硬體上,如相容的單晶片系統(SoC)與網路介面卡等相關電路,所提出的系統剖析調校方法,以及所實作的剖析調校系統,可以通過硬體調配有效增進系統效能。
圖1首先顯示運行系統剖析調校方法的電腦系統實施例示意圖。
電腦系統經開機後,通過處理單元101運行作業系統100,處理單元101中設有管理電腦系統周邊電路元件向處理單元101請求服務的中斷(interrupt,IRQ)的中斷管理單元111,周邊電路元件例如圖式中的記憶單元103、網路模組105、輸出入單元107以及顯示模組109等。
根據系統剖析調校方法主要運行方式,於電腦系統開機後運行作業系統100時,電腦系統的處理單元101自記憶單元103中載入一系統剖析調校程式,經處理單元101執行系統剖析調校程式後,將可啟始剖析程序與調校程序。
根據實施例,電腦系統中運行的作業系統100如Linux作業系統或以Linux為基礎發展出來的各種作業系統,習知Linux作業系統核心中的分析工具如BPF/eBPF,此為運行於Linux作業系統中的擴展封包過濾器(原文為extended Berkeley packet filter,eBPF),是一種Linux核心內建的內部行為(behavior)分析工具,用於分析系統核心行為,功能包括動態追蹤(dynamic tracing)、靜態追蹤(static tracing)與剖析事件(profiling event)。然而,所述習知核心系統分析工具缺乏即時調校的能力,因此揭露書提出所述的系統剖析調校方法與電腦系統。在一實施例中,於作業系統運行基於事件驅動(event driven)的剖析調校系統110,剖析調校系統110較佳地為處理單元101執行系統剖析調校程式所實現的軟體工具,藉此實現根據即時的系統核心數據進行適時調校的目的,例如針對網路模組105中硬體效能進行即時調校。
剖析調校系統110執行的系統剖析調校方法實現一種智能型系統控制(intelligent system control,ISC)的機制,剖析調校系統110包括兩種以硬體與軟體協作的手段,包括剖析(profiling)以發現系統問題的軟體手段,以及調校(controlling)系統資源的軟體手段,可分別剖析系統核心數據,如剖析電腦系統中記憶單元103、網路模組105與輸出入單元107運作效能的數據,以及調校系統核心中運作這些電路元件的參數。剖析與調校手段實作為運行於作業系統中的剖析程序與調校程序,剖析與調校可以是兩個程序或是行程(thread),也可以是同一個程序的兩個功能。
所述剖析調校系統的運作方法實施例之一是通過運行於作業系統中各種子系統與軟體工具取得各種系統核心數據,剖析調校系統的架構可參考圖2實施例示意圖。
根據實施例,剖析調校系統運作時啟始了兩個程序,剖析程序201與調校程序202,其中剖析程序201能夠存取系統核心中的數據,調校程序202為根據剖析程序201的分析結果對各系統核心工具進行參數調校。系統核心數據的來源如圖式中的虛擬檔案系統211與除錯檔案系統212。
以Linux作業系統或是以Linux為基礎開發出來的作業系統為例,虛擬檔案系統211如Linux作業系統中的虛擬檔案系統(sysfs或procfs),如sysfs的虛擬檔案系統為Linux作業系統的原生檔案系統,用於存取核心資料結構(kernel data structure)的介面,藉此可放置可讀取寫入調校之系統參數;而procfs同樣為一種Linux作業系統的原生檔案系統之一,procfs提供系統核心空間(kernel space)與使用者空間(user space)之間的通訊。
如此,虛擬檔案系統211可以把電腦裝置和驅動程式的資訊從核心空間(kernel space)通過虛擬檔案(virtual files)的形式輸出到使用者空間(user space),也可以設定裝置和驅動程式。
除錯檔案系統212如Linux作業系統中的除錯檔案系統(debugfs),除錯檔案系統212為一種用於核心除錯的虛擬檔案系統,可讓核心開發者通過此除錯檔案系統和使用者空間交換資料。在Linux作業系統中,debugfs是一個虛擬文件系統,用於提供系統核心程序與檔案系統的資訊,系統開發人員可以根據這些資訊進行系統調校。如此,所述剖析程序201亦可以對即時取得的除錯檔案系統212中的系統核心數據進行分析,以產生調校訊號,並通知調校程序202執行即時的調校。
剖析程序201還可以通過其他各種系統核心工具取得系統運作的資訊,如圖式中的核心追蹤工具213、數據處理工具214、效能分析工具215、硬體記錄工具216以及其他系統工具217。調校程序202則進一步地可對虛擬檔案系統211、核心追蹤工具213、數據處理工具214、效能分析工具215、硬體記錄工具216以及其他系統工具217進行調校。
以Linux作業系統或是以Linux為基礎開發出來的作業系統為例,核心追蹤工具213為Linux作業系統中的擴展封包過濾器,如上述的Linux作業系統核心內建的內部行為分析工具eBPF,這是用於追蹤作業系統的行為以及其中應用程式的行為(behavior of application and system),之後可以統計方法取得其中有意義的資訊,其他系統核心數據還包括bcc tool、bpftrace,這些是簡化的eBPF的工具。
數據處理工具214如Linux系統的快速資料路徑(eXpress data path,XDP)工具,以處理網路封包為例,因此,剖析程序201可以通過此快速資料路徑可以在發現封包錯誤時在前期判斷是否要繼續處理此封包或是丟棄。
效能分析工具215如Linux系統的perf(performance),是系統核心內建的系統效能分析工具,可以得出系統運作效能,通過perf可快速發現系統問題。因此剖析程序201通過效能分析工具215可以分析出系統需要調校的部分,經取得Perf得出的系統效能數據,可以通過統計方法取得其中有意義的資訊,進而針對其中需要調校的部分執行調校。舉例來說,剖析程序201通過效能分析工具215能取得的系統核心數據可包括各種電路元件的運作狀態,如系統中單晶片的運作狀態,網路介面卡的運作狀態等。
硬體記錄工具216為作業系統中針對單晶片系統、網路介面卡等硬體資訊的系統記錄工具,運作時,當調校程序202自剖析程序201接收到調校訊號,同時接收到需要調校的數據,暫存於暫存器(register)中,再可通過硬體記錄工具216調校運作參數,如中斷緩和(interrupt mitigation)的參數。另不排除上述多個軟體工具以外的其他系統工具217。
基於圖2示意顯示的剖析調校系統所運行的系統剖析調校方法可參考圖3描述的實施例流程圖。
電腦系統開機後,運行一作業系統(步驟S301),經作業系統自記憶體載入並執行系統剖析調校程式後,啟始常駐運行於作業系統中剖析調校系統(步驟S303),其中同時運行有一剖析程序(profiling process)201與一調校程序(controlling process)202。
在剖析調校系統運作中,剖析調校系統可通過剖析程序201主動取得作業系統運作時產生的系統核心數據,如電腦系統中的處理器中斷數據、記憶體運用數據或網路流量數據等(步驟S305)。根據實施例,剖析程序201通過核心追蹤工具213、取得系統核心數據,包括自虛擬檔案系統211與除錯檔案系統212取得的系統運行的數據;以及通過數據處理工具214取得如網路介面卡運行的資訊,可以分析通過網路介面卡的封包並發現封包錯誤;還可通過效能分析工具215各種電路元件的運作狀態,如系統中單晶片的運作狀態,網路介面卡的運作狀態等,因此,效能分析工具215可以事件驅動的方式主動告知剖析程序201,再由剖析程序201繼續分析系統核心數據(步驟S307)。
根據實施例,剖析程序201可藉由核心追蹤工具213分析系統核心數據,包括可比對分析結果與一調校門檻判斷是否執行調校(步驟S309),若比對結果顯示需要即時調校時(是),剖析程序201產生一調校訊號(步驟S311),通過調校訊號將發現需要調校的事件通知調校程序202(步驟S313),使調校程序根據剖析程序的分析結果,針對事件調校作業系統的運作參數(步驟S315)。反之,若沒有任何事件需要即時調校(否),流程將重複步驟S305、步驟S307與步驟S309等。
圖4顯示運用圖2所描述的剖析調校系統執行系統剖析調校方法的範例之一流程圖。
經作業系統載入並執行系統剖析調校程式後,其中啟始的剖析程序201先取得系統核心數據(步驟S401),透過作業系統中的核心追蹤工具213或數據處理工具214剖析所取得的系統核心數據(步驟S403),如剖析其中上下文切換(context switch)、封包內容(packet content)、流程行為(process behavior)等,經剖析程序剖析出作業系統中不同應用之間受到網路流量影響,例如區域網路流量影響串流影音的流量而產生流量卡頓的事件,因此需要調校程序202調校系統運作參數時(步驟S405),即發送記載相關事件的調校訊號給調校程序202(步驟S407),使得調校程序202可以通過特定系統工具(如chrt指令)調校作業系統中一或多個應用行程的優先權,若是針對區域網路影響網路流量而言,將調校區域網路行程的優先權(步驟S409),藉此即時解決流量卡頓的問題。
根據圖4所示流程,在此列舉一範例,此例顯示為通過剖析上下文切換(context switch)機制切換處理器中的行程(thread)。因為電腦系統處理器中運行的多個行程分享了處理器計算資源,因此可通過中斷(IRQ)切換處理器的行程,當在接受到中斷時,處理器即進行上下文切換。一般來說,若調高區域網路行程(network thread)的優先權,可以提升區域網路效能,但相對於串流影音的應用來說,區域網路的應用不應具有高優先權,因此,若因為區域網路行程占用太多處理器資源可能引發串流影音有卡頓的問題。如此,當剖析程序通過分析系統核心數據中關於多個應用的網路流量的數據而發現有串流影音解碼(decode)或播放(play)效能被影響的問題時,即通知調校程序,通過調校上下文切換即時調整中斷時序,並可調降區域網路行程的優先權以即時解決串流影音卡頓的問題。
根據另一實施範例,如圖5所示運用圖2所描述的剖析調校系統執行系統剖析調校方法的範例之二流程圖。
經作業系統載入並執行系統剖析調校程式後,其中啟始的剖析程序201可主動取得系統核心數據,或通過Linux作業系統中perf程序主動告知剖析程序201(步驟S501),接著剖析系統核心數據(步驟S503),如剖析其中上下文切換(context switch)、封包內容(packet content)、流程行為(process behavior)等,以剖析出網路封包的形式,是大封包還是小封包、小檔案還大檔案(步驟S505),例如可通過Linux作業系統中的ethtool工具分析網路介面卡中是否有掉封包的情形發生。
當剖析程序201發現要調校的問題而需要調校程序202調校系統時,發送包含要調校的事件的調校訊號至調校程序202(步驟S507),這時調校程序202將通過硬體記錄工具216取得網路介面卡中記憶體的記錄,以調校中斷緩和的參數(步驟S509)。
另一方面,除了因為系統效能被影響而有丟失封包的問題以外,網路模組中網路介面卡(NIC)因為調高中斷緩和亦可能導致封包丟失的問題,因為中斷緩和會影響電腦系統一次處理的封包數量。依據圖5顯示流程,針對網路流量卡頓問題而調校特定行程的優先權的程序,可以調高網路介面卡的中斷緩和,以減少處理器單方面針對區域網路所花費的效能,因此可有效提升系統整體效能。另一方面,特定小封包應用(如小檔案傳輸、網頁應用等)卻可能會因為調高中斷緩和而導致網路介面卡的緩衝記憶體容易被填滿而引發掉封包的問題,對此,揭露書提出的剖析調校系統可以針對即時發生的事件(如掉封包)進行執行調校(如調校中斷緩和)。
舉例來說,若設定800us的緩和時間(mitigation time),網路介面卡在這段時間(800us) 可能接收了8筆封包,電腦系統在一次程序中可處理8筆封包;若設定200us的緩和時間,網路介面卡在這段時間接收2筆封包,電腦系統在一次程序中也只處理2筆封包,相較之下,要重複四次程序才可以處理完8筆封包,表示處理器在200us的緩和時間的工作量就會是在800us的緩和時間的工作量的四倍。因此,可以通過剖析程序解析封包內容(packet content/header),得出使用網路流量的應用,當有任何偏重而使用過多處理器資源而引起卡頓時,通過運行於作業系統中的剖析調校系統可以即時調整各應用的優先權。
再一實施範例可參考圖6所示運用圖2所描述的剖析調校系統執行系統剖析調校方法的範例之三流程圖。
經作業系統載入並執行系統剖析調校程式後,其中剖析程序201主動取得系統核心數據,或Linux作業系統中核心追蹤工具213與數據處理工具214通過perf程序主動告知剖析程序201(步驟S601),接著剖析系統核心數據(步驟S603),例如剖析程序201可剖析作業系統中特定位置(如ftrace events oom)中記載的記憶體運作資訊,判斷是否發生記憶體不足(out of memory,oom)事件以及記憶體不足刪除程式(oom killer)啟動的事件(步驟S605),還可從另一特定位置(如ftrace events kmem)得知是否發生配置記憶體失敗的事件(步驟S607),以及通過另一特定位置(如ftrace events vmscan)得知系統回收的狀態(步驟S609)。
如此,剖析程序201依據上述各種記憶體運作資訊比對調校門檻以判斷是否執行調校,若比對結果顯示需要調校時,剖析程序發送具有相關事件資訊的調校訊號給調校程序202(步驟S611),調校程序202可通過記憶體調整函式,如procfs(min_free_kbytes,watermark_scale_factor,extra_free_kbytes),以調校記憶體水位(步驟S613)。
依據圖6顯示流程,列舉一實施範例,在習知技術中,若得出Linux作業系統的記憶體不夠而突破了記憶體水位,作業系統內部機制會回收記憶體。但若一次要的量太大回收來不及會啟動記憶體不足刪除程式(oom killer)刪除特定使用記憶體的應用程序,因此記憶體水位常常需要根據不同平台不同行為進行寫入固定的數值。因此,通過揭露書提出的剖析調校系統,經剖析程序剖析系統核心數據後,剖析程序會自動偵測是否有記憶體不足刪除程式啟動的事件,以及當前記憶體水位的需求,通過調校程序動態設置不同的記憶體水位數值,以避免發生啟動記憶體不足刪除程式的情況。
根據以上實施例可知,通過剖析調校系統中的剖析程序,可解析作業系統運用的記憶體水位,當記憶體水位降低以致於要砍掉某個行程之前,可通過調校程序調整記憶體水位。其中調整記憶體水位的依據可參考圖7所示之記憶體運作曲線圖。
根據圖7顯示曲線圖,縱軸顯示為空閒記憶頁(memory page),橫軸為時間軸,並針對特定作業環境設定幾個固定記憶體水位,此記憶體曲線表達出隨著時間變化的記憶體使用狀態,以及對應幾個記憶體水位應執行的管理措施。其中第一時間701的區間顯示空閒記憶頁下降,顯示作業系統在第一時間701正常配置記憶體,接著進入第二時間702,也就是到達記憶體低水位處,此時可通過作業系統中特定記憶體管理工具(如Linux中的kswapd常駐程式)通過檢查記憶體使用狀況選擇性回收記憶體,確保剩餘記憶體夠用。之後,若記憶體管理工具回收狀況不足以應付系統要求之記憶體,記憶體空間持續消耗,可能會到達或是小於記憶體最小水位的第三時間703的區間,在習知技術中,會自動啟動記憶體回收程序直接回收(direct-reclaim),以使得記憶體可以到可運用的階段,如第四時間704,若進入第五時間705並恢復到高水位時,所述記憶體管理工具可以進入休眠狀態。
然而,在記憶體管理的程序中,但若一次要的量太大回收來不及將會導致記憶體不足,而啟動刪除程序(oom killer)主動砍掉特定應用程序。不同的是,揭露書提出的剖析調校系統中的剖析程序可根據系統核心數據取得記憶體使用情況,並持續比對系統設定的調校門檻,確認記憶體使用是否符合系統預設的規則。也就是說,剖析程序會根據系統核心數據判斷是否上述記憶體不足刪除程式有啟動過,並判斷當前記憶體水位的需求,以動態設置不同的記憶體水位數值。
舉例來說,根據剖析調校系統的運作規則,當剖析程序發現作業系統使用記憶體的狀態符合規則,以調校程序應用作業系統的記憶體調整函式,如procfs(min_free_kbytes,watermark_scale_factor,extra_free_kbytes),以調校記憶體水位數值。
根據上述實施例可知,揭露書提出的系統剖析調校方法可以達成的效果是,透過動態調校就不用妥協而犧牲系統中某些應用的性能,並因為動態調校程序能有效提升硬體功能的使用度,硬體也不用為了某些應用而增加成本。例如,通過動態調整中斷緩和,可使得網路介面卡的緩衝記憶體的容量有使用彈性而可降低硬體成本;通過區域網路行程優先權的調整可讓使用者在網路上使用沒有卡頓的問題。
根據以上實施例描述,通過揭露書提出的系統剖析調校方法,以及執行此方法的電腦系統,可以實現動態調配系統資源的目的,以增進系統效能,以下列舉幾個實施態樣,而實際運作方法與功效並不受到以下範例限制。
範例一:在播放高解析度(如4K)串流影音時,需要較高的網路頻寬,所述剖析調校系統先調整系統核心中網路行程為一般優先權,將系統資源先讓給其他更重要的元件,當經剖析系統資源可知播放串流影音有卡頓問題,剖析調校系統將網路行程調整具有較高優先權,以提升網路效能。
範例二:當剖析調校系統中剖析手段發現網路儲存系統(NAS)平台在執行小檔案傳輸時發現有掉封包,通過調校手段自動調整網路介面卡的中斷緩和(interrupt mitigation)以處理掉封包的問題。
範例三:所述運行於電腦系統中的剖析調校系統自動偵測到運行於其中作業系統(如Linux作業系統、Android®或Chrome OS®)的圖形使用者介面(GUI)前景的程序,可以對前景程序給予較高的網路行程優先權以達到更好的使用者體驗。
範例四:因為習知記憶體水位針對每個作業環境的設定為固定的數值,避免作業系統(如Linux系統)因為記憶體不夠啟動回收記憶體的作業而需要砍掉特定程序,如此,揭露書提出執行系統剖析調校方法的剖析調校系統可通過剖析手段從系統核心資訊中自動偵測是否作業系統中程序刪除程式(如OOM killer)有啟動過,以及得知當前記憶體水位的需求,以通過調校手段動態設置不同的記憶體水位數值。
範例五:在運行特定作業系統的電腦系統中玩電腦遊戲時,常常因為背景下載檔案而導致遊戲卡頓,執行系統剖析調校方法的剖析調校系統將自動偵測前景遊戲,以調低背景下載檔案之優先權,達到更好的電腦遊戲使用者體驗。
範例六:當運行在作業系統中背景程序太過繁雜而有過載問題時,如果系統目前並無運算資源分散的機制,可能導致單顆處理器(或核心)資源不足進而引發效能低落。所述剖析調校系統在系統運作中可自動偵測是否有單顆處理器資源不足的問題,若有,將透過調校手段以轉移程序到別顆處理器(或核心)以及轉移硬體與軟體中斷到別顆處理器(或核心),達到資源平衡的目的,並增進系統效能。
綜上所述,根據上述實施例所描述的系統剖析調校方法與電腦系統,當完成系統開機後,在作業系統中啟始剖析調校系統,並分別以剖析程序即時發現系統問題,調校程序則是針對剖析程序能夠取得的系統核心數據執行對應的參數調校工作,如此,剖析調校系統可通過前述剖析手段動態發現系統問題,再藉由調校手段動態調配系統資源,以達到更好的效能。
以上所公開的內容僅為本發明的優選可行實施例,並非因此侷限本發明的申請專利範圍,所以凡是運用本發明說明書及圖式內容所做的等效技術變化,均包含於本發明的申請專利範圍內。
101:處理單元
100:作業系統
111:中斷管理單元
103:記憶單元
105:網路模組
107:輸出入單元
109:顯示模組
110:剖析調校系統
211:虛擬檔案系統
212:除錯檔案系統
213:核心追蹤工具
214:數據處理工具
215:效能分析工具
216:硬體記錄工具
217:其他系統工具
201:剖析程序
202:調校程序
701:第一時間
702:第二時間
703:第三時間
704:第四時間
705:第五時間
步驟S301~S315:系統剖析調校流程
步驟S401~S409:系統剖析調校的應用之一流程
步驟S501~S509:系統剖析調校的應用之二流程
步驟S601~S613:系統剖析調校的應用之三流程
圖1顯示運行系統剖析調校方法的電腦系統實施例示意圖;
圖2顯示剖析調校系統的架構實施例示意圖;
圖3顯系統剖析調校方法的實施例流程圖;
圖4顯示運用系統剖析調校方法的範例之一流程圖;
圖5顯示運用系統剖析調校方法的範例之二流程圖;
圖6顯示運用系統剖析調校方法的範例之三流程圖;以及
圖7顯示作為調校參考的系統核心中記憶體運作曲線圖。
211:虛擬檔案系統
212:除錯檔案系統
213:核心追蹤工具
214:數據處理工具
215:效能分析工具
216:硬體記錄工具
217:其他系統工具
201:剖析程序
202:調校程序

Claims (9)

  1. 一種系統剖析調校方法,包括:一電腦系統開機後運行一作業系統,載入並執行一系統剖析調校程式,其中包括一剖析程序與一調校程序;通過該剖析程序取得並分析該電腦系統的系統核心數據,再經比對一分析結果與一調校門檻判斷是否執行調校;當比對該分析結果與該調校門檻的結果顯示需要調校時,該剖析程序產生一調校訊號,並傳送至該調校程序以使該調校程序執行調校;以及該調校程序根據該剖析程序的分析結果調校該作業系統的運作參數。
  2. 如請求項1所述的系統剖析調校方法,其中該剖析程序藉由該作業系統中一核心追蹤工具分析該系統核心數據,並將分析的數據告知該調校程序。
  3. 如請求項2所述的系統剖析調校方法,其中該核心追蹤工具為一Linux系統中一擴展封包過濾器,用於分析該Linux系統的系統核心行為。
  4. 如請求項2所述的系統剖析調校方法,其中該剖析程序還以一數據處理工具分析該系統核心數據,包括分析通過一網路介面卡的封包。
  5. 如請求項2所述的系統剖析調校方法,其中該剖析程序還以一效能分析工具分析該系統核心數據,包括得出系統運作效能,以發現系統問題。
  6. 如請求項1所述的系統剖析調校方法,其中,經該剖析程序剖析出該作業系統中不同應用之間受到網路流量影響,經該剖析程序通知該調校程序,該調校程序即時調校該作業系統中一或多個應用行程的優先權。
  7. 如請求項1所述的系統剖析調校方法,其中,經該剖析程序剖析出該電腦系統的一網路介面卡因為緩衝記憶體被填滿而有掉封包的問題,經該剖析程序通知該調校程序,通過該調校程序調校中斷緩和的參數。
  8. 如請求項1所述的系統剖析調校方法,其中,經該剖析程序剖析出記憶體不足事件、記憶體不足刪除程式啟動的事件或是配置記憶體失敗的事件,經該剖析程序通知該調校程序,通過該調校程序調校記憶體水位數值。
  9. 一種運行一系統剖析調校方法的電腦系統,包括:一處理單元,於該電腦系統開機後運行一作業系統時,自一記憶單元中載入一系統剖析調校程式,執行以下步驟:執行該系統剖析調校程式,其中包括一剖析程序與一調校程序;通過該剖析程序取得並分析該電腦系統的系統核心數據,再經比對一分析結果與一調校門檻判斷是否執行調校;當比對該分析結果與該調校門檻的結果顯示需要調校時,該剖析程序產生一調校訊號,並傳送至該調校程序以使該調校程序執行調校;以及該調校程序根據該剖析程序的分析結果調校該作業系統的運作參數。
TW111122314A 2022-06-16 2022-06-16 系統剖析調校方法與電腦系統 TWI819662B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW111122314A TWI819662B (zh) 2022-06-16 2022-06-16 系統剖析調校方法與電腦系統
US18/323,422 US20230409462A1 (en) 2022-06-16 2023-05-25 Method for system profiling and controlling and computer system performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111122314A TWI819662B (zh) 2022-06-16 2022-06-16 系統剖析調校方法與電腦系統

Publications (2)

Publication Number Publication Date
TWI819662B true TWI819662B (zh) 2023-10-21
TW202401253A TW202401253A (zh) 2024-01-01

Family

ID=89169980

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111122314A TWI819662B (zh) 2022-06-16 2022-06-16 系統剖析調校方法與電腦系統

Country Status (2)

Country Link
US (1) US20230409462A1 (zh)
TW (1) TWI819662B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300166A1 (en) * 2008-05-30 2009-12-03 International Business Machines Corporation Mechanism for adaptive profiling for performance analysis
TWI321726B (en) * 2003-10-14 2010-03-11 Ibm Method of dynamically controlling cache size
US20160188374A1 (en) * 2005-07-14 2016-06-30 International Business Machines Corporation Method and system for application profiling for purposes of defining resource requirements
US20160246697A1 (en) * 2015-02-22 2016-08-25 International Business Machines Corporation Hardware-based edge profiling
US20170337083A1 (en) * 2015-09-01 2017-11-23 Intel Corporation Dynamic tuning of multiprocessor/multicore computing systems
TW202121167A (zh) * 2019-11-28 2021-06-01 瑞昱半導體股份有限公司 通用分析裝置與方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI321726B (en) * 2003-10-14 2010-03-11 Ibm Method of dynamically controlling cache size
US20160188374A1 (en) * 2005-07-14 2016-06-30 International Business Machines Corporation Method and system for application profiling for purposes of defining resource requirements
US20090300166A1 (en) * 2008-05-30 2009-12-03 International Business Machines Corporation Mechanism for adaptive profiling for performance analysis
US20160246697A1 (en) * 2015-02-22 2016-08-25 International Business Machines Corporation Hardware-based edge profiling
US20170337083A1 (en) * 2015-09-01 2017-11-23 Intel Corporation Dynamic tuning of multiprocessor/multicore computing systems
TW202121167A (zh) * 2019-11-28 2021-06-01 瑞昱半導體股份有限公司 通用分析裝置與方法

Also Published As

Publication number Publication date
US20230409462A1 (en) 2023-12-21
TW202401253A (zh) 2024-01-01

Similar Documents

Publication Publication Date Title
US8078824B2 (en) Method for dynamic load balancing on partitioned systems
US20190129744A1 (en) Live migration of hardware accelerated applications
US9710321B2 (en) Atypical reboot data collection and analysis
US8954997B2 (en) Resource affinity via dynamic reconfiguration for multi-queue network adapters
US7529867B2 (en) Adaptive, scalable I/O request handling architecture in virtualized computer systems and networks
DE102020132078A1 (de) Ressourcenzuteilung basierend auf anwendbarem service level agreement
US9110702B2 (en) Virtual machine migration techniques
US11301350B1 (en) Automated testing of systems and applications
US20220100599A1 (en) Automated testing of systems and applications
US11983100B2 (en) Automated testing of systems and applications
WO2012163217A1 (zh) 一种基于硬件基础工具监视虚拟化系统性能的架构及方法
US20090276205A1 (en) Stablizing operation of an emulated system
US10877790B2 (en) Information processing apparatus, control method and storage medium
US7698598B1 (en) Automatic generation of core files and automatic generation of support information with generation of core files
TWI819662B (zh) 系統剖析調校方法與電腦系統
US7707462B1 (en) Non-disruptive generation of core files without reboot
US20220374256A1 (en) Information processing system, information processing apparatus, method of controlling the same, and storage medium
US20170277587A1 (en) Computer system and memory dump method
CN115774596A (zh) 数据处理方法、装置及电子设备
CN117331654A (zh) 系统剖析控制方法与计算机系统
US8037242B2 (en) Contents delivery system using cache and data replication
JP2010515121A (ja) アプリケーションシステムのストレージリソースを識別する方法およびシステム
Samanta et al. Persistent memory-aware scheduling for serverless workloads
Yu et al. Analysis of CPU pinning and storage configuration in 100 Gbps network data transfer
CN114510324B (zh) 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统