1.命令簡介
uptime 用于顯示系統(tǒng)總共運(yùn)行了多長時間和系統(tǒng)的平均負(fù)載。
無選項(xiàng) uptime 命令會顯示一行信息,依次為:當(dāng)前時間、系統(tǒng)已經(jīng)運(yùn)行了多長時間、目前有多少用戶登錄、系統(tǒng)在過去的 1 分鐘、5 分鐘和 15 分鐘內(nèi)的平均負(fù)載。輸出結(jié)果等同于 top 命令匯總區(qū)的第一行。
2.命令格式
uptime [options]
3.選項(xiàng)說明
-p, --pretty 采用可讀友好的格式輸出系統(tǒng)已運(yùn)行時長 -h, --help 顯示幫助信息 -s, --since 以格式 yyyy-mm-dd HHSS format 輸出系統(tǒng)啟動時間 -V, --version 顯示版本信息
4.常用示例
(1)查看系統(tǒng)運(yùn)行時長與平均負(fù)載。
uptime 2255 up 445 days, 9:38, 5 users, load average: 0.08, 0.08, 0.06
顯示的信息依次為:當(dāng)前時間(2255)、系統(tǒng)已經(jīng)運(yùn)行了多長時間(up 445 days, 9:38,表示 445 天 9 時 38 分鐘)、目前有多少登錄用戶(5 users)、系統(tǒng)在過去的 1 分鐘、5 分鐘和 15 分鐘內(nèi)的平均負(fù)載(load average: 0.08, 0.08, 0.06)。
(2)查看系統(tǒng)啟動時間。
uptime -s 2018-07-20 1321
(3)只輸出系統(tǒng)運(yùn)行時長。
uptime -p up 1 year, 11 weeks, 4 days, 9 hours, 43 minutes
5.拓展知識
5.1 什么是系統(tǒng)平均負(fù)載
系統(tǒng)平均負(fù)載指單位時間內(nèi),系統(tǒng)中處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的進(jìn)程數(shù),也就是平均活躍進(jìn)程數(shù),他和 CPU 使用率沒有直接關(guān)系。
可運(yùn)行狀態(tài)的進(jìn)程指正在使用 CPU 或正在等待使用 CPU 的進(jìn)程,也就是我們常用 ps 命令看到的,處于 R 狀態(tài)(Running 或 Runnable)的進(jìn)程。
不可中斷狀態(tài)的進(jìn)程指正在等待某些 I/O 的進(jìn)程,即我們在 ps 命令中看到的 D 狀態(tài)(Uninterruptible Sleep,也稱為 Disk Sleep)的進(jìn)程。例如等待磁盤 I/O,當(dāng)一個進(jìn)程向磁盤讀寫數(shù)據(jù)時,為了保證數(shù)據(jù)的一致性,在得到磁盤回復(fù)前,它是不能被其他進(jìn)程打斷的,這個時候的進(jìn)程就處于不可中斷狀態(tài)。如果此時的進(jìn)程被打斷了,就容易出現(xiàn)磁盤數(shù)據(jù)與進(jìn)程數(shù)據(jù)不一致的問題。所以,不可中斷狀態(tài)實(shí)際上是系統(tǒng)對進(jìn)程和硬件設(shè)備的一種保護(hù)機(jī)制。
5.2 系統(tǒng)平均負(fù)載多少時合理
uptime 命令給出的三個時間段的平均負(fù)載并不是標(biāo)準(zhǔn)化的,因?yàn)橄到y(tǒng)中 CPU 核心數(shù)量是不定的。所以平均負(fù)載為 1 意味著擁有一個 CPU 核心的系統(tǒng)一直在忙碌,而在一個擁有 4 個 CPU 核心的系統(tǒng)上,意味著系統(tǒng) 75% 的時間是空閑的。
所以,當(dāng)系統(tǒng)平均負(fù)載除以 CPU 核心數(shù)小于等于 1表示系統(tǒng)沒有出現(xiàn)過載的情況。最理想的情況是每個CPU 上都剛好運(yùn)行一個進(jìn)程,這樣 CPU 就得到了充分的利用。
三個時間段統(tǒng)計(jì)出的系統(tǒng)平均負(fù)載,我們以哪個數(shù)字為準(zhǔn)?一分鐘?五分鐘?還是十五分鐘?我們應(yīng)該著眼于五分鐘或者十五分鐘的平均數(shù)值,如果前一分鐘的負(fù)載情況是 1.00,那么仍可以說明認(rèn)定服務(wù)器情況還是正常的,但是如果十五分鐘的數(shù)值仍然保持在 1.00,那么就值得注意了。
另外,讀取文件 /proc/loadavg 可直接查看系統(tǒng)平均負(fù)載。
cat /proc/loadavg 0.04 0.03 0.05 1/319 21900
除了前 3 個數(shù)字表示系統(tǒng)平均負(fù)載外,后面的一個分?jǐn)?shù),分母表示系統(tǒng)進(jìn)程總數(shù),分子表示正在運(yùn)行的進(jìn)程數(shù);最后一個數(shù)字表示最近運(yùn)行的進(jìn)程 ID。
5.3 獲取系統(tǒng) CPU 核心數(shù)
使用 lscpu 命令查看。
或者直接訪問文件 /proc/cpuinfo 獲取 CPU 核心數(shù)。
grep ‘model name’ /proc/cpuinfo | wc -l 6
5.4 平均負(fù)載與 CPU 使用率的關(guān)系
在日常使用中,我們經(jīng)常容易把平均負(fù)載和CPU使用率混淆,這里我們做下區(qū)分。
平均負(fù)載是指單位時間內(nèi),系統(tǒng)中處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的進(jìn)程數(shù),所以,他不僅包擴(kuò)了正在使用CPU 的進(jìn)程,還包括等待 CPU 和等待 I/O 的進(jìn)程。
而 CPU 使用率,是單位時間內(nèi) CPU 繁忙情況的統(tǒng)計(jì),和平均負(fù)載并不一定完全對應(yīng)。比如:
(1)CPU 密集型進(jìn)程,使用大量 CPU 會導(dǎo)致平均負(fù)載升高,此時這兩者是一致的;
(2)I/O 密集型進(jìn)程, 等待 I/O 也會導(dǎo)致平均負(fù)載升高,但是 CPU 使用率不一定很高;
(3)存在大量等待 CPU 調(diào)用的進(jìn)程也會導(dǎo)致平均負(fù)載升高,此時的 CPU 使用率也會比較高。
給我們公號發(fā)送 命令 二字,獲取“每天一個Linux命令”系列的完整目錄。
原文標(biāo)題:每天一個 Linux 命令(72): uptime 命令
文章出處:【微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
Linux
+關(guān)注
關(guān)注
87文章
11232瀏覽量
208957 -
命令
+關(guān)注
關(guān)注
5文章
678瀏覽量
21987 -
代碼
+關(guān)注
關(guān)注
30文章
4753瀏覽量
68368
原文標(biāo)題:每天一個 Linux 命令(72): uptime 命令
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論