Linux必懂知识大总结(上)
CPU
top
top:查看每個(gè)進(jìn)程的情況
?
在top模式下,輸入1:查看每個(gè)CPU的性能數(shù)據(jù),注意觀察是否有CPU100%占用率
?
CPU參數(shù)含義:
?
1)us過高表示Java應(yīng)用程序消耗了大量CPU,需要定位是哪一個(gè)線程,并分析線程堆棧。
?
在top模式下,輸入H:查看每個(gè)線程的性能信息
如果某個(gè)線程CPU利用率一直100%,則說明這個(gè)線程可能有死循環(huán),也有可能是GC的問題。jstat命令可以查看GC情況,是不是產(chǎn)生了FullGC。
?
還可以把線程dump下來,看看是哪個(gè)線程、執(zhí)行什么代碼造成的CPU利用率高。
jstack PID | grep ‘nid=十六進(jìn)制線程id’ > /dir
dump出來的線程ID(nid)是十六進(jìn)制,TOP命令看到的線程ID是十進(jìn)制的
?
2)sy過高表示花費(fèi)了更多時(shí)間進(jìn)行線程切換。同樣需要查看Java線程的狀態(tài)。
文件IO 磁盤
ls
顯示文件夾下的文件詳情,包括大小
ls –al
a表示all,包括隱藏文件
stat(查看文件詳情)
stat filepath
軟硬連接
軟硬連接(inode這塊,ln / ln -s)
硬鏈接 (hard link) 與軟鏈接(又稱符號鏈接,即 soft link 或 symbolic link)。鏈接為 Linux 系統(tǒng)解決了文件的共享使用,還帶來了隱藏文件路徑、增加權(quán)限安全及節(jié)省存儲等好處。若一個(gè) inode 號對應(yīng)多個(gè)文件名,則稱這些文件為硬鏈接。換言之,硬鏈接就是同一個(gè)文件使用了多個(gè)別名。硬鏈接可由命令 link 或 ln 創(chuàng)建。
軟鏈接與硬鏈接不同,若文件用戶數(shù)據(jù)塊中存放的內(nèi)容是另一文件的路徑名的指向,則該文件就是軟連接。軟鏈接就是一個(gè)普通文件,只是數(shù)據(jù)塊內(nèi)容有點(diǎn)特殊。軟鏈接有著自己的 inode 號以及用戶數(shù)據(jù)塊。
ln -s?? source? target
文本操作命令
cat???? 由第一行開始顯示內(nèi)容,并將所有內(nèi)容輸出
tac???? 從最后一行倒序顯示內(nèi)容,并將所有內(nèi)容輸出
more??? 根據(jù)窗口大小,一頁一頁的顯示文件內(nèi)容
less??? 和more類似,但其優(yōu)點(diǎn)可以往前翻頁,而且進(jìn)行可以搜索字符
head??? 只顯示頭幾行
tail??? 只顯示最后幾行
sort、uniq
sort 進(jìn)行排序。
?
$ sort [-fbMnrtuk] [file or stdin]
-f :忽略大小寫
-b :忽略最前面的空格
-M :以月份的名字來排序,例如 JAN, DEC
-n :使用數(shù)字
-r :反向排序
-u :相當(dāng)于 unique ,重復(fù)內(nèi)容只出現(xiàn)一次
-t :分隔符,默認(rèn)為tab
-k :指定排序的區(qū)間
范例:/etc/passwd 內(nèi)容是以 : 來分隔的,以第三欄來排序。
?
$ cat /etc/passwd | sort -t ':' -k 3
root:x:0:0:root:/root:/bin/bash
dmtsai:x:1000:1000:dmtsai:/home/dmtsai:/bin/bash
alex:x:1001:1002::/home/alex:/bin/bash
arod:x:1002:1003::/home/arod:/bin/bash
uniq 可以將重復(fù)的數(shù)據(jù)只取一個(gè)。
?
$ uniq [-ic]
-i :忽略大小寫
-c :進(jìn)行計(jì)數(shù)
?
使用cat命令可以顯示文本文件內(nèi)容,或 把幾個(gè)文件內(nèi)容附加到另一個(gè)文件中。
使用more命令可以分頁顯示文本文件的內(nèi)容。
使用less命令可以回卷顯示文本文件的內(nèi)容。
使用head命令可以顯示指定文件的前若干行文件內(nèi)容。
使用tail命令可以查看文件的末尾數(shù)據(jù)。
使用sort命令可以對文件中的數(shù)據(jù)進(jìn)行排序,并將結(jié)果顯示在標(biāo)準(zhǔn)輸出上。
使用uniq命令可以將文件內(nèi)的重復(fù)行數(shù)據(jù)從輸出文件中刪除,只留下每條記錄的唯一樣本。
使用cut命令可以從文件的每行中顯示出選定的字節(jié)、字符或字段。
使用comm命令可以比較兩個(gè)已排過序的文件,并將其結(jié)果顯示出來。
使用diff命令可以逐行比較兩個(gè)文本文件,列出其不同之處。它比comm命令完成更復(fù)雜的檢查。它對給出的文件進(jìn)行系統(tǒng)的檢查,并顯示出兩個(gè)文件中所有不同的行,不要求事先對文件進(jìn)行排序。
?
vim
?
vi編輯器有3種基本工作模式,分別是命令行模式、插入模式和末行模式。
命令行模式控制屏幕光標(biāo)的移動,字符、字或行的刪除,移動、復(fù)制某區(qū)域及進(jìn)入插入模式,或者到末行模式。
只有在插入模式下,才可以做文字輸入,按“Esc”鍵可回到命令行模式。
末行模式將文件保存或退出vi編輯器,也可以設(shè)置編輯環(huán)境,如尋找字符串、列出行號等。
?
在指令列模式下,有以下命令用于離開或者存儲文件。
?
命令?????? 作用
:w??? 寫入磁盤
:w!?? 當(dāng)文件為只讀時(shí),強(qiáng)制寫入磁盤。到底能不能寫入,與用戶對該文件的權(quán)限有關(guān)
:q??? 離開
:q!?? 強(qiáng)制離開不保存
:wq? 寫入磁盤后離開
:wq! 強(qiáng)制寫入磁盤后離開
實(shí)時(shí)查看日志命令
tail -f path
-f 循環(huán)讀取
?
系統(tǒng)日志
/var/log/message 系統(tǒng)啟動后的信息和錯(cuò)誤日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 與安全相關(guān)的日志信息
/var/log/maillog 與郵件相關(guān)的日志信息
/var/log/cron 與定時(shí)任務(wù)相關(guān)的日志信息
/var/log/spooler 與UUCP和news設(shè)備相關(guān)的日志信息
/var/log/boot.log 守護(hù)進(jìn)程啟動和停止相關(guān)的日志消息
/var/log/wtmp 該日志文件永久記錄每個(gè)用戶登錄、注銷及系統(tǒng)的啟動、停機(jī)的事件
find
查找磁盤上最大的文件的命令
find / -type f -size +10G
列出當(dāng)前目錄及子目錄下所有文件和文件夾
?
在/home目錄下查找以.txt結(jié)尾的文件名 find /home -name "*.txt"
?
同上,但忽略大小寫 find /home -iname "*.txt"
當(dāng)前目錄及子目錄下查找所有以.txt和.pdf結(jié)尾的文件 find . \( -name "*.txt" -o -name "*.pdf" \) 或 find . -name "*.txt" -o -name "*.pdf"
匹配文件路徑或者文件 find /usr/ -path "*local*"
基于正則表達(dá)式匹配文件路徑 find . -regex ".*\(\.txt\|\.pdf\)$"
同上,但忽略大小寫 find . -iregex ".*\(\.txt\|\.pdf\)$"
找出/home下不是以.txt結(jié)尾的文件 find /home ! -name "*.txt"
根據(jù)文件類型進(jìn)行搜索find . -type 類型參數(shù)
?
類型參數(shù)列表:
f 普通文件
l 符號連接
d 目錄
c 字符設(shè)備
b 塊設(shè)備
s 套接字
p Fifo
?
基于目錄深度搜索
向下最大深度限制為3 find . -maxdepth 3 -type f
搜索出深度距離當(dāng)前目錄至少2個(gè)子目錄的所有文件 find . -mindepth 2 -type f
根據(jù)文件時(shí)間戳進(jìn)行搜索 find . -type f 時(shí)間戳
?
UNIX/Linux文件系統(tǒng)每個(gè)文件都有三種時(shí)間戳:
?
訪問時(shí)間(-atime/天,-amin/分鐘):用戶最近一次訪問時(shí)間。
修改時(shí)間(-mtime/天,-mmin/分鐘):文件最后一次修改時(shí)間。
變化時(shí)間(-ctime/天,-cmin/分鐘):文件數(shù)據(jù)元(例如權(quán)限等)最后一次修改時(shí)間。
搜索最近七天內(nèi)被訪問過的所有文件
find . -type f -atime -7 搜索恰好在七天前被訪問過的所有文件
find . -type f -atime 7 搜索超過七天內(nèi)被訪問過的所有文件
find . -type f -atime +7 搜索訪問時(shí)間超過10分鐘的所有文件
find . -type f -amin +10 找出比file.log修改時(shí)間更長的所有文件
find . -type f -newer file.log 根據(jù)文件大小進(jìn)行匹配
find . -type f -size 文件大小單元 文件大小單元:
b —— 塊(512字節(jié))
c —— 字節(jié)
w —— 字(2字節(jié))
k —— 千字節(jié)
M —— 兆字節(jié)
G —— 吉字節(jié)
搜索大于10KB的文件find . -type f -size +10k
搜索小于10KB的文件find . -type f -size -10k
搜索等于10KB的文件find . -type f -size 10k
刪除匹配文件
刪除當(dāng)前目錄下所有.txt文件 find . -type f -name "*.txt" -delete
根據(jù)文件權(quán)限/所有權(quán)進(jìn)行匹配
當(dāng)前目錄下搜索出權(quán)限為777的文件 find . -type f -perm 777
找出當(dāng)前目錄下權(quán)限不是644的php文件 find . -type f -name "*.php" ! -perm 644
找出當(dāng)前目錄用戶tom擁有的所有文件 find . -type f -user tom
將當(dāng)前目錄下所有以“.txt”結(jié)尾的文件打印出來,再追問,除了“.txt”再加上“.abc”結(jié)尾的也打印出來。
find . -name "*.txt"
grep
在文件內(nèi)查找字符串
grep “字符串” filename
文件權(quán)限
r:可讀(4)
w:可寫(2),對于目錄來說表示可在目錄中新建文件
x:可執(zhí)行(1),對于目錄來說為可進(jìn)入到該目錄中
-:表示無對應(yīng)位上的權(quán)限
4代表讀權(quán)限,2代表寫權(quán)限,1代表執(zhí)行權(quán)限
?
7=4+2+1,表示擁有可讀可寫可執(zhí)行權(quán)限
5=4+1,表示擁有可讀可執(zhí)行權(quán)限,但是沒有寫權(quán)限
4 代表擁有可讀權(quán)限
0 代表沒有任何權(quán)限
?
chmod 修改文件屬性
chmod 777 /home/berry
chmod u+x /home/berry
?
u 表示“用戶(user)”,即文件或目錄的所有者。
g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶。
o 表示“其他(others)用戶”。
a 表示“所有(all)用戶”。它是系統(tǒng)默認(rèn)值。
?
chown 修改文件的屬主與屬組
chown guest:guest a.txt
chown -R guest /home/berry (把berry文件下的所有文件都改成guest這個(gè)組)
chgrp 修改文件的所屬的用戶組
chgrp -R guest /var/tmp/f.txt
chgrp - R root /home/berry/file/a.txt
iostat(查看各個(gè)設(shè)備的IO狀態(tài),查看磁盤讀寫性能)
直接輸入iostat:
tps是每秒的IO請求數(shù),這是IO消耗情況值得關(guān)注的數(shù)字。
Blk_read/s是指每秒讀取的塊數(shù)量,通過塊的大小是512字節(jié)
Blk_read是指總共讀取的塊數(shù)量
?
iostat –x xvda 3 5 定時(shí)采樣查看IO消耗情況
首先要關(guān)注的是CPU中的iowait%所占的百分比,當(dāng)iowait占據(jù)主要的百分比時(shí),就表示要關(guān)注IO方面的消耗狀況了。
pidstat(查看某個(gè)線程的IO狀態(tài))
pidstat –d –t –p [pid] 1 100
KB_rd/s 表示每秒讀取的KB數(shù)
KB_wd/s 表示每秒寫入的KB數(shù)
通過pidstat直接找到文件IO操作多的線程,之后結(jié)合jstack找到對應(yīng)的Java代碼。
cp/mv的區(qū)別
1、功能上的區(qū)別
mv:用戶可以使用該命令為文件或目錄重命名或?qū)⑽募梢粋€(gè)目錄移入另一個(gè)目錄中。
cp: 該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中。
?
2、從inode角度來區(qū)分
mv:會將存儲于indoe索引節(jié)點(diǎn)上的文件元信息也移動到新文件中。
cp : 只會復(fù)制文件數(shù)據(jù),不會復(fù)制inode索引節(jié)點(diǎn)上的文件元信息。
?
cp 的時(shí)候是真正意義上的內(nèi)容copy,對于 inode 節(jié)點(diǎn)卻是不會變化的。
mv 的時(shí)候是把源文件直接刪除了(inode 刪除了),新的文件其實(shí)已經(jīng)不是以前的文件了,只是名字一樣而已。
?
網(wǎng)絡(luò)
netstat(端口)
查看tcp連接數(shù)狀態(tài)
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
?
統(tǒng)計(jì)8080端口上有多少個(gè)TCP連接,命令:
netstat –nat | grep 8080 | wc –l
?
TCP連接中有多少個(gè)連接狀態(tài)是ESTABLISHED,命令:
netstat –nat | grep 8080 | grep ESTABLISHED| wc -l
?
TCP連接中有多少個(gè)連接狀態(tài)是CLOSE_WAIT
netstat –nat | grep 8080 | grep CLOSE_WAIT| wc -l
?
TCP連接中有多少個(gè)連接狀態(tài)是TIME_WAIT
netstat –nat | grep 8080 | grep TIME_WAIT| wc -l
?
使用awk來完成統(tǒng)計(jì)信息,命令如下
netstat –nat | grep 8080 | awk ‘{++S[$NF]} END {for (a in S) print a, S[a]}’
sar
sar –n FULL 1 2 執(zhí)行后以1s為頻率,總共輸出兩次網(wǎng)絡(luò)IO的消耗情況。
輸出信息包含三部分:網(wǎng)卡上成功的接包和發(fā)包的信息 網(wǎng)卡上失敗的接包和發(fā)包信息 sockets上的統(tǒng)計(jì)信息(tcpsck、udpsck)
如需詳細(xì)跟蹤tcp/ip通信過程的信息,則可通過tcpdump來進(jìn)行。
tcpdump
tcpdump [ -DenNqvX ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ]
??????? [ -s snaplen ] [ -w file ] [ expression ]
抓包選項(xiàng):
-c:指定要抓取的包數(shù)量。注意,是最終要獲取這么多個(gè)包。例如,指定"-c 10"將獲取10個(gè)包,但可能已經(jīng)處理了100個(gè)包,只不過只有10個(gè)包是滿足條件的包。
-i interface:指定tcpdump需要監(jiān)聽的端口。若未指定該選項(xiàng),將從系統(tǒng)接口列表中搜尋編號最小的已配置好的接口(不包括loopback端口,要抓取loopback接口使用tcpdump -i lo),
??????????? :一旦找到第一個(gè)符合條件的端口,搜尋馬上結(jié)束。可以使用'any'關(guān)鍵字表示所有網(wǎng)絡(luò)接口。
-n:對地址以數(shù)字方式顯式,否則顯式為主機(jī)名,也就是說-n選項(xiàng)不做主機(jī)名解析。
-nn:除了-n的作用外,還把端口顯示為數(shù)值,否則顯示端口服務(wù)名。
-N:不打印出host的域名部分。例如tcpdump將會打印'nic'而不是'nic.ddn.mil'。
-P:指定要抓取的包是流入還是流出的包。可以給定的值為"in"、"out"和"inout",默認(rèn)為"inout"。
-s len:設(shè)置tcpdump的數(shù)據(jù)包抓取長度為len,如果不設(shè)置默認(rèn)將會是65535字節(jié)。對于要抓取的數(shù)據(jù)包較大時(shí),長度設(shè)置不夠可能會產(chǎn)生包截?cái)?#xff0c;若出現(xiàn)包截?cái)?#xff0c;
????? :輸出行中會出現(xiàn)"[|proto]"的標(biāo)志(proto實(shí)際會顯示為協(xié)議名)。但是抓取len越長,包的處理時(shí)間越長,并且會減少tcpdump可緩存的數(shù)據(jù)包的數(shù)量,
????? :從而會導(dǎo)致數(shù)據(jù)包的丟失,所以在能抓取我們想要的包的前提下,抓取長度越小越好。
?
輸出選項(xiàng):
-e:輸出的每行中都將包括數(shù)據(jù)鏈路層頭部信息,例如源MAC和目標(biāo)MAC。
-q:快速打印輸出。即打印很少的協(xié)議相關(guān)信息,從而輸出行都比較簡短。
-X:輸出包的頭部數(shù)據(jù),會以16進(jìn)制和ASCII兩種方式同時(shí)輸出。
-XX:輸出包的頭部數(shù)據(jù),會以16進(jìn)制和ASCII兩種方式同時(shí)輸出,更詳細(xì)。
-v:當(dāng)分析和打印的時(shí)候,產(chǎn)生詳細(xì)的輸出。
-vv:產(chǎn)生比-v更詳細(xì)的輸出。
-vvv:產(chǎn)生比-vv更詳細(xì)的輸出。
?
其他功能性選項(xiàng):
-D:列出可用于抓包的接口。將會列出接口的數(shù)值編號和接口名,它們都可以用于"-i"后。
-F:從文件中讀取抓包的表達(dá)式。若使用該選項(xiàng),則命令行中給定的其他表達(dá)式都將失效。
-w:將抓包數(shù)據(jù)輸出到文件中而不是標(biāo)準(zhǔn)輸出。可以同時(shí)配合"-G time"選項(xiàng)使得輸出文件每time秒就自動切換到另一個(gè)文件。可通過"-r"選項(xiàng)載入這些文件以進(jìn)行分析和打印。
-r:從給定的數(shù)據(jù)包文件中讀取數(shù)據(jù)。使用"-"表示從標(biāo)準(zhǔn)輸入中讀取。
?
(1).默認(rèn)啟動
tcpdump
默認(rèn)情況下,直接啟動tcpdump將監(jiān)視第一個(gè)網(wǎng)絡(luò)接口(非lo口)上所有流通的數(shù)據(jù)包。這樣抓取的結(jié)果會非常多,滾動非常快。
?
(2).監(jiān)視指定網(wǎng)絡(luò)接口的數(shù)據(jù)包
tcpdump -i eth1
如果不指定網(wǎng)卡,默認(rèn)tcpdump只會監(jiān)視第一個(gè)網(wǎng)絡(luò)接口,如eth0。
?
(3).監(jiān)視指定主機(jī)的數(shù)據(jù)包,例如所有進(jìn)入或離開longshuai的數(shù)據(jù)包
tcpdump host longshuai
?
(4).打印helios<-->hot或helios<-->ace之間通信的數(shù)據(jù)包
tcpdump host helios and \( hot or ace \)
?
(5).打印ace與任何其他主機(jī)之間通信的IP數(shù)據(jù)包,但不包括與helios之間的數(shù)據(jù)包
tcpdump ip host ace and not helios
?
(6).截獲主機(jī)hostname發(fā)送的所有數(shù)據(jù)
tcpdump src host hostname
(7).監(jiān)視所有發(fā)送到主機(jī)hostname的數(shù)據(jù)包
tcpdump dst host hostname
?
(8).監(jiān)視指定主機(jī)和端口的數(shù)據(jù)包
tcpdump tcp port 22 and host hostname
?
(9).對本機(jī)的udp 123端口進(jìn)行監(jiān)視(123為ntp的服務(wù)端口)
tcpdump udp port 123
?
(10).監(jiān)視指定網(wǎng)絡(luò)的數(shù)據(jù)包,如本機(jī)與192.168網(wǎng)段通信的數(shù)據(jù)包,"-c 10"表示只抓取10個(gè)包
tcpdump -c 10 net 192.168
?
(11).打印所有通過網(wǎng)關(guān)snup的ftp數(shù)據(jù)包(注意,表達(dá)式被單引號括起來了,這可以防止shell對其中的括號進(jìn)行錯(cuò)誤解析)
shell> tcpdump 'gateway snup and (port ftp or ftp-data)'
?
(12).抓取ping包
[root@server2 ~]# tcpdump -c 5 -nn -i eth0 icmp
內(nèi)存
vmstat、sar、top、pidstat等可以查看swap和物理內(nèi)存的消耗情況。
vmstat和sar共同的弱點(diǎn)是不能分析進(jìn)程所占用的內(nèi)存量。
top可以查看進(jìn)程所消耗的內(nèi)存量,在top中看Java進(jìn)程的內(nèi)存包括了JVM已分配的內(nèi)存加上JVM外的物理內(nèi)存。
pidstat也可以查看進(jìn)程所消耗的內(nèi)存量。
pidstat –r –p [pid] [interval] [times]
進(jìn)程
ps –ef/-aux
ps aux 和ps -ef
兩者的輸出結(jié)果差別不大,但展示風(fēng)格不同。aux是BSD風(fēng)格,-ef是System V風(fēng)格。這是次要的區(qū)別,一個(gè)影響使用的區(qū)別是aux會截?cái)郼ommand列,而-ef不會。當(dāng)結(jié)合grep時(shí)這種區(qū)別會影響到結(jié)果。
?
ps -ef 顯示出的結(jié)果:
??? 1.UID?????? 用戶ID
??? 2.PID??????? 進(jìn)程ID
??? 3.PPID????? 父進(jìn)程ID
??? 4.C?????????? CPU占用率
??? 5.STIME???? 開始時(shí)間
??? 6.TTY???????? 開始此進(jìn)程的TTY----終端設(shè)備
??? 7.TIME?????? 此進(jìn)程運(yùn)行的總時(shí)間
??? 8.CMD?????? 命令名
lsof 進(jìn)程打開的文件、端口
lsof [options] filename
-a:列出打開文件存在的進(jìn)程;
-c<進(jìn)程名>:列出指定進(jìn)程所打開的文件;
-g:列出GID號進(jìn)程詳情;
-d<文件號>:列出占用該文件號的進(jìn)程;
+d<目錄>:列出目錄下被打開的文件;
+D<目錄>:遞歸列出目錄下被打開的文件;
-n<目錄>:列出使用NFS的文件;
-i<條件>:列出符合條件的進(jìn)程。(4、6、協(xié)議、:端口、 @ip )
-p<進(jìn)程號>:列出指定進(jìn)程號所打開的文件;
-u:列出UID號進(jìn)程詳情;
-h:顯示幫助信息;
-v:顯示版本信息。
?
lsof輸出各列信息的意義如下:
COMMAND:進(jìn)程的名稱
PID:進(jìn)程標(biāo)識符
USER:進(jìn)程所有者
FD:文件描述符,應(yīng)用程序通過文件描述符識別該文件。如cwd、txt等
TYPE:文件類型,如DIR、REG等
DEVICE:指定磁盤的名稱
SIZE:文件的大小
NODE:索引節(jié)點(diǎn)(文件在磁盤上的標(biāo)識)
NAME:打開文件的確切名稱
?
cwd:表示current work dirctory,即:應(yīng)用程序的當(dāng)前工作目錄,這是該應(yīng)用程序啟動的目錄,除非它本身對這個(gè)目錄進(jìn)行更改
txt:該類型的文件是程序代碼,如應(yīng)用程序二進(jìn)制文件本身或共享庫,如上列表中顯示的 /sbin/init 程序
lnn:library references (AIX);
er:FD information error (see NAME column);
jld:jail directory (FreeBSD);
ltx:shared library text (code and data);
mxx :hex memory-mapped type number xx.
m86:DOS Merge mapped file;
mem:memory-mapped file;
mmap:memory-mapped device;
pd:parent directory;
rtd:root directory;
tr:kernel trace file (OpenBSD);
v86? VP/ix mapped file;
0:表示標(biāo)準(zhǔn)輸出
1:表示標(biāo)準(zhǔn)輸入
2:表示標(biāo)準(zhǔn)錯(cuò)誤
?
kill
殺死進(jìn)程
?
負(fù)載 Load Average
系統(tǒng)的load被定義為特定時(shí)間間隔內(nèi)運(yùn)行隊(duì)列的平均線程數(shù),如果一個(gè)線程滿足以下條件,該線程就會處于運(yùn)行隊(duì)列中:?
?
每個(gè)CPU的核都維護(hù)了一個(gè)運(yùn)行隊(duì)列,系統(tǒng)的load主要由運(yùn)行隊(duì)列來決定。load的值越大,也就意味著系統(tǒng)的CPU越繁忙,這樣線程運(yùn)行完以后等待操作系統(tǒng)分配下一個(gè)時(shí)間片段的時(shí)間也就越長。一般來說,只要每個(gè)CPU當(dāng)前的活動線程數(shù)不大于3,我們認(rèn)為它的負(fù)載是正常的,如果每個(gè)CPU的線程數(shù)大于5,則表示當(dāng)前系統(tǒng)的負(fù)載已經(jīng)非常高了,需要采取措施來減低系統(tǒng)的負(fù)載,以提高響應(yīng)速度。
?
使用top命令查看,該值是三個(gè)浮點(diǎn)數(shù),表示最近1分鐘、5分鐘、15分鐘的運(yùn)行隊(duì)列平均進(jìn)程數(shù)。
?
總結(jié)
以上是生活随笔為你收集整理的Linux必懂知识大总结(上)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode340. 至多包含 K
- 下一篇: 炸窝(Collections当中的add