一、uptime命令
成都創(chuàng)新互聯(lián)提供高防主機(jī)、云服務(wù)器、香港服務(wù)器、棕樹數(shù)據(jù)中心等
這個命令可以快速查看機(jī)器的負(fù)載情況。在Linux系統(tǒng)中,這些數(shù)據(jù)表示等待CPU資源的進(jìn)程和阻塞在不可中斷IO進(jìn)程(進(jìn)程狀態(tài)為D)的數(shù)量。這些數(shù)據(jù)可以讓我們對系統(tǒng)資源使用有一個宏觀的了解。
命令的輸出分別表示1分鐘、5分鐘、15分鐘的平均負(fù)載情況。通過這三個數(shù)據(jù),可以了解服務(wù)器負(fù)載是在趨于緊張還是趨于緩解。如果1分鐘平均負(fù)載很高,而15分鐘平均負(fù)載很低,說明服務(wù)器正在命令高負(fù)載情況,需要進(jìn)一步排查CPU資源都消耗在了哪里。反之,如果15分鐘平均負(fù)載很高,1分鐘平均負(fù)載較低,則有可能是CPU資源緊張時刻已經(jīng)過去。
上面例子中的輸出,可以看見最近1分鐘的平均負(fù)載非常高,且遠(yuǎn)高于最近15分鐘負(fù)載,因此我們需要繼續(xù)排查當(dāng)前系統(tǒng)中有什么進(jìn)程消耗了大量的資源??梢酝ㄟ^下文將會介紹的vmstat、mpstat等命令進(jìn)一步排查。
二、dmesg命令
該命令會輸出系統(tǒng)日志的最后10行。示例中的輸出,可以看見一次內(nèi)核的oom kill和一次TCP丟包。這些日志可以幫助排查性能問題。千萬不要忘了這一步。
三、vmstat命令
vmstat(8) 命令,每行會輸出一些系統(tǒng)核心指標(biāo),這些指標(biāo)可以讓我們更詳細(xì)的了解系統(tǒng)狀態(tài)。后面跟的參數(shù)1,表示每秒輸出一次統(tǒng)計(jì)信息,表頭提示了每一列的含義,這幾介紹一些和性能調(diào)優(yōu)相關(guān)的列:
r:等待在CPU資源的進(jìn)程數(shù)。這個數(shù)據(jù)比平均負(fù)載更加能夠體現(xiàn)CPU負(fù)載情況,數(shù)據(jù)中不包含等待IO的進(jìn)程。如果這個數(shù)值大于機(jī)器CPU核數(shù),那么機(jī)器的CPU資源已經(jīng)飽和。
free:系統(tǒng)可用內(nèi)存數(shù)(以千字節(jié)為單位),如果剩余內(nèi)存不足,也會導(dǎo)致系統(tǒng)性能問題。下文介紹到的free命令,可以更詳細(xì)的了解系統(tǒng)內(nèi)存的使用情況。
si,so:交換區(qū)寫入和讀取的數(shù)量。如果這個數(shù)據(jù)不為0,說明系統(tǒng)已經(jīng)在使用交換區(qū)(swap),機(jī)器物理內(nèi)存已經(jīng)不足。
us, sy, id, wa, st:這些都代表了CPU時間的消耗,它們分別表示用戶時間(user)、系統(tǒng)(內(nèi)核)時間(sys)、空閑時間(idle)、IO等待時間(wait)和被偷走的時間(stolen,一般被其他虛擬機(jī)消耗)。
上述這些CPU時間,可以讓我們很快了解CPU是否出于繁忙狀態(tài)。一般情況下,如果用戶時間和系統(tǒng)時間相加非常大,CPU出于忙于執(zhí)行指令。如果IO等待時間很長,那么系統(tǒng)的瓶頸可能在磁盤IO。
示例命令的輸出可以看見,大量CPU時間消耗在用戶態(tài),也就是用戶應(yīng)用程序消耗了CPU時間。這不一定是性能問題,需要結(jié)合r隊(duì)列,一起分析。
四、mpstat命令
該命令可以顯示每個CPU的占用情況,如果有一個CPU占用率特別高,那么有可能是一個單線程應(yīng)用程序引起的。
五、pidstat命令
pidstat命令輸出進(jìn)程的CPU占用率,該命令會持續(xù)輸出,并且不會覆蓋之前的數(shù)據(jù),可以方便觀察系統(tǒng)動態(tài)。如上的輸出,可以看見兩個JAVA進(jìn)程占用了將近1600%的CPU時間,既消耗了大約16個CPU核心的運(yùn)算資源。
六、iostat命令
r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫次數(shù)和每秒讀寫數(shù)據(jù)量(千字節(jié))。讀寫量過大,可能會引起性能問題。
await:IO操作的平均等待時間,單位是毫秒。這是應(yīng)用程序在和磁盤交互時,需要消耗的時間,包括IO等待和實(shí)際操作的耗時。如果這個數(shù)值過大,可能是硬件設(shè)備遇到了瓶頸或者出現(xiàn)故障。
avgqu-sz:向設(shè)備發(fā)出的請求平均數(shù)量。如果這個數(shù)值大于1,可能是硬件設(shè)備已經(jīng)飽和(部分前端硬件設(shè)備支持并行寫入)。
%util:設(shè)備利用率。這個數(shù)值表示設(shè)備的繁忙程度,經(jīng)驗(yàn)值是如果超過60,可能會影響IO性能(可以參照IO操作平均等待時間)。如果到達(dá)100%,說明硬件設(shè)備已經(jīng)飽和。
如果顯示的是邏輯設(shè)備的數(shù)據(jù),那么設(shè)備利用率不代表后端實(shí)際的硬件設(shè)備已經(jīng)飽和。值得注意的是,即使IO性能不理想,也不一定意味這應(yīng)用程序性能會不好,可以利用諸如預(yù)讀取、寫緩存等策略提升應(yīng)用性能。
七、free命令
free命令可以查看系統(tǒng)內(nèi)存的使用情況,-m參數(shù)表示按照兆字節(jié)展示。最后兩列分別表示用于IO緩存的內(nèi)存數(shù),和用于文件系統(tǒng)頁緩存的內(nèi)存數(shù)。需要注意的是,第二行-/+ buffers/cache,看上去緩存占用了大量內(nèi)存空間。
這是Linux系統(tǒng)的內(nèi)存使用策略,盡可能的利用內(nèi)存,如果應(yīng)用程序需要內(nèi)存,這部分內(nèi)存會立即被回收并分配給應(yīng)用程序。因此,這部分內(nèi)存一般也被當(dāng)成是可用內(nèi)存。
如果可用內(nèi)存非常少,系統(tǒng)可能會動用交換區(qū)(如果配置了的話),這樣會增加IO開銷(可以在iostat命令中提現(xiàn)),降低系統(tǒng)性能。
八、sar命令
sar命令在這里可以查看網(wǎng)絡(luò)設(shè)備的吞吐率。在排查性能問題時,可以通過網(wǎng)絡(luò)設(shè)備的吞吐量,判斷網(wǎng)絡(luò)設(shè)備是否已經(jīng)飽和。如示例輸出中,eth0網(wǎng)卡設(shè)備,吞吐率大概在22 Mbytes/s,既176 Mbits/sec,沒有達(dá)到1Gbit/sec的硬件上限。
sar命令在這里用于查看TCP連接狀態(tài),其中包括:
active/s:每秒本地發(fā)起的TCP連接數(shù),既通過connect調(diào)用創(chuàng)建的TCP連接;
passive/s:每秒遠(yuǎn)程發(fā)起的TCP連接數(shù),即通過accept調(diào)用創(chuàng)建的TCP連接;
retrans/s:每秒TCP重傳數(shù)量;
TCP連接數(shù)可以用來判斷性能問題是否由于建立了過多的連接,進(jìn)一步可以判斷是主動發(fā)起的連接,還是被動接受的連接。TCP重傳可能是因?yàn)榫W(wǎng)絡(luò)環(huán)境惡劣,或者服務(wù)器壓
九、top命令
top命令包含了前面好幾個命令的檢查的內(nèi)容。比如系統(tǒng)負(fù)載情況(uptime)、系統(tǒng)內(nèi)存使用情況(free)、系統(tǒng)CPU使用情況(vmstat)等。因此通過這個命令,可以相對全面的查看系統(tǒng)負(fù)載的來源。同時,top命令支持排序,可以按照不同的列排序,方便查找出諸如內(nèi)存占用最多的進(jìn)程、CPU占用率最高的進(jìn)程等。
但是,top命令相對于前面一些命令,輸出是一個瞬間值,如果不持續(xù)盯著,可能會錯過一些線索。這時可能需要暫停top命令刷新,來記錄和比對數(shù)據(jù)。
Linux系統(tǒng)中有時需要檢測某個條件是否成立,那么就要用到test命令了,Linux下test的用法有很多,下面就隨學(xué)習(xí)啦小編一起來學(xué)習(xí)下Linux系統(tǒng)中如何使用test命令吧。
1.判斷一個命令的結(jié)果使用test,其返回0,或一個整數(shù)。返回0表示true,返回整數(shù)表示錯誤碼
2.獲取上一個命令的返回結(jié)果使用$?
3.例如
我的服務(wù)器上面存在/home/www這樣一個文件夾,所以ls /home/www這個命令的返回結(jié)果為0;
即echo $?的返回值為0
我的服務(wù)器上面不存在/home/kkk這樣一個文件夾,所以ls /home/kkk這個命令的返回結(jié)果為這個命令執(zhí)行后的錯誤碼;
9b1fbcaf2efa8f872d1e0fea7481e019.png
即echo $?的返回結(jié)果為2。這個2表示文件或文件夾不存在。
4.常用的文件測試符
-e表示此文件名是否存在
-f表示此文件名是否是文件
-d表示此文件名是否是文件夾
-r表示此文件名是否可讀
-w表示此文件是否可寫
-x表示此文件是否可執(zhí)行
-S表示此文件是否問socket
4.1在我的服務(wù)器上/home/www為一個文件夾
所以test -e /home/www的結(jié)果為0,即true,此文件名存在
所以test -f /home/www 的結(jié)果不為0,即false,此文件名不為文件
所以test -d /home/www的結(jié)果為0,即為true,此文件名為文件夾
4.2在我的服務(wù)器上/home/kkk這個文件名不存在
所以test -e /home/kkk的結(jié)果不為0,即false,此文件名不存在
所以test -d /home/kkk的結(jié)果不為0,即false,此文件名不問文件夾。
上面就是Linux邏輯命令之test命令的使用方法介紹了,如果你要判斷一個條件是否成立,就會用過該命令,你學(xué)會了嗎?
文章知識點(diǎn)與官方知識檔案匹配
CS入門技能樹Linux進(jìn)階新增用戶
24650 人正在系統(tǒng)學(xué)習(xí)中
打開CSDN APP,看更多技術(shù)內(nèi)容
shell語法中的test命令詳解
test命令用法。功能:檢查文件和比較值 1)判斷表達(dá)式 if test (表達(dá)式為真) if test !表達(dá)式為假 test 表達(dá)式1 –a 表達(dá)式2 兩個表達(dá)式都為真 test 表達(dá)式1 –o 表達(dá)式2 兩個表達(dá)式有一個為真 2)判斷字符串 test –n 字...
繼續(xù)訪問
linux期末vi簡答題,Linux操作系統(tǒng)期末練習(xí)題lym
71.進(jìn)程可以忽略大部分信號,但下列信號中()不能忽略 A.SIGBORT B.SIGILL C.SIGQUIT D.SIGKILL72.調(diào)用exec函數(shù)會將原來設(shè)置為要捕獲的信號都更改為() A. 默認(rèn) B.忽略 C.另一捕獲 D.默認(rèn)或忽略 73.可用于在不同主機(jī)的進(jìn)程間通信的技術(shù)是() A. 管道 B.共享內(nèi)存 C.消息隊(duì)列 D.套接字 74.只能在...
繼續(xù)訪問
linux命令test功能,linux利用test命令的測試功能
當(dāng)要檢測系統(tǒng)上的某些文件或者相關(guān)屬性時,利用test這個命令來工作:測試的標(biāo)志代表意義-e該文件名是否存在-f該文件名是否存在且為文件-d該文件名是否存在且為目錄-b該文件名是否存在且為一個block device設(shè)備-c該文件名是否存在且為一個character device設(shè)備-S該文件名是否存在且為一個Socket文件-p該文件名是否存在且為一個FIFO文件-L該文件名是否存在且為一個連接文...
繼續(xù)訪問
熱門推薦 Linux shell 的 test 命令用法詳解
基本格式: test expression expression為test命令構(gòu)造的表達(dá)式。 這里expression是test命令可以理解的任何有效表達(dá)式,該簡化格式將是讀者可能會踫見的最常用格式 返回值: test命令或者返回0(真) 或者返回1(假). test可理解的表達(dá)式類型分為四類: 表達(dá)式判斷 字符串比較 數(shù)字比較 文件比較 1)判斷表達(dá)
繼續(xù)訪問
linux shell 條件測試
1.文件條件測試 -r 可讀 -w 可寫 -x 可執(zhí)行 ...
繼續(xù)訪問
test
test命令編程開發(fā)test命令是shell環(huán)境中測試條件表達(dá)式的實(shí)用工具。語法test(選項(xiàng))選項(xiàng)-b文件:如果文件為一個塊特殊文件,則為真; -c文件:如果文件為一個字符特殊文件,則為真; -d文件:如果文件為一個目錄,則為真; -e文件:如果文件存在,則為真; -f文件:如果文件為一個普通文...
繼續(xù)訪問
linux 測試 命令大全,linux命令大全之-test測試命令
格式:test 測試條件字符串測試:注意空格:test str1 == str2 測試字符串是否相等test str1 != str2 測試字符串是否不相等test str1 測試字符串是否不為空test -n str1 測試字符串是否不為空test -z str1 測試字符串是否為空整數(shù)測試test int1 -eq int2 測試整數(shù)是否相等test int1 -ge int2 測試int1是...
繼續(xù)訪問
linux test 命令,Linuxtest命令、test命令
Linux中的test命令test命令可以檢測一個文件或者目錄是否存在,或者對一個文件或目錄的讀寫權(quán)限等等常見語法test -選項(xiàng) 文件或目錄-e 文件名是否存在,存在$?返回0也就是true-f 文件名是否存在,且為文件 存在$?返回0-d 文件名是否存在,且為目錄 存在$?返回0-L 文件名是否存在,且為鏈接文件 存在$?返回0-r -w -x 這三個是單選項(xiàng),文件名是否存在,并且具有可讀...
繼續(xù)訪問
shell test 命令
shell test 命令
繼續(xù)訪問
linux中test命令詳解
linux中test命令詳解,包含test的多種實(shí)用方法
繼續(xù)訪問
[Linux]:Linux shell 的 test 命令用法詳解
基本格式: test expression expression為test命令構(gòu)造的表達(dá)式。 這里expression是test命令可以理解的任何有效表達(dá)式,該簡化格式將是讀者可能會踫見的最常用格式 返回值: test命令或者返回0(真) 或者返回1(假). test
繼續(xù)訪問
linux test -e ps,test
1、Linux如何掛載windows下的共享目錄?mount.cifs //IP地址/server /mnt/server -o user=administrator,password=123456linux 下的server需要自己手動建一個 后面的user與pass 是windows主機(jī)的賬號和密碼 注意空格 和逗號2、如何查看http的并發(fā)請求數(shù)與其TCP連接狀態(tài)?netstat -n | ...
繼續(xù)訪問
linux之test命令詳解
linux之test命令詳解 test作用檢查某個條件是否成立,返回值為0(真)或者其他值(假),可通過echo $?查看返回值,也常用于循環(huán)和條件語句。 test一般有三種用法: 測試文件或者文件夾 字符串比較 數(shù)值比較 1.測試文件或者文件夾 參數(shù) 說明 -e 當(dāng)路徑存在時返回真 -f 當(dāng)路徑存在且為文件時返回真 -d 當(dāng)路徑存在且為文件夾時返回真 [root@linuxforliuhj test]# ll total 20 -rw-r--r--. 1 root root
繼續(xù)訪問
最新發(fā)布 linux test命令
繼續(xù)訪問
linux test命令測試標(biāo)志
test命令測試標(biāo)志
繼續(xù)訪問
linux test 使用方法,Linux系統(tǒng)test命令使用方法介紹
Linux系統(tǒng)中有時需要檢測某個條件是否成立,那么就要用到test命令了,Linux下test的用法有很多,下面就隨小編一起來學(xué)習(xí)下Linux系統(tǒng)中如何使用test命令吧。1.判斷一個命令的結(jié)果使用test,其返回0,或一個整數(shù)。返回0表示true,返回整數(shù)表示錯誤碼2.獲取上一個命令的返回結(jié)果使用$?3.例如我的服務(wù)器上面存在/home/www這樣一個文件夾,所以ls /home/www這個命令...
繼續(xù)訪問
linux shell編程學(xué)習(xí)--test測試比較命令
本文介紹了linux shell自帶test命令的各種用法。在linux shell編程過程中,如何使用test命令進(jìn)行算術(shù)比較,文件屬性,文件修改,字符串比較,以及邏輯表達(dá)式運(yùn)算的操作。
繼續(xù)訪問
linux shell test 命令
Shell中的 test 命令用于檢查某個條件是否成立,它可以進(jìn)行數(shù)值、字符和文件三個方面的測試。 1.數(shù)值比較 參數(shù) 說明 -eq 等于則為真 -ne 不等于則為真 -gt 大于則為真 -ge 大于等于則為真 -lt 小于則為真 -le 小于等于則為真 舉例: num1=100 num2=1...
繼續(xù)訪問
linux shell 字符比較與數(shù)值比較,bash的調(diào)試
test命令用法。功能:檢查文件和比較值1)判斷表達(dá)式if test (表達(dá)式為真)if test !表達(dá)式為假test 表達(dá)式1 –a 表達(dá)式2 兩個表達(dá)式都為真test 表達(dá)式1 –o 表達(dá)式2
繼續(xù)訪問
linux中test的用法
寫評論
評論
Linux常用基本命令主要包括目錄操作命令、文件操作命令、文件查看命令、磁盤管理命令、用戶管理命令、系統(tǒng)管理命令等。
目錄操作命令:cd、ls、mkdir、pwd、rmdir。
文件操作命令:cp、mv、touch、rm、grep、find、chmod、chown、chgrp、tar、split、gzip、tee、touch、unzip、zip、unrar、scp。
文件查看命令:cat、head、tail、more、nl、diff。
用戶管理命令:useradd、usermod、userdel、passwd、su、groupadd、groupdel。
網(wǎng)絡(luò)通信命令:netstat、route、ftp、sftp、ping、scp、telnet。
系統(tǒng)管理命令:who、uname、top、ps、kill、ifconfig、free、df、du、time、shutdown、reboot、man、last、halt、date、crontab、getconf。
磁盤管理命令:fdisk、mount、umount、sync。