9個Linux系統常用監控命令

来源:http://www.cnblogs.com/shiyanlou/archive/2017/09/19/7552425.html
-Advertisement-
Play Games

對於系統和網路管理員來說每天監控和調試Linux系統的性能問題是一項繁重的工作。監控和保持系統啟動並運行是很不容易的一件事。因此[實驗樓](https://www.shiyanlou.com/courses/)介紹部分linux的系統監控命令。 ...


我們的系統一旦上線跑起來我們自然希望它一直相安無事,不要宕機,不要無響應,不要慢騰騰的。但是這不是打開機器電源然後放任不管就可以得到的。所以我們要監視系統的運行狀況,發現問題及時處理。  

對於系統和網路管理員來說每天監控和調試Linux系統的性能問題是一項繁重的工作。監控和保持系統啟動並運行是很不容易的一件事。因此實驗樓介紹部分linux的系統監控命令。

(1)Linux進程監控:TOP

 
Linux下的Top命令是一個性能監控程式,許多系統管理員常常用它來監控Linux性能,在許多Linux或者類Unix操作系統里都有這個命令。

Top命令用於按一定的順序顯示所有正在運行而且處於活動狀態的實時進程,而且會定期更新顯示結果。這條命令顯示了CPU的使用率、記憶體使用率、交換記憶體使用大小、高速緩存使用大小、緩衝區使用大小,進程PID、所使用命令以及其他。它還可以顯示正在運行進程的記憶體和CPU占用多的情況。

$ top

操作截圖:

在圖中依次可以看到進程PID,進程用戶,CPU使用率,記憶體使用率、交換記憶體使用大小等等信息。top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表.

通過man top可以查看到詳細的top命令使用方式。

$ man top

操作截圖:

(2)虛擬記憶體統計 : vmstat

Linux 的 VmStat 命令用於顯示虛擬記憶體、內核線程、磁碟、系統進程、I/O 塊、中斷、CPU 活動 等的統計信息。

一般vmstat工具的使用是通過兩個數字參數來完成的,第一個參數是採樣的時間間隔數,單位是秒,第二個參數是採樣的次數,

$ vmstat 2 1
$ vmstat 2 2

操作截圖:

如果要求vmstat每2秒採集數據,一直採集,直到結束程式(Ctrl+c)。則省略採集次數:

$ vmstat 2

測試參數講解:

r :表示運行隊列,如果運行隊列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高
b :表示阻塞的進程數swpd :虛擬記憶體已使用的大小,如果大於0,表示你的機器物理記憶體不足了,如果不是程式記憶體泄露的原因,那麼你該升級記憶體了或者把耗記憶體的任務遷移到其他機器
free :空閑的物理記憶體的大小
buff : 系統占用的緩存大小
cache :直接用來記憶我們打開的文件,給文件做緩衝
si :每秒從磁碟讀入虛擬記憶體的大小,如果這個值大於0,表示物理記憶體不夠用或者記憶體泄露了
us :用戶CPU時間
sy :系統CPU時間
so : 每秒虛擬記憶體寫入磁碟的大小,如果這個值大於0,同上。
sy : 系統CPU時間,如果太高,表示系統調用時間長,例如是IO操作頻繁。
id : 空閑 CPU時間,一般來說,id + us + sy = 100
wt : 等待IO CPU時間。

(3)列出打開的文件:lsof

它常用於以列表的形式顯示所有打開的文件和進程。打開的文件包括磁碟文件、網路套接字、管道、設備和進程。

使用這條命令的主要情形之一就是在無法掛載磁碟和顯示正在使用或者打開某個文件的錯誤信息的時候。使用這條命令,你可以很容易地看到正在使用哪個文件。

$ lsof

操作截圖:

此命令運行的結果較長,截圖部分。

(4)網路包分析器:tcpdump

 
Tcpdump是最廣泛使用的網路包分析器或者包監控程式之一,它用於捕捉或者過濾網路上指定介面上接收或者傳輸的TCP/IP包。

它還有一個選項用於把捕捉到的包保存到文件里,以便以後進行分析。
 

  • -h:查看命令幫助
  • -i:網路介面
  • -c :需要輸出包數量
$ sudo apt-get update
$ sudo apt-get install tcpdump 
$ tcpdump -h
$ sudo tcpdump -i eth0 -c 3

操作截圖:

(5)網路狀態統計:netstat

  
Netstat是一個用於監控進出網路的包和網路介面統計的命令行工具。它是一個非常有用的工具,系統管理員可以用來監控網路性能,定位並解決網路相關問題。
    

  • -h: 查看幫助  
  • -r:  
  • -i:查看網路介面  
$ netstat -h
$ netstat -r
$ netstat -i

操作截圖:

(6)進程監控:Htop

  
Htop 是一個非常高級的互動式的實時linux進程監控工具。 它和top命令十分相似,但是它具有更豐富的特性,例如用戶可以友好地管理進程,快捷鍵,垂直和水平方式顯示進程等等。

Htop是一個第三方工具,它不包含在linux系統中,你需要使用管理工具去安裝它。

$ sudo apt-get install htop
$ htop

(7)監控Linux磁碟I/O :iotop

 
iotop命令同樣也非常類似於top命令和Htop程式,不過它具有監控並顯示實時磁碟I/O和進程的統計功能。在查找具體進程和大量使用磁碟讀寫進程的時候,這個工具就非常有用。    

這個命令只有在kernelv2.6.20及以後的版本中才有。python版本需要 python2.7及以上版本。由於系統原因,實驗環境並不支持此命令。此處僅做介紹。

(8)輸入/輸出統計:iostat

     
iostat是一個用於收集顯示系統存儲設備輸入和輸出狀態統計的簡單工具。這個工具常常用來追蹤存儲設備的性能問題,其中存儲設備包括設備、本地磁碟,以及諸如使用NFS等的遠端磁碟。

$ sudo apt-get install sysstat
$ iostat

操作截圖:

各項含義: avg-cpu段:

%user: 在用戶級別運行所使用的CPU的百分比.
%nice:優先進程消耗的CPU時間,占所有CPU的百分比.
%system: 在系統級別(kernel)運行所使用CPU的百分比.
%iowait: CPU等待硬體I/O時,所占用CPU百分比.
%steal: 管理程式維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比.
%idle: CPU空閑時間的百分比.

Device段:

tps: 每秒鐘發送到的I/O請求數.
KB_read /s: 每秒讀取的block數.
KB_wrtn/s: 每秒寫入的block數.
KB_read: 啟動到現在 讀入的block總數.
KB_wrtn: 啟動到現在寫入的block總數.

查看幫助:

$ man iostat

 

(9)實時區域網IP監控:IPTraf

IPTraf是一個在Linux控制台運行的、開放源代碼的實時網路(區域網)監控應用。它採集了大量信息,比如通過網路的IP流量監控,包括TCP標記、ICMP詳細信息、TCP/UDP流量分離、TCP連接包和位元組數。同時還採集有關介面狀態的常見信息和詳細信息:TCP、UDP、IP、ICMP、非IP,IP校驗和錯誤,介面活動等。

$ sudo apt-get install iptraf
$ sudo iptraf

操作截圖(註意圖片中下麵的提示操作信息。):

查看命令幫助信息,根據需要選擇合適的參數,進行監控。此處便不再贅述命令參數:

$ sudo iptraf -h

最後

以上內容全部摘選自實驗樓課程——Linux系統監控實戰,想要查看更多Linux系統常用監控命令以及監控工具的使用和介紹,點擊Linux系統監控實戰,就可以查看~


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

-Advertisement-
Play Games
更多相關文章
  • 五筆碼 五筆碼 select comm.fun_spellcode_wb('資料庫') from dual 結果:ORY 函數 函數 ...
  • 原文發表於cu:2017-02-10 參考文檔: Elasticsearchyum文檔:https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html Logstashyum文檔:https://www.elastic ...
  • 一,環境說明 dell vostro 1400筆記本,winxp sp3操作系統,ubuntu-9.10-desktop-i386.iso 寫這篇隨筆的時候我用的已經是ubuntu了。 我是在我的移動硬碟上的I盤中安裝的ubuntu,所以我先把這個盤的內容移到其它盤上了。 二,安裝過程 1,首先進入 ...
  • 用su 獲取root許可權 用yum -y install dhcp命令安裝dhcp服務(yum是基於RPM包管 理,自動下載RPM包並且安裝) 查看安裝後生成的配置文件 rpm -qc dhcp 編輯dhcp的配置文件 vim /etc/dhcp/dhcpd.conf 全局配置詳情: 使用subne ...
  • 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 在上一節分析輸入子系統內的intput_handler軟體處理部分後,接下來我們開始寫input_dev驅動 本節目標: 實現鍵盤驅動,讓開發板的4個按鍵代表鍵盤中的L、S、空格鍵、回車鍵 1.先來介紹以下幾個結構體使用和函數,下麵代碼中會用到 ...
  • 一、前言 Linux操作系統至1991年10月5日誕生以來,就其開源性和自由性得到了很多技術大牛的青睞,每個Linux愛好者都為其貢獻了自己的一份力,不管是在Linux內核還是開源軟體等方面,都為我們後來人提供了一個良好的學習和研究環境。 本文主要通過裁剪現有Linux系統,根據自己的需要,打造一個 ...
  • 本文目錄:1.1 安裝Ansible1.2 配置Ansible 1.2.1 環境配置 1.2.2 SSH互信配置 1.2.3 簡單測試1.3 inventory Ansible是一種批量、自動部署工具,不僅可以批量,還可以自動。它主要基於ssh進行通信,不要求客戶端(被控制端)安裝ansible。 ...
  • ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...