<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          服務器性能監(jiān)控的溫故知新

          共 4199字,需瀏覽 9分鐘

           ·

          2021-09-06 00:47

          服務器層一般是來自多個供應商的硬件和來自多個來源軟件的多樣化宇宙。通常,解決服務器底層性能問題往往是困難的,或者出于安全原因,很難處理。即使碰巧發(fā)現(xiàn)了底層的性能“事件”,傳統(tǒng)上測量和分析軟硬件性能的工具也較少,而且往往是針對供應商的。因為真正跨平臺工具包很少存在,所以沒有標準的方法來準確地查看事件、記錄事件以供以后分析,或者有效地解決問題。

          追蹤延遲時間

          研究服務器環(huán)境性能的第一步是跟蹤任何應用程序的事務延遲,從用戶的請求事件到最終的屏幕繪制。下一步是繪制服務器拓撲圖。為了做到這一點,很多方面都會受到質疑: 網(wǎng)絡拓撲、數(shù)據(jù)庫更新(鎖)、磁盤陣列、進程調度、 CPU 性能、內存關聯(lián)性和驅動程序/中斷服務時間。然后,使用一組性能分析工具,沿著測量的事務延遲的完整路徑研究軟硬件環(huán)境。用戶事務的每個部分應該能夠顯示出所經(jīng)歷的延遲。性能分析工具應該測量這些元素以及與它們相關的性能降低。

          一般要詳細研究與事務相關的用戶線程以及解決用戶讀寫所需的路徑。在調優(yōu)系統(tǒng)延遲時間的時候,需要遵循兩個步驟: 首先,定義用戶事務必須執(zhí)行的每個步驟,以滿足用戶請求; 然后計算每個步驟的時間。雖然看起來很簡單,但是在多節(jié)點環(huán)境中這可能相當困難。一個問題是找到一個準確的時間基準。NTP (網(wǎng)絡時間協(xié)議)通常是最好的定時方式。在機器本地,CPU 的時間基礎應該是足夠的。每一步都必須盡可能準確地定義。每個步驟包括每個數(shù)據(jù)包的遷移、每個所處理的數(shù)據(jù)包的交換、每個磁盤設備的交互以及每個網(wǎng)絡交互。必須在每個步驟中記錄時間戳并保存以便分析。延遲研究中的這些時間戳將確定服務器環(huán)境的區(qū)域,以便使用性能工具進行檢查。

          服務器監(jiān)控的內容 

          我們必須決定要監(jiān)控的位置和內容,這可以從對系統(tǒng)事務延遲的研究中得到,還可以監(jiān)控和分析為用戶事務服務的每個組件,并盡可能快地完成每個記錄。最后,有一個設備和過程的列表,然后必須找到適當?shù)姆椒▉頊y量感興趣的內容。

          簡單地說,計算機有五類性能分析感興趣的可測量數(shù)據(jù)對象: 全局屬性、 CPU、網(wǎng)絡接口、磁盤和進程。前四個描述了用戶的 Unix 計算機的物理屬性。全局屬性來描述內存、分頁和交換特性; 全局文件系統(tǒng)內存使用情況; 以及時間、正常運行時間和負載平均值等其他項。CPU 類別包含中斷、交叉調用,以及設備讀/寫和進程遷移等。網(wǎng)絡類別包括物理接口層及其組件,以及邏輯 TCP/IP 層,如套接字的使用等。磁盤類別包括物理磁盤設備、與 CPU 的互連以及通道等。所有這些的基礎是磁盤陣列的拓撲結構,通常從 CPU 的角度來看是隱藏的。這四個類別描述了對硬件世界的看法。

          最后一類是流程層,在這一層,會首先感受到對監(jiān)控的大部分需求。例如,用戶可能會抱怨響應時間太慢。無論 CPU 是處于熱狀態(tài)還是數(shù)據(jù)庫運行速度都低于正常速度,事件的第一個發(fā)生點是關注處于瓶頸的進程。然后,問題就變成了在哪里,發(fā)生了什么,以及如何記錄延遲事件的對象。

          工具箱選擇的依據(jù)

          常用的性能工具是是有限的,例如大多數(shù)軟件工程師都熟悉sar、 vmstat、 iostat 和 netstat等等,以及其他特定于供應商的工具。然而,一般來說,在一個并行的、線程安全的應用程序系統(tǒng)中,了解系統(tǒng)的平滑響應時間需要一個比傳統(tǒng)工具集更全面的性能工具。

          性能監(jiān)控的首要問題是采樣時間。大多數(shù)第三方工具面向服務器群,收集粗粒度性能數(shù)據(jù)用于容量規(guī)劃和服務器負載的熱點定位。在分布式環(huán)境中,對于測量應用性能的采樣時間與容量規(guī)劃所需的時間不同。成功的性能監(jiān)控和分析需要細粒度的時序軟件以及硬件工具。這些都較難找到。

          那么問題就變成了什么是粗粒度,什么是細粒度呢?一般地,將粗粒度定義為在5至30秒或更長時間內采集和儲存的采樣,細粒度是指采樣為百分之一秒至五秒。對于擔心事務延遲的軟件工程師來說,一秒或更短的時間是必要的。這些系統(tǒng)每秒可能有數(shù)以萬計的事務,并且從輸入包到達到用戶數(shù)據(jù)傳輸可能需要10毫秒或更短的延遲。監(jiān)控系統(tǒng)的唯一缺點是,如果決定將所有性能數(shù)據(jù)收集為日志格式并將其存儲到磁盤中時,且監(jiān)控系統(tǒng)可以支持如此細粒度采樣時間的話,這種日志會很大。

          服務器環(huán)境中的硬件問題集

          有沒有一個通用問題集呢?它圍繞著在可能位于存儲區(qū)域網(wǎng)絡環(huán)境中的磁盤陣列上定義用戶文件系統(tǒng)所涉及的硬件。在服務器層有幾個解決這個難題的局部方法。在最簡單的形式中,文件系統(tǒng)是跨磁盤陣列的多個物理磁盤資產(chǎn)定義的。從主機上可以看到文件系統(tǒng)的磁盤有三種方式: 從主機到磁盤陣列的互連; 磁盤陣列本身; 以及作為物理單元呈現(xiàn)給主機系統(tǒng)的磁盤片。對于主機而言,我們可以看到物理元素,可以使用作為一個盤片集合的元素。該元素通常是物理磁盤單元的路徑,但有些系統(tǒng)使用多路徑驅動程序使問題變得復雜化。

          大多數(shù)工具可以查看整個文件系統(tǒng)或單個磁盤,但很少有工具可以顯示文件系統(tǒng)的性能和用于構建該文件系統(tǒng)的元素。這是至關重要的,因為性能降低可能發(fā)生在整個鏈路的任何環(huán)節(jié)。SAN環(huán)境中可能存在通道故障、退化或交換問題。根據(jù)問題的類型,任何元素都會受到不同的影響。

          對于磁盤來說,最有用的計量器是平均服務時間。通道路徑上的間歇性故障可能是由于錯位的 SCSI 連接器、扭曲的光纖電纜或者偶然關閉的緩存。它們通常表現(xiàn)為由服務時間度量的磁盤長延遲。真正的問題是查找文件系統(tǒng)中執(zhí)行不良的物理元素,并隔離導致延遲的條件。

          用戶可以編寫腳本,以幫助提高在性能工具中定義磁盤單元集合的能力。基本上,這些腳本允許對字節(jié)的讀/寫進行時間序列測量,并允許對元設備及其物理磁盤元素進行服務時間測量。進一步,用戶可以選擇一個盤片的所有單個元素,查看讀/寫和服務時間,并以時間序列格式顯示數(shù)據(jù),這樣就可以輕松地發(fā)現(xiàn)性能異常,可以快速地將用戶指向緩存陣列、通道、 SAN 環(huán)境、交換機、共享磁盤陣列資源等。此外,盤片集和元設備的定義可以允許用戶對 CPU和網(wǎng)絡接口執(zhí)行類似的操作。然后,用戶可以在字段中捕獲這樣的事件,將其記錄下來,并在 GUI 中讀取日志,從而顯示的服務器實時狀態(tài)。

          例如,在數(shù)據(jù)庫延遲中,問題可能在用戶的事務中,也可能是特定數(shù)據(jù)庫交互不及時,或者特定的邏輯文件系統(tǒng)及其物理元素不能按要求執(zhí)行。一個更全面的性能工具包應該可以找到有問題的硬件或陣列配置錯誤。

          服務器環(huán)境中的進程問題

          再以數(shù)據(jù)庫更新線程為例,其中的數(shù)據(jù)庫線程與其他幾百個重量級和輕量級線程一起在實時數(shù)據(jù)庫中運行。像許多應用程序一樣,每個工作日都有大約一個活動高峰時段。線程檢查數(shù)據(jù)庫狀態(tài)和傳入數(shù)據(jù),以便為服務器層上的其他數(shù)據(jù)庫環(huán)境制定數(shù)據(jù)庫更新。這個線程是數(shù)據(jù)庫服務器上計算特定類別數(shù)據(jù)的幾百個線程之一。這個線程中可能有三個生成更新的源,第一個更新源是當前的數(shù)據(jù)庫狀態(tài);第二個來源是實時更新,通過一套前端計算機從外部來源接收的;第三個更新來源包括對若干用戶事務處理機及其本地數(shù)據(jù)庫的檢查。

          第一個關注點是在持續(xù)的峰值活動期間從這個線程的更新消費者之一注冊的。當這個線程變慢時,用戶數(shù)據(jù)庫線程的性能會下降。雖然有幾個數(shù)據(jù)庫服務器,但只有啟用這個流程的服務器存在性能問題,需要分析受影響服務器和未受影響服務器的磁盤陣列性能。

          首先,檢測磁盤陣列的統(tǒng)計數(shù)據(jù),在性能較差的服務器上會存在更多的緩存損失。然后,研究接觸該文件系統(tǒng)的線程的 i/o 速率。軟件按照設計的方式運行,每次更新都會將體現(xiàn)到磁盤上。當系統(tǒng)變得繁忙時,檢查活動增加,直到磁盤陣列緩存中有太多臟頁。一旦磁盤陣列緩存被淹沒,許多其他進程就會放慢速度。隨著整個數(shù)據(jù)庫環(huán)境的演變,全局數(shù)據(jù)庫檢查點和重新同步變得更加健壯,從而消除了應用程序中對本地每個進程進行檢查的一些需求。

          適用于所有服務器環(huán)境的工具包

          一個功能全面的工具包必須滿足工程師在當今操作的許多不同的環(huán)境。大多數(shù)商業(yè)安裝通常是分離的子網(wǎng),工程師與物理機器是分離的。甚至到現(xiàn)在,很少有工具能夠提供保持所有這些機器正常運行所需的性能指標,也沒有一套通用的工具來管理和排除多個云服務器的故障。

          一般地,工具包中的主要組件是 CLI 風格的執(zhí)行文件,它可以在任何服務器上遠程運行。計算機的所有指標都被記錄以便進行延遲分析。問題往往是在最意想不到的時候顯現(xiàn)出來,隨機的或者只有當某些條件得到滿足的時候才顯現(xiàn)出來。24小時不間斷地在計算機前實時處理許多問題是不現(xiàn)實的。日志記錄工具可以捕獲系統(tǒng)崩潰,在特定時間進行調度,或者在滿足某些用戶設置的條件時對機器活動進行快照。這些日志可以被積累起來并在某個地方進行編排,以便支持重點分析。因此,所有參與者都可以對服務器事故的衡量標準有相同的看法。每個參與者都可以讀取服務器事件的相同日志文件,能夠從日志文件“播放”記錄的服務器性能。故障排除程序可以暫停、回退、快進和循環(huán)日志中的區(qū)域,以便快速關注有問題的區(qū)域。

          性能工具包的另一個組件應該是一個分析工具,幫助工程師在采樣數(shù)據(jù)中找到與任何用戶定義的基線不一致的東西。可以定義一個規(guī)則引擎,該引擎可以偵聽計算機并在某些參數(shù)超出范圍時報告。

          小結

          人工智能風格的分析將使我們更接近實時的確定問題,分析器應該能夠檢測硬件或軟件與用戶可設置閾值的差異,掃描進程數(shù)據(jù),并確定導致事件的進程。例如,檢測并掃描 I/O熱點,以確定某些用戶應用程序線程當時正在進行I/O活動。然后可以直接對那些執(zhí)行I/O調用的線程執(zhí)行操作,它應該是一個可以自動化的過程。工具包可以使用人工智能捕獲軟件定位事件并捕獲關于事件的所有需要的數(shù)據(jù)。當我們使用這樣一個高度可調的性能分析器來增加服務器的日志記錄時,就將能夠在正確的時間收集日志。有了這種多平臺互操作性,如果擁有了一組標準化的工具,才可以快速有效地解決性能問題。


          【關聯(lián)閱讀】

          瀏覽 64
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产丝袜自拍 | 伊人夜夜躁AV伊人久久 | 在线看一区二区三区 | 日皮视频在线看 | 伊人久久伊人 |