java开发cs教程,日常运维(一)
w命令:
用于查看系統(tǒng)負(fù)載、顯示已經(jīng)登陸系統(tǒng)的用戶列表,并顯示用戶正在執(zhí)行的指令等信息
第一行從左面開始顯示的信息依次為:時(shí)間,系統(tǒng)運(yùn)行時(shí)間,登錄用戶數(shù),平均負(fù)載。第二行開始以及下面所有的行,告訴我們的信息是,當(dāng)前登錄的都有哪些用戶,以及他們是從哪里登錄的等等
我們主要關(guān)注的load average后面的3個(gè)數(shù)值:第①個(gè)數(shù)值表示1分鐘內(nèi)系統(tǒng)的平均負(fù)載值;第②個(gè)數(shù)值表示5分鐘內(nèi)系統(tǒng)的平均負(fù)載值;第③個(gè)數(shù)值表示15分鐘系統(tǒng)的平均負(fù)載值。這個(gè)值的意義是,單位時(shí)間段內(nèi)CPU活動(dòng)進(jìn)程數(shù)。當(dāng)然這個(gè)值越大就說明你的服務(wù)器壓力越大。一般情況下這個(gè)值只要不超過服務(wù)器的cpu數(shù)量就沒有關(guān)系。
如何查看CPU數(shù)量:grep -c "processor" /proc/cpuinfo;?????/proc/cpuinfo文件記錄了cpu的詳細(xì)信息。
uptime命令:
能夠打印系統(tǒng)總共運(yùn)行了多長時(shí)間和系統(tǒng)的平均負(fù)載。uptime命令可以顯示的信息顯示依次為:現(xiàn)在時(shí)間、系統(tǒng)已經(jīng)運(yùn)行了多長時(shí)間、目前有多少登陸用戶、系統(tǒng)在過去的1分鐘、5分鐘和15分鐘內(nèi)的平均負(fù)載。
vmstat命令:
顯示虛擬內(nèi)存狀態(tài),包括進(jìn)程、內(nèi)存、I/O等系統(tǒng)整體的運(yùn)行狀態(tài)。
w 查看的是系統(tǒng)整體上的負(fù)載,通過看那個(gè)數(shù)值可以知道當(dāng)前系統(tǒng)有沒有壓力,但是具體是哪里(CPU, 內(nèi)存,磁盤等)有壓力就無法判斷了。通過 vmstat 就可以知道具體是哪里有壓力。vmstat命令打印的結(jié)果共分為6部分:procs, memory, swap, io, system, cpu. 請重點(diǎn)關(guān)注一下r b?swpd si so bi bo us wa幾列
1)procs 顯示進(jìn)程相關(guān)信息
r :表示運(yùn)行和等待cpu時(shí)間片的進(jìn)程數(shù),如果長期大于服務(wù)器cpu的個(gè)數(shù),則說明cpu不夠用了;
b :表示等待資源的進(jìn)程數(shù),比如等待I/O, 內(nèi)存等,這列的值如果長時(shí)間大于1,則需要關(guān)注一下了;
2)memory 內(nèi)存相關(guān)信息
swpd :表示切換到交換分區(qū)中的內(nèi)存數(shù)量 ,單位為KB;
free :當(dāng)前空閑的內(nèi)存數(shù)量,單位為KB;
buff :緩沖大小,(即將寫入磁盤的);?? ?例子:0000(CPU數(shù)據(jù)) -->?內(nèi)存(buffer) -->磁盤
cache :緩存大小,(從磁盤中讀取的); 例子:0000(磁盤數(shù)據(jù)) -->?內(nèi)存(cache) --> CPU
3)swap 內(nèi)存交換情況
si :由交換區(qū)寫入到內(nèi)存的數(shù)據(jù)量;
so :由內(nèi)存寫入到交換區(qū)的數(shù)據(jù)量;
4)io 磁盤使用情況
bi :從塊設(shè)備讀取數(shù)據(jù)的量(讀磁盤);
bo: 從塊設(shè)備寫入數(shù)據(jù)的量(寫磁盤);
5)system 顯示采集間隔內(nèi)發(fā)生的中斷次數(shù)
in :表示在某一時(shí)間間隔中觀測到的每秒設(shè)備中斷數(shù);
cs :表示每秒產(chǎn)生的上下文切換次數(shù);
6)CPU 顯示cpu的使用狀態(tài)(us+sy+id=100%)
us :顯示了用戶下所花費(fèi) cpu 時(shí)間的百分比;
sy :顯示系統(tǒng)花費(fèi)cpu時(shí)間百分比;
id :表示cpu處于空閑狀態(tài)的時(shí)間百分比;
wa :表示I/O等待所占用cpu時(shí)間百分比;
st :表示被偷走的cpu所占百分比(一般都為0,不用關(guān)注)
vmstat常見用法:vmstat 1 5;????表示每隔1s打印一次,共打印5次;當(dāng)然你也可以使用vmstat 1持續(xù)打印,Ctrl + c 結(jié)束。
top命令:
可以實(shí)時(shí)動(dòng)態(tài)地查看系統(tǒng)的整體運(yùn)行情況,是一個(gè)綜合了多方信息監(jiān)測系統(tǒng)性能和運(yùn)行信息的實(shí)用工具。
top命令打印出了很多信息,包括系統(tǒng)負(fù)載(loadaverage)、進(jìn)程數(shù)(Tasks)、cpu使用情況、內(nèi)存使用情況以及交換分區(qū)使用情況。如上圖所示,有些內(nèi)容可以通過其他命令也能查看,這里關(guān)注:RES %CPU, %MEM, COMMAND
RES?進(jìn)程所占內(nèi)存大小
%CPU 使用CPU百分比
%MEM 使用內(nèi)存百分比
COMMAND?進(jìn)程啟動(dòng)命令名稱
按 shift + m: 可以按照內(nèi)存使用大小排序;shift + p:可以切回按照cpu使用大小排序;按數(shù)字 1: 可以列出各顆cpu的使用狀態(tài)。字母q:退出!
一次性全部把所有信息輸出出來而非動(dòng)態(tài)顯示:top -bn1? ;? ? 一般使用在shell腳本。
sar命令:
sar 命令很強(qiáng)大,它可以監(jiān)控系統(tǒng)所有資源狀態(tài),比如平均負(fù)載、網(wǎng)卡流量、磁盤狀態(tài)、內(nèi)存使用等等;這里介紹如何監(jiān)控網(wǎng)卡流量
sar安裝:yum install -y sysstat
sar查看網(wǎng)卡流量:sar -n DEV
IFACE這列表示設(shè)備名稱
rxpck/s 表示每秒進(jìn)入收取的包的數(shù)量
txpck/s 表示每秒發(fā)送出去的包的數(shù)量
rxbyt/s 表示每秒收取的數(shù)據(jù)量(單位Byte)
txbyt/s表示每秒發(fā)送的數(shù)據(jù)量。
后面幾列不用關(guān)注。如果rxpck/s 那一列的數(shù)值大于4000,或者rxbyt/s那列大于5,000,000則很有可能是被***了,正常的服務(wù)器網(wǎng)卡流量不會(huì)高于這么多,除非是你自己在拷貝數(shù)據(jù)。
上面的命令是查看網(wǎng)卡流量歷史的,如何時(shí)時(shí)查看網(wǎng)卡流量呢?? 輸入命令:sar -n DEV 1 5 即可;
也可以查看某一天的網(wǎng)卡流量歷史,歷史文件存放在/var/log/sa/目錄下,如命令:sar -n DEV -f /var/log/sa/sa06;
查看系統(tǒng)歷史負(fù)載:sar -q;
查看磁盤讀寫:sar -b
nload命令:
用來即時(shí)監(jiān)看網(wǎng)路狀態(tài)和各ip所使用的頻寬
安裝:yum?install -y?epel-release; yum install -y nload;
Incoming:進(jìn)入網(wǎng)卡的流量; Outgoing:網(wǎng)卡出去的流量;?我們關(guān)注的當(dāng)然是Curr這行的實(shí)時(shí)數(shù)據(jù)了。
監(jiān)控io性能:
iostat命令:
關(guān)注%util這一列,表示占用CPU時(shí)間百分比;如果數(shù)值很大的話(50%+),說明磁盤IO很忙。
iotop命令:yum?install -y?iotop
能查看進(jìn)程占用磁盤IO信息
free命令:
用于查看內(nèi)存使用情況
total:內(nèi)存總大小
used:真正使用的實(shí)際內(nèi)存大小
free:剩余物理內(nèi)存大小(沒有被分配的內(nèi)存)
shared:共享內(nèi)存大小,不用關(guān)注
buff/cache:分配給buffer和cache的內(nèi)存總共有多大。(區(qū)分兩者!)
available:系統(tǒng)可使用的內(nèi)存有多大
【total=used + free + buffer/cache】【available=free + buffer/cache剩余的部分】
ps命令:
用于查看系統(tǒng)進(jìn)程。常用:ps -elf ;? 或者 ps aux;兩個(gè)命令顯示的信息大同小異!
PID:表示進(jìn)程的ID。有了pid,可以終止進(jìn)程:kill?pid;查看pid進(jìn)程在哪里啟動(dòng)的:ls -l /proc/[pid]/? 就可以看到某pid在哪里啟動(dòng)的。
這里主要解釋一下STAT列:表示進(jìn)程的狀態(tài);如下;
D 不能中斷的進(jìn)程(通常為IO)
R 正在運(yùn)行中的進(jìn)程
S 已經(jīng)中斷的進(jìn)程,通常情況下,系統(tǒng)中大部分進(jìn)程都是這個(gè)狀態(tài)
T 已經(jīng)停止或者暫停的進(jìn)程,如果我們正在運(yùn)行一個(gè)命令,比如說 sleep 10 如果我們按一下ctrl -z 讓他暫停,那么我們用ps查看就會(huì)顯示T這個(gè)狀態(tài)
W 這個(gè)好像是說,從內(nèi)核2.6xx 以后,表示為沒有足夠的內(nèi)存頁分配
X 已經(jīng)死掉的進(jìn)程(這個(gè)好像從來不會(huì)出現(xiàn))
Z 僵尸進(jìn)程,殺不掉,打不死的垃圾進(jìn)程,占系統(tǒng)一小點(diǎn)資源,不過沒有關(guān)系。如果太多,就有問題了。一般不會(huì)出現(xiàn)。
< 高優(yōu)先級進(jìn)程
N 低優(yōu)先級進(jìn)程
L 在內(nèi)存中被鎖了內(nèi)存分頁
s 主進(jìn)程
l 多線程進(jìn)程
+ 代表在前臺(tái)運(yùn)行的進(jìn)程
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java开发cs教程,日常运维(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《扶摇皇后》什么时候播出 孟扶摇最后结局
- 下一篇: php进度条插件,分享8款优秀的 jQu