0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文掌握Linux服務(wù)器監(jiān)控命令

dyquk4xk2p3d ? 來源:網(wǎng)絡(luò)技術(shù)聯(lián)盟站 ? 2023-03-26 10:30 ? 次閱讀

1. CPU

cat/proc/cpuinfo
#物理CPU個數(shù)
cat/proc/cpuinfo|grep'physicalid'|sort|uniq|wc-l
#每個CPU核心數(shù)
cat/proc/cpuinfo|grep'coreid'|sort|uniq|wc-l
#邏輯CPU
cat/proc/cpuinfo|grep'processor'|sort|uniq|wc-l
#mpstat
mpstat
mpstat210

2. 內(nèi)存

cat/proc/meminfo
free-gt
df-hT
du-csh./*

操作系統(tǒng) IPC 共享內(nèi)存/隊(duì)列:

ipcs#(shmems,queues,semaphores)

平時我們經(jīng)常需要監(jiān)控內(nèi)存的使用狀態(tài),常用的命令有free、vmstat、top、dstat -m等。

2.1 free

>free-h
totalusedfreesharedbufferscached
Mem:7.7G6.2G1.5G17M33M184M
-/+buffers/cache:6.0G1.7G
Swap:24G581M23G

各行數(shù)據(jù)含義

第一行Mem:

total:內(nèi)存總數(shù)7.7G,物理內(nèi)存大小,就是機(jī)器實(shí)際的內(nèi)存

used:已使用內(nèi)存6.2G,這個值包括了cached和應(yīng)用程序?qū)嶋H使用的內(nèi)存

free:空閑的內(nèi)存1.5G,未被使用的內(nèi)存大小

shared:共享內(nèi)存的大小,17M

buffers:被緩沖區(qū)占用的內(nèi)存大小,33M

cached:被緩存占用的內(nèi)存大小,184M

其中有:

total=used+free

第二行-/+ buffers/cache,代表應(yīng)用程序?qū)嶋H使用的內(nèi)存

前一個值表示used - buffers/cached,表示應(yīng)用程序?qū)嶋H使用的內(nèi)存

后一個值表示free + buffers/cached,表示理論上都可以被使用的內(nèi)存

可以看到,這兩個值加起來也是total

第三行swap,代表交換分區(qū)的使用情況:總量、使用的和未使用的

緩存 cache

cache代表緩存,當(dāng)系統(tǒng)讀取文件時,會先把數(shù)據(jù)從硬盤讀到內(nèi)存里,因?yàn)橛脖P比內(nèi)存慢很多,所以這個過程會很耗時。

為了提高效率,Linux 會把讀進(jìn)來的文件在內(nèi)存中緩存下來(局部性原理),即使程序結(jié)束,cache 也不會被自動釋放。因此,當(dāng)有程序進(jìn)行大量的讀文件操作時,就會發(fā)現(xiàn)內(nèi)存使用率升高了。

當(dāng)其他程序需要使用內(nèi)存時,Linux 會根據(jù)自己的緩存策略(例如 LRU)將這些沒人使用的 cache 釋放掉,給其他程序使用,當(dāng)然也可以手動釋放緩存:

echo1>/proc/sys/vm/drop_caches

緩沖區(qū) buffer

考慮內(nèi)存寫文件到硬盤的場景,因?yàn)橛脖P太慢了,如果內(nèi)存要等待數(shù)據(jù)寫完了之后才繼續(xù)后面的操作,效率會非常低,也會影響程序的運(yùn)行速度,所以就有了緩沖區(qū)buffer。

當(dāng)內(nèi)存需要寫數(shù)據(jù)到硬盤中時會先放到 buffer 里面,內(nèi)存很快把數(shù)據(jù)寫到 buffer 中,可以繼續(xù)其他工作,而硬盤可以在后臺慢慢讀出 buffer 中的數(shù)據(jù)并保存起來,這樣就提高了讀寫的效率。

例如把電腦中的文件拷貝到 U 盤時,如果文件特別大,有時會出現(xiàn)這樣的情況:明明看到文件已經(jīng)拷貝完,但系統(tǒng)還是會提示 U 盤正在使用中。這就是 buffer 的原因:拷貝程序雖然已經(jīng)把數(shù)據(jù)放到 buffer 中,但是還沒有全部寫入到 U 盤中

同樣的,可以使用sync命令來手動flush buffer中的內(nèi)容:

>sync--help

Usage:sync[OPTION][FILE]...
Synchronizecachedwritestopersistentstorage

Ifoneormorefilesarespecified,synconlythem,
ortheircontainingfilesystems.

-d,--datasynconlyfiledata,nounneededmetadata
-f,--file-systemsyncthefilesystemsthatcontainthefiles
--helpdisplaythishelpandexit
--versionoutputversioninformationandexit

GNUcoreutilsonlinehelp:
Fulldocumentationat:
oravailablelocallyvia:info'(coreutils)syncinvocation'

交換分區(qū) swap

交換分區(qū)swap是實(shí)現(xiàn)虛擬內(nèi)存的重要概念。swap就是把硬盤上的一部分空間當(dāng)作內(nèi)存來使用,正在運(yùn)行的程序會使用物理內(nèi)存,把未使用的內(nèi)存放到硬盤,叫做swap out。而把硬盤交換分區(qū)中的內(nèi)存重新放到物理內(nèi)存中,叫做swap in。

交換分區(qū)可以在邏輯上擴(kuò)大內(nèi)存空間,但是也會拖慢系統(tǒng)速度,因?yàn)橛脖P的讀寫速度很慢。Linux 系統(tǒng)會將不經(jīng)常使用的內(nèi)存放到交換分區(qū)中。

cache 和 buffer 的區(qū)別

cache:作為page cache的內(nèi)存,是文件系統(tǒng)的緩存,在文件層面上的數(shù)據(jù)會緩存到page cache中

buffer:作為buffer cache的內(nèi)存,是磁盤塊的緩存,直接對磁盤進(jìn)行操作的數(shù)據(jù)會緩存到 buffer cache 中

簡單來說:page cache用來緩存文件數(shù)據(jù),buffer cache用來緩存磁盤數(shù)據(jù)。在有文件系統(tǒng)的情況下,對文件操作,那么數(shù)據(jù)會緩存到page cache中。如果直接采用dd等工具對磁盤進(jìn)行讀寫,那么數(shù)據(jù)會緩存到buffer cache中。

2.2 vmstat

vmstat (Virtual Memory Statics,虛擬內(nèi)存統(tǒng)計(jì)) 是對系統(tǒng)的整體情況進(jìn)行統(tǒng)計(jì),包括內(nèi)核進(jìn)程、虛擬內(nèi)存、磁盤、中斷CPU 活動的統(tǒng)計(jì)信息

>vmstat--help

Usage:
vmstat[options][delay[count]]

Options:
-a,--activeactive/inactivememory
-f,--forksnumberofforkssinceboot
-m,--slabsslabinfo
-n,--one-headerdonotredisplayheader
-s,--statseventcounterstatistics
-d,--diskdiskstatistics
-D,--disk-sumsummarizediskstatistics
-p,--partitionpartitionspecificstatistics
-S,--unitdefinedisplayunit
-w,--widewideoutput
-t,--timestampshowtimestamp

-h,--helpdisplaythishelpandexit
-V,--versionoutputversioninformationandexit
來源|公眾號:網(wǎng)絡(luò)技術(shù)干貨圈
Formoredetailsseevmstat(8).

>vmstat-SM1100#1表示刷新間隔(秒),100表示打印次數(shù),單位MB

procs-----------memory-------------swap-------io-----system--------cpu-----
rbswpdfreebuffcachesisobiboincsussyidwast
1004701881154000430009900
00047018811540000112231119800
00047018811540000911760010000
00047018811540000118229109900
00047018811540000781560010000
00047018811540006484186019720

procs

r列:表示運(yùn)行和等待 CPU 時間片的進(jìn)程數(shù),這個值如果長期大于 CPU 個數(shù),就說明 CPU 資源不足,可以考慮增加 CPU

b列:表示在等待資源的進(jìn)程數(shù),例如正在等待 I/O 或者內(nèi)存交換

memory

swpn列:表示切換到交換分區(qū)的內(nèi)存大小,如果swpd的值不為 0 或者比較大,且si、so的值長期為 0,那么這種情況暫時不會影響系統(tǒng)性能

free列:當(dāng)前空閑的物理內(nèi)存大小

buff列:表示buffers cache的內(nèi)存大小,一般對塊設(shè)備的讀寫才需要緩沖

cache列:表示page cache的內(nèi)存大小,一般作為文件系統(tǒng)的緩存,頻繁訪問的文件都會被 cached。如果 cache 值比較大,就說明 cached 文件數(shù)量較多。如果此時 I/O 中的bi比較小,就說明文件系統(tǒng)效率比較好

swap

si列:表示swap in,即內(nèi)存由交換分區(qū)放入物理內(nèi)存中

so列:表示swap out,即將未使用的內(nèi)存放到硬盤的交換分區(qū)中

io

bi列:表示從塊設(shè)備讀取的數(shù)據(jù)總量,即讀磁盤,單位KB/s

bo列:表示寫入塊設(shè)備的數(shù)據(jù)總量,即寫磁盤,單位KB/s

這里設(shè)置的bi+bo參考值為1000,如果超過1000,且wa值比較大,則表示系統(tǒng)磁盤 I/O 性能瓶頸

system

in列:表示在某一時間間隔中觀察到的每秒設(shè)備中斷數(shù)

cs列:表示每秒產(chǎn)生的上下文切換次數(shù)

上面這兩個值越大,內(nèi)核消耗的 CPU 時間就越多

cpu

us列:表示用戶進(jìn)程消耗 CPU 的時間百分比。us值比較高時,說明用戶進(jìn)程消耗的 CPU 時間多,如果長期大于 50%,可以考慮優(yōu)化程序

sy列:表示內(nèi)核進(jìn)程消耗 CPU 的時間百分比。sy值比較高時,說明內(nèi)核消耗的 CPU 時間多,如果us+sy超過 80%,就說明 CPU 資源存在不足

id列:表示 CPU 處在空閑狀態(tài)的時間百分比

wa列:表示 I/O Wait 所占 CPU 的時間百分比。wa值越高,說明 I/O Wait 越嚴(yán)重。如果wa值超過 20%,說明 I/O Wait 嚴(yán)重

st列:表示 CPU Steal Time,針對虛擬機(jī)

3. 網(wǎng)絡(luò)

3.1 接口

ifconfig
iftop
ethtool

3.2 端口

#端口
netstat-ntlp#TCP
netstat-nulp#UDP
netstat-nxlp#UNIX
netstat-nalp#不僅展示監(jiān)聽端口,還展示其他階段的連接
lsof-p-P
lsof-i:5900
sar-nDEV1#網(wǎng)絡(luò)流量
ss
ss-s

3.3 tcpdump

sudotcpdump-ianyudpport20112andip[0x1f:02]=0x4e91-XNnvvv
sudotcpdump-iany-XNnvvv
sudotcpdump-ianyudp-XNnvvv
sudotcpdump-ianyudpport20112-XNnvvv
sudotcpdump-ianyudpport20112andip[0x1f:02]=0x4e91-XNnvvv

3.4 nethogs

監(jiān)控各進(jìn)程的網(wǎng)絡(luò)流量

nethogs

4. I/O 性能

iotop
iostat
iostat-kx2
vmstat-SM
vmstat210
dstat
dstat--top-io--top-bio

5. 進(jìn)程

top
top-H
htop
psauxf
ps-eLf#展示線程
ls/proc//task

5.1 top

例如最常用的top命令:

HelpforInteractiveCommands-procpsversion3.2.8
Window1CumulativemodeOff.System:Delay3.0secs;SecuremodeOff.

Z,BGlobal:'Z'changecolormappings;'B'disable/enablebold
l,t,mToggleSummaries:'l'loadavg;'t'task/cpustats;'m'meminfo
1,IToggleSMPview:'1'single/separatestates;'I'Irix/Solarismode

f,o.Fields/Columns:'f'addorremove;'o'changedisplayorder
ForO.Selectsortfield
<,>.Movesortfield:'<'?next?col?left;?'>'nextcolright
R,H.Toggle:'R'normal/reversesort;'H'showthreads
c,i,S.Toggle:'c'cmdname/line;'i'idletasks;'S'cumulativetime
x,y.Togglehighlights:'x'sortfield;'y'runningtasks
z,b.Toggle:'z'color/mono;'b'bold/reverse(onlyif'x'or'y')
u.Showspecificuseronly
nor#.Setmaximumtasksdisplayed

k,rManipulatetasks:'k'kill;'r'renice
dorsSetupdateinterval
WWriteconfigurationfile
qQuit
(commandsshownwith'.'requireavisibletaskdisplaywindow)
Press'h'or'?'forhelpwithWindows,
anyotherkeytocontinue

1: 顯示各個 CPU 的使用情況

c: 顯示進(jìn)程完整路徑

H: 顯示線程

P: 排序 - CPU 使用率

M: 排序 - 內(nèi)存使用率

R: 倒序

Z: Change color mappings

B: Disable/enable bold

l: Toggle load avg

t: Toggle task/cpu stats

m: Toggle mem info

us-Timespentinuserspace
sy-Timespentinkernelspace
ni-Timespentrunningniceduserprocesses(Userdefinedpriority)
id-Timespentinidleoperations
wa-TimespentonwaitingonIOperipherals(eg.disk)
hi-Timespenthandlinghardwareinterruptroutines.(WheneveraperipheralunitwantattentionformtheCPU,itliterallypullsaline,tosignaltheCPUtoserviceit)
來源|公眾號:網(wǎng)絡(luò)技術(shù)干貨圈
si-Timespenthandlingsoftwareinterruptroutines.(apieceofcode,callsaninterruptroutine...)
st-Timespentoninvoluntarywaitsbyvirtualcpuwhilehypervisorisservicinganotherprocessor(stolenfromavirtualmachine)

5.2 lsof

lsof-P-p123

6. 性能測試

stress--cpu8
--io4
--vm2
--vm-bytes128M
--timeout60s

time命令

7. 用戶

w
whoami

8. 系統(tǒng)狀態(tài)

uptime
htop
vmstat
mpstat
dstat

9. 硬件設(shè)備

lspci
lscpu
lsblk
lsblk-fm#顯示文件系統(tǒng)、權(quán)限
lshw-cdisplay
dmidecode

10. 文件系統(tǒng)

#掛載
mount
umount
cat/etc/fstab
#LVM
pvdisplay
pvs
lvdisplay
lvs
vgdisplay
vgs
df-hT
lsof

11. 內(nèi)核、中斷

cat/proc/modules
sysctl-a|grep...
cat/proc/interrupts

12. 系統(tǒng)日志、內(nèi)核日志

dmesg
less/var/log/messages
less/var/log/secure
less/var/log/auth

13. cron 定時任務(wù)

crontab-l
crontab-l-unobody
#查看所有用戶的cron
sudofind/var/spool/cron/|sudoxargscat

14. 調(diào)試工具

14.1 perf

14.2 strace

strace命令用于打印系統(tǒng)調(diào)用、信號

strace-p
strace-p5191-f
strace-etrace=signal-p5191

-etrace=open
-etrace=file
-etrace=process
-etrace=network
-etrace=signal
-etrace=ipc
-etrace=desc
-etrace=memory

14.3 ltrace

ltrace命令用于打印動態(tài)鏈接庫訪問:

ltrace-p
ltrace-S#syscall

15. 場景案例

場景 1:連上服務(wù)器之后

w#顯示當(dāng)前登錄的用戶、登錄IP、正在執(zhí)行的進(jìn)程等
last#看看最近誰登錄了服務(wù)器、服務(wù)器重啟時間
uptime#開機(jī)時間、登錄用戶、平均負(fù)載
history#查看歷史命令

場景 2:/proc 目錄有哪些信息

cat/proc/...

cgroups
cmdline
cpuinfo
crypto
devices
diskstats
filesystems
iomem
ioports
kallsyms
meminfo
modules
partitions
uptime
version
vmstat

場景 3:后臺執(zhí)行命令

nohup&>[some.log]&

一些命令

#綜合
top
htop
glances
dstat&sar
mpstat
#性能分析
perf
#進(jìn)程
ps
pstree-p
pgrep
pkill
pidof
Ctrl+z&jobs&fg
#網(wǎng)絡(luò)
ip
ifconfig
dig
ping
traceroute
iftop
pingtop
nload
netstat
vnstat
slurm
scp
tcpdump
#磁盤I/O
iotop
iostat
#虛擬機(jī)
virt-top
#用戶
w
whoami
#運(yùn)行時間
uptime
#磁盤
du
df
lsblk
#權(quán)限
chown
chmod
#服務(wù)
systemctllist-unit-files
#定位
find
locate
#性能測試
time


審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10702

    瀏覽量

    209371
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207912
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8701

    瀏覽量

    84548
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2903

    瀏覽量

    73537
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    658

    瀏覽量

    21928

原文標(biāo)題:Linux服務(wù)器那么多參數(shù)該如何監(jiān)控,掌握這些Linux監(jiān)控命令可以早點(diǎn)下班!

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    linux服務(wù)器和windows服務(wù)器

    和適用性。 首先,Linux服務(wù)器種基于開源的操作系統(tǒng),其內(nèi)核是由許多個人和組織共同開發(fā)和維護(hù)的。它具有高度的穩(wěn)定性和安全 性。由于Linux操作系統(tǒng)的開放性,用戶可以根據(jù)自己的需
    發(fā)表于 02-22 15:46

    linux命令行操作和shell的區(qū)別 / 服務(wù)器選購!

    hell翻譯成殼的意思,它是包裹在linux內(nèi)核外層的,個可通過系列的linux命令對操作系統(tǒng)發(fā)出相關(guān)指令的人機(jī)界面。 shell可以通
    發(fā)表于 03-27 14:54

    linux服務(wù)器性能測試步驟

    linux服務(wù)器性能測試-服務(wù)器實(shí)時【磁盤】監(jiān)控
    發(fā)表于 06-02 06:54

    教你linux搭建web服務(wù)器

    教你linux搭建web服務(wù)器和大家分享了份配置文檔,希望對您用linux搭建web服務(wù)器有所啟發(fā)。
    發(fā)表于 12-28 14:18 ?8783次閱讀

    Linux服務(wù)器性能測試及分析命令大全

    Linux服務(wù)器性能測試及分析命令大全
    發(fā)表于 09-05 15:42 ?12次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>服務(wù)器</b>性能測試及分析<b class='flag-5'>命令</b>大全

    詳解Linux服務(wù)器的用戶活動和命令

    如果您在管理Linux服務(wù)器,最好準(zhǔn)備好使用用于檢查用戶活動的多個命令——用戶何時登錄及登錄頻率、屬于哪些用戶組、耗用多少磁盤空間、運(yùn)行什么命令、占用多少磁盤空間、是否在閱讀郵件等。
    的頭像 發(fā)表于 07-03 15:30 ?5876次閱讀

    Linux查看服務(wù)器狀態(tài)的命令大全

    Linux查看服務(wù)器狀態(tài)的命令大全
    發(fā)表于 07-09 09:34 ?21次下載
    <b class='flag-5'>Linux</b>查看<b class='flag-5'>服務(wù)器</b>狀態(tài)的<b class='flag-5'>命令</b>大全

    linux的scp命令怎么用_linux的grep命令用法

    linux中,scp命令用于Linux之間復(fù)制文件和目錄,即在Linux服務(wù)器中將本地的文
    發(fā)表于 09-04 15:36 ?4356次閱讀
    <b class='flag-5'>linux</b>的scp<b class='flag-5'>命令</b>怎么用_<b class='flag-5'>linux</b>的grep<b class='flag-5'>命令</b>用法

    排查Linux服務(wù)器性能問題工具

    如果你的Linux服務(wù)器突然負(fù)載暴增,告警短信快發(fā)爆你的手機(jī),如何在最短時間內(nèi)找出Linux性能問題所在?來看Netflix性能工程團(tuán)隊(duì)的這篇博,看它們通過十條
    的頭像 發(fā)表于 09-16 09:16 ?825次閱讀

    如何在linux服務(wù)器中打開端口

    有時我們可能需要在Linux服務(wù)器中打開端口或在Linux服務(wù)器的防火墻中啟用端口來運(yùn)行特定的應(yīng)用程序。在本文中,小編將帶大家分析下如何在
    的頭像 發(fā)表于 10-17 16:22 ?1.2w次閱讀

    分享Linux服務(wù)器的安全小貼士

    今天浩道跟大家分享Linux服務(wù)器的安全小貼士,讓你維護(hù)linux服務(wù)器安全上有些方向!
    發(fā)表于 01-29 11:27 ?272次閱讀

    如何使用Checkmk監(jiān)控Linux服務(wù)器?

    `Checkmk` 是用于監(jiān)控 Linux 服務(wù)器的最常用和用戶友好的應(yīng)用程序之。它可以檢查與您的 Linux
    的頭像 發(fā)表于 02-17 10:46 ?1037次閱讀
    如何使用Checkmk<b class='flag-5'>監(jiān)控</b><b class='flag-5'>Linux</b><b class='flag-5'>服務(wù)器</b>?

    掌握Linux常用命令

    掌握Linux40個命令
    的頭像 發(fā)表于 04-03 11:38 ?575次閱讀

    linux查看服務(wù)器配置

    如何使用Linux命令和工具來查看服務(wù)器配置,并提供些附加的相關(guān)信息和技巧。 第部分:概述服務(wù)器
    的頭像 發(fā)表于 11-17 09:41 ?951次閱讀

    linux服務(wù)器開啟端口命令

    Linux服務(wù)器開啟端口可以使用多種命令和方法,本文將詳細(xì)介紹五種常用的方法,并且提供些實(shí)際使用案例來幫助讀者更好地理解和使用這些命令
    的頭像 發(fā)表于 11-17 10:29 ?7313次閱讀