系統性能檢測

来源:http://www.cnblogs.com/xiaocheche/archive/2017/11/30/7932004.html
-Advertisement-
Play Games

性能監測著重於電腦系統資源監測,是對系統進行預防性維護的必要工作,可通過分析監視數據來瞭解系統存在哪些瓶頸,應當採取何種措施來調整或更新受影響的資源, Linux系 統提供了多種性能監測工具來幫助管理員完成系統監控工作; 1》性能監測概述: 系統性能監測與調整是Linux系統管理員日常維護工作的一 ...


      性能監測著重於電腦系統資源監測,是對系統進行預防性維護的必要工作,可通過分析監視數據來瞭解系統存在哪些瓶頸,應當採取何種措施來調整或更新受影響的資源,              Linux系 統提供了多種性能監測工具來幫助管理員完成系統監控工作;

1》性能監測概述:

      系統性能監測與調整是Linux系統管理員日常維護工作的一項非常重要的內容,要衡量一個系統的性能狀態,可以從系統的響應時間以及系統吞吐量兩個角度來進行分析,響應            時間是指發出請求的時刻到用戶獲得返回結果所需要的時間,吞吐量是指在給定時間段內系統完成的交易數量,系統的吞吐量越大,系統的處理能力也就越強;管理員在進行性能監             測中的一個主要任務就是要找出系統的性能瓶頸所在,然後有針對性地進行調整,性能瓶頸是指那些對系統的性能起決定性影響的因素,不同的應用系統,性能瓶頸也有所不同,繁               忙的文件伺服器的性能瓶頸大多是磁碟子系統,大量用戶線上的應用程式伺服器的性能瓶頸可能是CPU子系統,而各種Internet網路伺服器的性能瓶頸通常是網路帶寬,需要進行監測             的系統資源主要是CPU,記憶體,磁碟和網路;

      紅帽5圖形界面提供有一個類似於Windows任務管理器的性能監測-----系統監視器;從主菜單“系統”中選擇“管理”>“系統監視器”命令即可打開系統監視器,實時地查看進程,                     CPU,記憶體,網路和文件系統等信息;

          

          

      系統監視器雖然很方便,但功能有限,如果要對系統性能 做進一步分析,必須要藉助一些性能監視工具,如vmstat,mpstat,iostat,sar和top等,mpstat提供CPU相關數據;sar用              於收集,報告並存儲系統活動的信息;iostat提供CPU使用率及硬碟吞吐率的數據,vmstat可對虛擬記憶體,進程,CPU活動的總體情況進行統計;top是一個非常優秀的互動式綜合性              能監測工具;iostat和sar命令由sysstat軟體包提供,預設沒有安裝,安裝紅帽5的第三張光碟中的sysstat軟體包sysstat-7.0.0-3.el5.i386.rpm即可;

2》CPU性能監測:

      CPU決定著系統的運算能力,系統內所有的程式指令都是經過CPU處理的,由於Linux自身是一個多用戶多任務的操作系統,因此CPU同時處理著來自不同優先等級的程式,如             果過多的程式同時執行,CPU就有可能形成系統的性能瓶頸;關於CPU的總體性能情況,可以使用sar命令進行查看,sar命令的基本用法如下:

        sar  [選項]    [採樣間隔]  [採樣次數]

      採樣的時間間隔單位是秒,管理員可以根據需要按照一定的採樣間隔收集一定時間段的性能數據進行分析,以瞭解系統的性能狀況,為更準確地評估系統的性能,應該分析一              段時間內而不是單純某個具體時刻的性能數據,列如每隔5秒收集一次CPU性能數據,共收集三次,可以運行以下命令:  

          

        上述信息中列出了採樣時間,並對CPU的使用率按類目分類統計,最後一行是平均值,其中,%user表示用戶進程的CPU時間占用率;%nice表示用戶進程的nice操作(特                   權進程)的CPU時間占用率;%system表示系統進程的CPU時間占用率;%iowait表示等待磁碟I/O所消耗的CPU時間占用率;%steal表示虛擬設備的CPU時間占用率;%idel表示                   CPU空閑時間所占百分比;sar命令顯示CPU總的性能情況,對於有多處理器系統或者多核心的處理器,可以使用mpstat命令分別查看各個CPU的情況,語法格式如下:

         mpstat  [-P   CPU編號|ALL]  [採樣間隔]  [採樣次數]

     通過選項-P來指定要查看的CPU,CPU編號從0開始,例如查看第一個CPU:

           

      該命令提供的信息比sar多3種,%irq列表表示硬中斷的CPU時間占用率,%soft列表示軟中斷的CPU時間占用率,intr/s列表示每秒鐘處理的中斷次數(次/秒);

3》記憶體性能監測:

      電腦的記憶體是有一定容量的,當所需要的記憶體數量超過物理記憶體的容量時,系統會使用虛擬記憶體的分頁技術和交換技術,即將程式進程的一部分或全部移到硬碟上,以便為                新的進程騰出空間,當分頁和交換不太頻繁時,系統是完全可以接受的,當頻繁地進行分頁和交換時,系統性能就會受到影響,從而形成性能瓶頸;

       1>使用free命令顯示系統的各種記憶體情況:

            free命令可以用來查看記憶體和虛擬記憶體的使用情況,預設單位KB,這裡給出一個實例:

                

          Mem行顯示的是物理記憶體,total列顯示物理記憶體總量,used列顯示使用量(分配給緩存使用的數量,其中可能部分緩存並未實際使用),free列表示可用量(未被分                                配的記憶體),shared列顯示多個進程共用的記憶體,buffers列顯示系統分配但未被使用的緩衝(用作緩衝區的記憶體數量),cache列顯示系統分配但未被使用的緩存(用作高                             速緩存的記憶體數量);  

           提示:buffers與cache都占用記憶體,應註意他們的區別,buffers是塊設備的讀寫緩存區,是存放待寫到磁碟上的數據的記憶體,是物理級的,它根據磁碟的讀寫設                                                           計,將分散的寫操作集中進行,以減少磁碟碎片和反覆尋道,提高系統性能;cache一般意思是緩存,是作為頁面高速緩存的記憶體,屬於文件系統,存放從磁                                                     盤讀取後待處理的數據,它將讀取過的數據保存起來,重新讀取時若命中(找到需要的數據)就不去讀取硬碟,若沒有命中就讀硬碟,當然,其中的數據根據                                                     讀取頻率進行組織,會將最頻繁讀取的內容放在最容易找到的位置; 

          接下來的一行顯示應用程式的記憶體使用,兩列分別顯示真正用掉的記憶體(分配給緩存使用的數量減去未被使用的buffers與cache,也就是實際使用的buffers與cache總                             量)和系統當前實際可用的記憶體(未被使用的buffers與cache和未被分配的記憶體之和),“-/+”符號表示buffers/cache的大小是可以改變的,不是實際占記憶體的;

          最後一行Swap顯示交換空間記憶體的使用狀態,3列分別顯示交換的容量(total),使用量(used)和可用的空閑交換區(free);要通過free進行一段時間的記憶體使用                             監測,可以使用-s選項指定一個時間間隔(單位s)進行持續的監測:

              

       2>使用vmstat命令全面監測記憶體:

            要全面監測記憶體性能,可以使用vmstat命令,vmstat命令可以用來顯示物理記憶體和虛擬記憶體的有關狀態,同時也可以顯示CPU的有關信息:

                   

            vmstat命令監測的數據比較多,分成幾大類來顯示:

              procs(進程)部分的r,b列分別顯示準備就緒等待運行的進程數量和處於不可中斷的休眠狀態的進程數量,所謂不可中斷的休眠狀態是指進程收到任何信號都不                                                                            會被喚醒成為可運行狀態,將一直等待硬體狀態的改變;

              memore(記憶體)部分的swpd,free,buff和cache列分別顯示虛擬記憶體的使用量,空閑物理記憶體,記憶體緩衝區和高速緩存的大小;

              swap(交換)部分的si和so列分別顯示每秒交換到磁碟和從磁碟中讀取的位元組數;

              io(輸入輸出)部分的bi和bo列分別顯示每秒寫入塊設備和從塊設備中讀取的快數;

              system(系統)部分的in和cs列分別顯示每秒中斷(包括時鐘中斷)和上下文切換(context  switches)的次數,當一個進程用完時間片或者被更高優先順序的                                                                                 進程搶占時間塊後,它會被轉到CPU的等待運行隊列中,同時讓其他進程在CPU上運行,這個進程切換的過程被稱作上下文切換,過多的上                                                                                 下文切換會造成系統很大的開銷;

              cpu部分是顯示占用CPU時間的百分比,u表示用戶進程時間,sy表示系統進程時間,id表示空閑時間,wa表示等待時間,st表示虛擬機占用時間;

            vmstat命令也可以指定數據採樣間隔和採樣次數,即使用以下格式:

                vmstat    [採樣間隔]  [採樣次數]

                  

 

4》磁碟I/O性能監測:

        由於磁碟設備的運行速度比CPU的指令處理速度要慢很多,因此涉及磁碟操作的部分是整個過程執行過程中最慢的操作,儘管磁碟自身硬體技術如轉速,緩存等不斷提                     高,但是磁碟依然很容易形成系統性能的瓶頸;iostat工具可以對系統的磁碟操作活動進行監測,並報告磁碟活動統計情況,包括數據吞吐量和傳輸請求等數據,基本用法如下:

        iostat  [選項]  [採樣間隔]  [採樣次數]

            

         預設情況下,iostat命令按磁碟設備(Device列)來顯示彙總的使用情況,並顯示CPU使用情況(avg-cpu部分),如果加上選項-d將只統計磁碟使用情況,關於磁碟的                        數據使用情況,具體的統計數據包括5項:tps表示每秒發送到設備上的I/O請求次數;BLK_read/s和BLK_wrtn/s分別表示設備每秒讀取和寫入數據的快數;BLK_read和                                    BLK_wrtn分別表示設備讀取和寫入數據的總快數;如果要查看磁碟中分區的使用情況,可以使用-p選項指定分區;選項-t表示在每次的統計結果中顯示時間,如果要改變磁碟使                     用統計單位塊,使用選項-k以KB代替塊,-m以MB代替塊;

         另外,還可以使用sar   -b命令統計I/O和傳輸速率,預設以10分鐘作為一個間隔顯示最近一段時間以來的數據,統計內容包括5項:tps表示每秒從物理磁碟I/O請求的次                       數(多個邏輯請求會被合併為一個I/O磁碟請求,一次傳輸的大小不確定),rtps和wtps分別表示每秒鐘讀請求和寫請求的次數,bread/s和bwrtn/s分別表示每秒鐘從磁碟讀取和                       寫入到磁碟的數據的快數;

5》通過top實現綜合監控:

        top命令是一個非常優秀的互動式性能監測工具,可以在一個統一的界面中按照用戶指定的時間間隔刷新顯示包括記憶體,CPU,進程,用戶數據,運行時間等的性能信息,                  其命令格式如下:

            top        -hv   |  -bcHisS     -d    刷新間隔      -n    刷新次數     -p    pid   [,pid....]

        選項-p   pid表示只顯示指定的pid進程信息,top命令運行結果如下:

              

         第一行(top):顯示系統運行時間,用戶數以及負載的平均值信息;

         第二行(Tasks):顯示進程的概要信息,分別是當前進程總數,正在運行的進程數,正在休眠的進程數,已停止的進程數和僵死的進程數;

         第三行(CPU):顯示CPU占用百分比,分別是用戶進程,系統進程,改變過優先順序的用戶進程,空閑狀態,等待I/O,硬體中斷,軟體中斷和虛擬設備所占的CPU百分                                                                  比;

         第四行(Mem):顯示物理記憶體信息,分別是物理記憶體總量,已使用的物理記憶體數量,未被使用的物理記憶體數量,用作緩衝區的記憶體數量;

         第五行(Swap):顯示虛擬記憶體信息,分別是虛擬記憶體總量,已使用的虛擬記憶體數量,空閑的虛擬記憶體數量,用作緩存的虛擬記憶體數量;

                   最後一部分是每個進程的性能統計信息,每個進程有12項信息:PID(進程ID),USER(執行進程的用戶),PR(優先順序),NI(nice值),VIRT(進程使用                                    的虛擬記憶體大小),RES(進程使用的物理記憶體大小),SHR(共用記憶體),S(進程狀態),%CPU(占用CPU百分比),%MEM(使用物理記憶體的百分比),                                            TIME+(使用CPU的時間),COMMAND(進程的名稱);  

6》優化系統性能:

        優化系統性能的基本步驟可以歸納 如下:

            1)使用監測工具監視系統的活動;

            2)分析得到的性能數據,找出不能滿足性能要求的環節;

            3)分析造成性能降低的原因,採取相應的優化措施;

          提高系統性能常用的方法是從硬體配置上提高性能,例如用SCSI介面硬碟代替IDE硬碟,使用多個硬碟建立RAID,使用儘可能大的物理記憶體,使用多處理系統等;

          如果只是進行Linux預設的安裝,而不對其中涉及性能的選項進行具體詳細的配置,系統的性能往往不會達到最優化的效果,通過對內核的調整可以使系統整體性能達                        到最優,建議在調整內核的時候,先將內核升級到一個比較新的內核版本,一般來說,新的內核版本對於性能方面有更多的選項給予支持,為使性能達到最優,應該根據用戶                         自己的需要,主動捨棄一些占用資源太多的功能,配置一個適合自己的自定義內核;

          系統目前CPU使用率高是由於IO等待所造成的,並非由於CPU資源不足,用戶應檢查系統中正在進行IO操作的進程,併進行調整和優化;

          系統的空閑記憶體少不一定說明系統性能有問題,這需要結合si和so(記憶體和磁碟的頁面交換)兩個指標進行分析,當物理記憶體能足以存放所有進程的數據,物理記憶體                         和磁碟(虛擬記憶體)是不應該存在頻繁的頁面交換操作的,只有當物理記憶體不能滿足需要時系統才會把記憶體中的數據交換到磁碟中,由於磁碟的性能是比記憶體慢很多的,所以                        如果存在大量的頁面交換,那麼系統的性能必然會受到很大影響;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 系統環境:Ubuntu 16.04 LTS. 安裝robomongo Robo 3T,運行時報以下錯誤: 可以嘗試按照以下方法解決: 即將robo3t解壓目錄下的/lib/libstdc++*所匹配的文件移到備份一個備份目錄中,然後再嘗試啟動robo3t,可以解決該問題。 如何將robo3t添加到U ...
  • 在我們開發項目的時候,經常會遇到大塊數據的問題(2M-100M),比如說保存報表中1w個人的ID號,他就像一個腫瘤一樣,存儲在伺服器哪裡都 覺得噁心,放在redis,mongodb中吧,一下子你就會收到報警,因為記憶體滿了。。。放在mysql吧???你還得建立一個text欄位,和一些小欄位混在一起, ...
  • 1 ;SQL Server 2014 Configuration File 2 [OPTIONS] 3 4 ; 指定安裝程式的工作流,如 INSTALL、UNINSTALL 或 UPGRADE。這是必需的參數。 5 6 ACTION="Install" 7 8 ; 尚未定義命令行參數 ROLE 的詳 ...
  • [20171130]關於rman備份疑問.txt--//前面測試太亂,重新做一些rman as copy相關測試.1.環境:SCOTT@book> @ &r/ver1PORT_STRING VERSION BANNER x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Da ...
  • 聲明局部變數語法:DECLARE @variable_name DataType其中 variable_name為局部變數的名稱,DataType為數據類型。給局部變數賦值有兩種方法:1、SET @variable_name=value2、SELECT @variable_name=value兩者的 ...
  • 這篇主要講如何將數據保存回Mysql,但是裡面還會涉及到如何將錯誤信息以及提示信息保存到文件里,方便以後的運維,再有就是如何使用PHP寫進程BAT。 Redis數據刷回資料庫前的知識準備 首先針對上篇提到的關於redis刷回資料庫的安全性的設計模式,因為我們使用的是list來做數據索引,所以在我們將 ...
  • 註意要先關閉 selinux 和 防火牆 創建掛載點 mkdir /opt/gua 掛載光碟 mount /dev/cdrom /opt/gua/ 進入目錄 cd /opt/gua/CentOS/ 安裝samba服務 rpm -ivh samba-3.0.33-3.28.el5.i386.rpm - ...
  • 1.1 ISO/OSI 七層模型 筆記: 打入ipconfig: mac地址:Media Access Control 也是物理地址,這是由網卡決定的。負責的是內網,也就是區域網通信。 IPv4地址:是負責外網的,也就是公網通信。 埠是來確定你伺服器給的哪個服務的 1.2 Linux網路基礎之TC ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...