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