linux基本功系列之uptime命令实战
文章目錄
- 一. uptime命令介紹
- 二. 語法格式及常用選項
- 三. 參考案例
- 3.1 顯示當前系統運行負載情況
- 3.2 顯示機器正常運行的時間
- 3.3 顯示機器啟動時間
- 3.4 關于平均負載的介紹
- 總結
前言🚀🚀🚀
想要學好Linux,命令是基本功,企業中常用的命令大約200多個,不管是寫shell腳本還是管理操作系統,最常用的命令必須要牢牢掌握,像我們以前學乘法口訣一樣,爛熟于心,唯有如此,才能打牢基礎。
💓 知識最重要的是記憶
💓 入門須知: 想要人生從容,必須全力以赴,努力才是你最終的入場券🚀🚀🚀
💕 最后: 努力成長自己,愿我們都能在看不到的地方閃閃發光 ,一起加油進步🍺🍺🍺
一. uptime命令介紹
Linux系統中的uptime命令主要用于獲取主機運行時間和查詢Linux系統負載等信息。
uptime命令可以顯示系統已經運行了多長時間,信息顯示依次為:現在時間、系統已經運行了多長時間、目前有多少登錄用戶、系統在過去的1分鐘、5分鐘和15分鐘內的平均負載。 uptime命令用法十分簡單,直接輸入uptime即可查看系統負載情況。
二. 語法格式及常用選項
使用幫助命令查看具體的參數和語法格式:
uptime --help
可以看到,uptime后面可以直接跟選項。
| -p | 采用可讀友好的格式輸出系統已運行時長 |
| -h | –help 顯示幫助信息 |
| -s | –since 以格式 yyyy-mm-dd HHSS format 輸出系統啟動時間 |
| -V | –version 顯示版本信息 |
三. 參考案例
3.1 顯示當前系統運行負載情況
不加任何參數直接執行uptime,如下:
[root@mufenggrow ~]# uptime22:53:55 up 3:05, 3 users, load average: 0.00, 0.02, 0.05以上列出的參數解釋:
| 22:53:55 | 當前系統的時間 |
| up 3:05 | 系統已經運行了3個小時零5分 |
| 3users | 當前登錄用戶數 |
| load average: 0.00, 0.02, 0.05 | 系統負載,即任務隊列的平均長度。 三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。 |
系統負載,即任務隊列的平均長度。 三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。
經驗:單核心,1分鐘的系統平均負載不要超過3
基于以上經驗:
如果服務器的CPU為1核心,則load average中的數字 >=3 負載過高,如果服務器的CPU為4核心,則load average中的數字 >=12 負載過高。
3.2 顯示機器正常運行的時間
此處只顯示機器的正常運行時間,所以需要用到-參數
[root@mufenggrow ~]# uptime -p up 3 hours, 12 minutes可以看到顯示的時間為3小時12分鐘,這是系統運行時間,一般等于你開機的時間,比如:
[root@master-21 ~]# uptime -p up 7 hours, 43 minutes3.3 顯示機器啟動時間
我們知道系統運行的時間之后,想知道是從哪個時間點運行的,就可以使用-s參數
[root@mufenggrow ~]# uptime -s 2023-01-31 19:48:26可以看到-s顯示的是具體的系統啟動運行時間。
3.4 關于平均負載的介紹
平均負載:
平均負載是指單位時間內,系統處于可運行狀態和不可中斷狀態的平均進程數,也就是平均活躍進程數,它和CPU使用率并沒有直接關系。
- 可運行狀態:是指正在使用CPU或者正在等待CPU的進程,也就是ps命令看到的處于R狀態的進程
- 不可中斷狀態:是指正在處于內核態關鍵流程中的進程,并且這些進程是不可打斷的,比如常見的等待硬件設備的IO操作,也就是ps命令看到的處于D狀態的進程
不可中斷狀態是系統對進程和硬件設備的一種保護機制
說通俗點,平均負載其實就是平均活躍進程數。最理想的平均活躍進程數就是每個CPU上都剛好運行著一個進程,這樣每個CPU都得到了充分的利用。
當一個進程向磁盤讀寫數據時,為了保證數據的一致性,在得到磁盤回復前,它是不能被其他進程或者中斷打斷的,這個時候的進程就處于不可中斷狀態。如果此時的進程被打斷了,就容易出現磁盤數據與進程數據不一致的問題
除了使用uptime,我們用 cat /proc/loadavg命令也可以查看平均負載:
[root@mufenggrow ~]# cat /proc/loadavg 0.00 0.01 0.05 1/514 14655前三個數字與uptime一致,后面的:
1/514 表示正在運行的進程數有一個,分母是總進程數
14655 表示正在運行的進程ID為 14655
關于cpu我們之前介紹過一些概念:
CPU個數:即物理CPU數,主板實際插入的CPU數量,可以數不重復的 physical id 有幾個(physical id)
CPU核數:單塊CPU上面能處理數據的芯片組的數量,如雙核,四核等(cpu cores)
邏輯CPU數:一般情況下,邏輯CPU=物理CPU個數x每顆核數。如果不等,表示CPU支持超線程技術
平均負載和cpu個數有一定的關系 比如平均負載為4時意味著什么呢?
多核cpu和多個cpu效果類似
# cat /proc/cpuinfo #查看CPU的信息 # grep -c ‘model name’ /proc/cpuinfo #返回CPU的總核心數- 在只有4個CPU的系統上,意味著所有的CPU都剛好被完全占用。
- 在8個CPU的系統上,意味著CPU有50%的空閑。
- 而在有2個CPU系統上,意味著有一半的進程競爭不到CPU。
其他經驗:
如果1分鐘,5分鐘,15分鐘的三個值基本相同,或者相差不大,那就說明系統負載很平穩。
如果1分鐘的值遠小于15分鐘的值,就是說在15分鐘之前負載很高,到了1分鐘的時候已經下降很多了,甚至負載已經不高了,這時候只需要關注下為什么在15分鐘高就行了,不需要介入處理。。
但如果1分鐘的值遠大于15分鐘的值,說明近1分鐘負載在增加,這種情況可能是臨時性的,也可能還會持續,要持續觀察,一旦1分鐘的平均負載超過了CPU的數量,意味著系統正在發生過載的問題。
例如:一個單核系統上,平均負載為1.78,0.60,6.56,說明1分鐘內,系統有78%的超載,而在15分鐘內有556%的超載。
實際生產中,平均負載多高時需要關注
當系統負載持續大于0.7,就要開始排查了,防止情況惡化;
當系統負載持續大于1.0,你就必須手動尋找解決辦法,把這個值降下來;
當系統負載達到5.0,就表明你的系統有很嚴重的問題,長時間沒有響應,或者接近死機了,一般不允許讓系統達到這個值
常用的性能排查工具
- stress:Linux 系統壓力測試工具,這里我們用作異常進程模擬平均負載升高的場景。
- mpstat:是一個常用的多核 CPU 性能分析工具,用來實時查看每個 CPU 的性能指標,以及所有CPU的平均指標。
- pidstat:是一個常用的進程性能分析工具,用來實時查看進程的 CPU、內存、I/O 以及上下文切換等性能指標。
總結
💕💕💕 好啦,這就是今天要分享給大家的全部內容了,我們下期再見!? ? ?
🍻🍻🍻如果你喜歡的話,就不要吝惜你的一鍵三連了~
總結
以上是生活随笔為你收集整理的linux基本功系列之uptime命令实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【面试题】HTML篇(一)
- 下一篇: 【正点原子MP157连载】 第十四章 I