站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

Linux系統(tǒng)日常運(yùn)維管理技巧 – w相關(guān)的命令

Linux系統(tǒng)日常運(yùn)維管理技巧 – w相關(guān)的命令。

1 使用w查看系統(tǒng)負(fù)載

w命令用于顯示已經(jīng)登陸系統(tǒng)的用戶列表,并顯示用戶正在執(zhí)行的指令,還有系統(tǒng)負(fù)載等信息。

執(zhí)行這個(gè)命令可得知目前登入系統(tǒng)的用戶有那些人,以及他們正在執(zhí)行的程序。

單獨(dú)執(zhí)行w命令會(huì)顯示所有的用戶,您也可指定用戶名稱,僅顯示某位用戶的相關(guān)信息。

##一般用法:直接執(zhí)行w命令

[root@long01 ~]# w

19:38:50 up 6:30, 2 users, load average: 0.00, 0.01, 0.02

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root tty1 19:38 10.00s 0.03s 0.03s -bash

root pts/0 10.1.1.169 19:24 2.00s 0.01s 0.00s w

w命令所顯示字段的含義

字段

19:24:38表示當(dāng)前系統(tǒng)時(shí)間

up 6:16表示系統(tǒng)以及運(yùn)行了多少時(shí)間

1 user表示有多少用戶登錄到這個(gè)系

load average分別表示系統(tǒng)最近一分鐘、五分鐘、十五分鐘分鐘的負(fù)載

USER這一列表示在線用戶的用戶名。

TTY在線用戶所在的終端,遠(yuǎn)程終端是pts/0 pts/1等等,本地登錄的用戶顯示為tty1 tty2等等。

FROM表示用戶登錄的IP,如果是本地登錄則不顯示任何信息,或者顯示的是主機(jī)名

LOGIN@用戶登錄的時(shí)間

IDLE用戶空閑時(shí)間。這是個(gè)計(jì)時(shí)器,一旦用戶執(zhí)行任何操作,改計(jì)時(shí)器就會(huì)被重置

JCPU和終端連接的所有進(jìn)程占用時(shí)間。包括當(dāng)前正在運(yùn)行的后臺(tái)作業(yè)占用時(shí)間

PCPU當(dāng)前進(jìn)程所占用時(shí)間

WHAT當(dāng)前正在運(yùn)行進(jìn)程的命令行

load average詳解:

##第一個(gè)數(shù)字表示最近1分鐘系統(tǒng)的負(fù)載

##第二個(gè)數(shù)字表示最近5分鐘的負(fù)載

##第三個(gè)數(shù)字表示最近15分鐘的負(fù)載

##實(shí)際生產(chǎn)環(huán)境的負(fù)載情況應(yīng)該不高于服務(wù)器的邏輯CPU數(shù)量,

##最佳負(fù)載應(yīng)該等于邏輯cpu數(shù)量,沒有空閑,也沒有壓力。

##查看服務(wù)器的邏輯CPU數(shù)量,實(shí)際數(shù)量是processor最大的數(shù)字加1

[root@long01 ~]# cat /proc/cpuinfo | grep "^processor" | sort -drt " " -k3

processor : 1

processor : 0

w命令常用選項(xiàng)

h選項(xiàng):不打印頭信息,也就是第一行,只顯示所有在線用戶的信息

[root@long01 ~]# w -h

root tty1 19:38 23:44 0.12s 0.12s -bash

root pts/0 10.1.1.169 19:24 0.00s 0.04s 0.00s w -h

s選項(xiàng):短格式顯示簡(jiǎn)短的信息:

[root@long01 ~]# w -s

20:16:40 up 7:08, 2 users, load average: 0.00, 0.01, 0.02

USER TTY FROM IDLE WHAT

root tty1 25:12 -bash

root pts/0 10.1.1.169 0.00s w -s

w相關(guān)的命令:uptime

uptime命令的結(jié)果就是w命令的第一行

[root@long01 ~]# uptime

20:20:41 up 7:12, 2 users, load average: 0.00, 0.01, 0.02

2 vmstat命令

vmstat命令的含義為顯示虛擬內(nèi)存狀態(tài)(“Viryual Memor Statics”),但是它可以報(bào)告關(guān)于進(jìn)程、內(nèi)存、I/O等系統(tǒng)整體運(yùn)行狀態(tài)。

用法:

##直接使用:顯示一次信息

[root@long01 ~]# vmstat

procs ———–memory———- —swap– —–io—- -system– ——cpu—–

r b swpd free buff cache si so bi bo in cs us sy id wa st

1 0 0 1823464 2076 114716 0 0 5 1 26 24 0 0 100 0 0

##持續(xù)顯示直到使用Ctrl+Z暫停或者Ctrl+C終止: vmstat 1

[root@long01 ~]# vmstat 1 #1代表每1秒顯示一次,可以任意設(shè)置

procs ———–memory———- —swap– —–io—- -system– ——cpu—–

r b swpd free buff cache si so bi bo in cs us sy id wa st

1 0 0 1823464 2076 114716 0 0 5 1 26 24 0 0 100 0 0

0 0 0 1823464 2076 114716 0 0 0 0 70 56 0 0 100 0 0

0 0 0 1823464 2076 114716 0 0 0 0 48 41 0 0 100 0 0

0 0 0 1823448 2076 114716 0 0 0 1 51 50 0 0 100 0 0

^C

##持續(xù)顯示指定次數(shù):vmstat 1 5 ;表示每1秒顯示1次,顯示5次后自動(dòng)終止。

[root@long01 ~]# vmstat 1 5

procs ———–memory———- —swap– —–io—- -system– ——cpu—–

r b swpd free buff cache si so bi bo in cs us sy id wa st

2 0 0 1823588 2076 114716 0 0 5 1 26 24 0 0 100 0 0

0 0 0 1823572 2076 114716 0 0 0 0 72 56 0 0 100 0 0

0 0 0 1823572 2076 114716 0 0 0 0 57 53 0 0 100 0 0

0 0 0 1823572 2076 114716 0 0 0 0 61 54 0 0 100 0 0

0 0 0 1823572 2076 114716 0 0 0 0 53 45 0 0 100 0 0

[root@long01 ~]#

常用選項(xiàng):

f選項(xiàng):顯示啟動(dòng)后創(chuàng)建的進(jìn)程總數(shù);

[root@long01 ~]# vmstat -f

1202 forks

S選項(xiàng):輸出信息的單位,可以設(shè)定 k或者K 顯示的是多少kb,m或者M(jìn)顯示的是多少M(fèi)。

[root@long01 ~]# vmstat 1 5 -S M

procs ———–memory———- —swap– —–io—- -system– ——cpu—–

r b swpd free buff cache si so bi bo in cs us sy id wa st

1 0 0 1780 2 112 0 0 4 0 26 24 0 0 100 0 0

0 0 0 1780 2 112 0 0 0 0 108 96 0 0 100 0 0

0 0 0 1780 2 112 0 0 0 0 87 82 0 0 100 0 0

0 0 0 1780 2 112 0 0 0 4 88 81 0 0 100 0 0

0 0 0 1780 2 112 0 0 0 1 91 89 0 0 100 0 0

##上面free:1700M ;buff:2M ;cache:112M

字段說明:

Procs(進(jìn)程)

r: 運(yùn)行隊(duì)列中進(jìn)程數(shù)量,這個(gè)值也可以判斷是否需要增加CPU。(長(zhǎng)期大于1)

b: 等待IO的進(jìn)程數(shù)量。

Memory(內(nèi)存)

swpd: 使用虛擬內(nèi)存大小,如果swpd的值不為0,但是SI,SO的值長(zhǎng)期為0,這種情況不會(huì)影響系統(tǒng)性能。

free: 空閑物理內(nèi)存大小。

buff: 用作緩沖的內(nèi)存大小。

cache: 用作緩存的內(nèi)存大小,如果cache的值大的時(shí)候,說明cache處的文件數(shù)多,如果頻繁訪問到的文件都能被cache處,那么磁盤的讀IO bi會(huì)非常小。

Swap(交換空間)

si: 每秒從交換區(qū)寫到內(nèi)存的大小,由磁盤調(diào)入內(nèi)存。

so: 每秒寫入交換區(qū)的內(nèi)存大小,由內(nèi)存調(diào)入磁盤。

(注意:內(nèi)存夠用的時(shí)候,這2個(gè)值都是0,如果這2個(gè)值長(zhǎng)期大于0時(shí),系統(tǒng)性能會(huì)受到影響,磁盤IO和CPU資源都會(huì)被消耗。有些朋友看到空閑內(nèi)存(free)很少的或接近于0時(shí),就認(rèn)為內(nèi)存不夠用了,不能光看這一點(diǎn),還要結(jié)合si和so,如果free很少,但是si和so也很少(大多時(shí)候是0),那么不用擔(dān)心,系統(tǒng)性能這時(shí)不會(huì)受到影響的。)

IO

bi: 每秒讀取的塊數(shù)

bo: 每秒寫入的塊數(shù)

(注意:隨機(jī)磁盤讀寫的時(shí)候,這2個(gè)值越大(如超出1024k),能看到CPU在IO等待的值也會(huì)越大。)

system(系統(tǒng))

in: 每秒中斷數(shù),包括時(shí)鐘中斷。

cs: 每秒上下文切換數(shù)。

(注意:上面2個(gè)值越大,會(huì)看到由內(nèi)核消耗的CPU時(shí)間會(huì)越大。)

CPU(以百分比表示)

us: 用戶進(jìn)程執(zhí)行時(shí)間百分比(user time)

(注:us的值比較高時(shí),說明用戶進(jìn)程消耗的CPU時(shí)間多,但是如果長(zhǎng)期超50%的使用,那么我們就該考慮優(yōu)化程序算法或者進(jìn)行加速。)

sy: 內(nèi)核系統(tǒng)進(jìn)程執(zhí)行時(shí)間百分比(system time)

(注:sy的值高時(shí),說明系統(tǒng)內(nèi)核消耗的CPU資源多,這并不是良性表現(xiàn),我們應(yīng)該檢查原因。)

wa: IO等待時(shí)間百分比

(注:wa的值高時(shí),說明IO等待比較嚴(yán)重,這可能由于磁盤大量作隨機(jī)訪問造成,也有可能磁盤出現(xiàn)瓶頸(塊操作)。)

id: 空閑時(shí)間百分比

3 top命令

? top命令類似于Windows的任務(wù)管理器:可以實(shí)時(shí)動(dòng)態(tài)地查看系統(tǒng)的整體運(yùn)行情況,是一個(gè)綜合了多方信息監(jiān)測(cè)系統(tǒng)性能和運(yùn)行信息的實(shí)用工具。通過top命令所提供的互動(dòng)式界面,用熱鍵可以管理。

使用方法

[root@long01 ~]# top

top – 23:44:18 up 3:04, 1 user, load average: 0.00, 0.01, 0.02

Tasks: 92 total, 1 running, 91 sleeping, 0 stopped, 0 zombie

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 2031912 total, 1822860 free, 92024 used, 117028 buff/cache

KiB Swap: 2097148 total, 2097148 free, 0 used. 1789820 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1 root 20 0 125092 3660 2520 S 0.0 0.2 0:00.49 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0

常用選項(xiàng):

d選項(xiàng):可以調(diào)整top信息的刷新時(shí)間,默認(rèn)為3秒

[root@long01 ~]# top -d 1 #調(diào)整top信息刷新時(shí)間為1秒。如此top顯示的信息每1秒都會(huì)刷新一次。

u選項(xiàng):查看某個(gè)用戶的進(jìn)程

[root@long01 ~]# top -u user2

top – 23:56:04 up 3:16, 2 users, load average: 0.00, 0.01, 0.02

Tasks: 96 total, 1 running, 95 sleeping, 0 stopped, 0 zombie

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 2031912 total, 1819324 free, 95252 used, 117336 buff/cache

KiB Swap: 2097148 total, 2097148 free, 0 used. 1786392 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1248 user2 20 0 150868 2304 976 S 0.0 0.1 0:00.00 sshd 1249 user2 20 0 115952 2420 1676 S 0.0 0.1 0:00.01 bash

c選項(xiàng):顯示完整的進(jìn)程命令

[root@long01 ~]# top -c

top – 12:02:53 up 19:26, 1 user, load average: 0.00, 0.01, 0.04

Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 2031912 total, 1612116 free, 96668 used, 323128 buff/cache

KiB Swap: 2097148 total, 2097148 free, 0 used. 1752328 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1 root 20 0 43272 3532 2328 S 0.0 0.2 0:00.70 /usr/lib/systemd/systemd –system –deserialize 13

b選項(xiàng):以批處理的模式操作, 顯示全部的進(jìn)程信息。

n選項(xiàng):可以設(shè)置循環(huán)顯示次數(shù),刷新指定的次數(shù)后停止top命令

[root@long01 ~]# top -bn 1 #-bn 1的組合常用于腳本中,可以調(diào)取一次系統(tǒng)運(yùn)行信息。用于分析數(shù)據(jù),

top – 12:08:05 up 19:31, 1 user, load average: 0.00, 0.01, 0.05

Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie

%Cpu(s): 0.0 us, 3.1 sy, 0.0 ni, 96.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 2031912 total, 1612312 free, 96316 used, 323284 buff/cache

KiB Swap: 2097148 total, 2097148 free, 0 used. 1752656 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1 root 20 0 43272 3532 2328 S 0.0 0.2 0:00.70 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd

3 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/0

5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

字段解釋:

第一行:與w命令的第一行相同,顯示的時(shí)系統(tǒng)當(dāng)前的時(shí)間,已運(yùn)行的時(shí)間,系統(tǒng)負(fù)載信息。

第二行:依次是:總?cè)蝿?wù)數(shù)量,處于運(yùn)行狀態(tài)的任務(wù)數(shù)量,休眠狀態(tài)的任務(wù)數(shù)量,停止?fàn)顟B(tài)的任務(wù)數(shù)量,僵尸進(jìn)程數(shù)量

第三行:CPU信息,與vmstat顯示的信息類似。最后的st意思是當(dāng) hypervisor 服務(wù)另一個(gè)虛擬處理器的時(shí)候,虛擬 CPU 等待實(shí)際 CPU 的時(shí)間的百分比

第四行:依次是:總物理內(nèi)存,空閑的內(nèi)存,已使用的內(nèi)存,緩沖區(qū)和緩存使用的內(nèi)存。

第五行:依次是:交換分區(qū)總大小,空閑多少,已使用多少,有效的內(nèi)存。

第七行:表示下面的進(jìn)程信息,依次是:

PID:進(jìn)程ID

USER:開啟進(jìn)程的用戶,

PR:進(jìn)程的優(yōu)先級(jí)

NI:NICE值,為負(fù)值時(shí)表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí)

VIRT:進(jìn)程使用的虛擬內(nèi)存總量,單位為KB

RES:進(jìn)程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA

SHR:共享內(nèi)存大小,單位kb

S:進(jìn)程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運(yùn)行 S=睡眠 T=跟蹤/停止 Z=僵尸進(jìn)程

%CPU:上次更新到現(xiàn)在的CPU時(shí)間占用百分比

%MEM:進(jìn)程使用的物理內(nèi)存百分比

TIME+:進(jìn)程使用的CPU時(shí)間總計(jì),單位1/100秒

COMMAND:進(jìn)程名稱(命令名/命令行)

top交互命令:

h:顯示幫助畫面,給出一些簡(jiǎn)短的命令總結(jié)說明;

k:終止一個(gè)進(jìn)程; k pid

i:忽略閑置和僵死進(jìn)程,這是一個(gè)開關(guān)式命令;

q:退出程序;

r:重新安排一個(gè)進(jìn)程的優(yōu)先級(jí)別;

S:切換到累計(jì)模式;

s:改變兩次刷新之間的延遲時(shí)間(單位為s),如果有小數(shù),就換算成ms。輸入0值則系統(tǒng)將不斷刷新,默認(rèn)值是5s;

f或者F:從當(dāng)前顯示中添加或者刪除項(xiàng)目;

o或者O:改變顯示項(xiàng)目的順序;

l:切換顯示平均負(fù)載和啟動(dòng)時(shí)間信息;

m:切換顯示內(nèi)存信息;

t:切換顯示進(jìn)程和CPU狀態(tài)信息;

c:切換顯示命令名稱和完整命令行;

M:根據(jù)駐留內(nèi)存大小進(jìn)行排序;

P:根據(jù)CPU使用百分比大小進(jìn)行排序;

T:根據(jù)時(shí)間/累計(jì)時(shí)間進(jìn)行排序;

w:將當(dāng)前設(shè)置寫入~/.toprc文件中。

4 sar命令

sar命令是Linux下系統(tǒng)運(yùn)行狀態(tài)統(tǒng)計(jì)工具,它將指定的操作系統(tǒng)狀態(tài)計(jì)數(shù)器顯示到標(biāo)準(zhǔn)輸出設(shè)備。

sar工具將對(duì)系統(tǒng)當(dāng)前的狀態(tài)進(jìn)行取樣,然后通過計(jì)算數(shù)據(jù)和比例來表達(dá)系統(tǒng)的當(dāng)前運(yùn)行狀態(tài)。

它的特點(diǎn)是可以連續(xù)對(duì)系統(tǒng)取樣,獲得大量的取樣數(shù)據(jù)。

取樣數(shù)據(jù)和分析的結(jié)果都可以存入文件,使用它時(shí)消耗的系統(tǒng)資源很小。

如果提示找不到該命令,可以執(zhí)行下面的命令進(jìn)行安裝。

[root@long01 ~]# yum install -y sysstat

命令格式:sar (選項(xiàng)) (參數(shù))

sar會(huì)每十分鐘記錄一次系統(tǒng)的狀態(tài),每天會(huì)以sa和sar加上每天的日期命名,保存兩個(gè)文件:

一個(gè)是/var/log/sa/saxx:xx為當(dāng)天的日期。還有一個(gè)是/var/log/sa/sarxx

這些文件默認(rèn)會(huì)保留一個(gè)月

[root@www ~]# ls /var/log/sa

sa01 sa04 sa07 sa10 sa14 sa17 sa20 sa23 sa26 sa29 sar01 sar04 sar07 sar11 sar14 sar17 sar20 sar23 sar26 sar29

sa02 sa05 sa08 sa12 sa15 sa18 sa21 sa24 sa27 sa30 sar02 sar05 sar08 sar12 sar15 sar18 sar21 sar24 sar27 sar30

sa03 sa06 sa09 sa13 sa16 sa19 sa22 sa25 sa28 sa31 sar03 sar06 sar09 sar13 sar16 sar19 sar22 sar25 sar28 sar31

sa開頭的文件是數(shù)據(jù)文件, 需要用sar -f 命令來讀取,直接cat會(huì)亂碼

[root@www ~]# sar -f /var/log/sa/sa01 #如果不指定查看的文件,那么查看的就是當(dāng)天的信息。

Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/01/2018 _x86_64_ (1 CPU)

12:00:01 AM CPU %user %nice %system %iowait %steal %idle

12:10:01 AM all 0.15 0.00 0.10 0.00 0.00 99.75

12:20:01 AM all 0.15 0.00 0.10 0.00 0.00 99.75

(此處省略N行。。。)

字段解釋:

字段解釋:

第一行顯示的依次是,系統(tǒng)內(nèi)核版本,主機(jī)名,日期,系統(tǒng)數(shù)據(jù)位 CPU數(shù)量

第二行為空,

第三行為字段頭,表示這一列代表的數(shù)據(jù)是什么,

%user 用戶空間的CPU使用

%nice 改變過優(yōu)先級(jí)的進(jìn)程的CPU使用率

%system 內(nèi)核空間的CPU使用率

%iowait CPU等待IO的百分比

%steal 虛擬機(jī)的虛擬機(jī)CPU使用的CPU

%idle 空閑的CPU

在以上的顯示當(dāng)中,主要看%iowait和%idle,%iowait過高表示存在I/O瓶頸,即磁盤IO無法滿足業(yè)務(wù)需求,如果%idle過低表示CPU使用率比較嚴(yán)重,需要結(jié)合內(nèi)存使用等情況判斷CPU是否瓶頸。

sar開頭的文件為普通文本文件,可以直接使用cat等命令查看。

[root@www ~]# head -6 /var/log/sa/sar01

Linux 3.10.0-693.11.1.el7.x86_64 (www) 2018-06-01 _x86_64_ (1 CPU)

12:00:01 AM CPU %usr %nice %sys %iowait %steal %irq %soft %guest %gnice %idle

12:10:01 AM all 0.15 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 99.75

12:10:01 AM 0 0.15 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 99.75

12:20:01 AM all 0.15 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 99.75

sar -n DEV 查看網(wǎng)卡流量

[root@www ~]# sar -n DEV

Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

12:00:01 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s

12:10:01 AM eth0 0.11 0.11 0.01 0.02 0.00 0.00 0.00

12:10:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00

字段解釋:

第一行顯示的依次是,系統(tǒng)內(nèi)核版本,主機(jī)名,日期,系統(tǒng)數(shù)據(jù)位 CPU數(shù)量

第二行為空,

第三行為字段頭,表示這一列代表的數(shù)據(jù)是什么,

12:00:01 AM :記錄信息的時(shí)間

IFACE:網(wǎng)卡接口

rxpck/s:接收的數(shù)據(jù)包數(shù)量。

txpck/s:發(fā)送的數(shù)據(jù)包數(shù)量。

rxkB/s:接收的數(shù)據(jù)大小。

txkB/s:發(fā)送的數(shù)據(jù)大小。

rxcmp/s:每秒鐘接收的壓縮數(shù)據(jù)包

txcmp/s:每秒鐘發(fā)送的壓縮數(shù)據(jù)包

rxmcst/s:每秒鐘接收的多播數(shù)據(jù)包

sar -q 查看平均負(fù)載

[root@www ~]# sar -q | head -6

Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked

12:10:01 AM 3 183 0.00 0.01 0.05 0

12:20:01 AM 2 183 0.00 0.01 0.05 0

12:30:01 AM 2 183 0.00 0.01 0.05 0

字段解釋:

runq-sz 運(yùn)行隊(duì)列的長(zhǎng)度(等待運(yùn)行的進(jìn)程數(shù),每核的CP不能超過3個(gè))

plist-sz 進(jìn)程列表中的進(jìn)程(processes)和線程數(shù)(threads)的數(shù)量

ldavg-1 最后1分鐘的CPU平均負(fù)載,即將多核CPU過去一分鐘的負(fù)載相加再除以核心數(shù)得出的平均值,5分鐘和15分鐘以此類推

ldavg-5 最后5分鐘的CPU平均負(fù)載

ldavg-15 最后15分鐘的CPU平均負(fù)載

sar -b 磁盤讀寫

[root@www ~]# sar -b | head -6

Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

12:00:01 AM tps rtps wtps bread/s bwrtn/s

12:10:01 AM 0.38 0.09 0.29 3.51 2.94

12:20:01 AM 0.12 0.00 0.12 0.00 1.21

12:30:01 AM 0.14 0.00 0.14 0.00 1.43

字段解釋:

tps 磁盤每秒鐘的IO總數(shù),等于iostat中的tps

rtps 每秒鐘從磁盤讀取的IO總數(shù)

wtps 每秒鐘從寫入到磁盤的IO總數(shù)

bread/s 每秒鐘從磁盤讀取的塊總數(shù)

bwrtn/s 每秒鐘此寫入到磁盤的塊總數(shù)

sar -v 進(jìn)程、inode、文件和鎖表狀態(tài)

[root@www ~]# sar -v | head -6

Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

12:00:01 AM dentunusd file-nr inode-nr pty-nr

12:10:01 AM 26702 1376 32673 0

12:20:01 AM 26712 1376 32677 0

12:30:01 AM 26718 1376 32677 0

字段解釋:

dentunusd 在緩沖目錄條目中沒有使用的條目數(shù)量

file-nr 被系統(tǒng)使用的文件句柄數(shù)量

inode-nr 已經(jīng)使用的索引數(shù)量

pty-nr 使用的pty數(shù)量

更多sar用法參考:https://www.cnblogs.com/howhy/p/6396437.html

5 nload命令

nload命令主要用途: 用來即時(shí)監(jiān)看網(wǎng)路狀態(tài)和各ip所使用的帶寬

nload 默認(rèn)分為上下兩塊:

上半部分是:Incoming也就是進(jìn)入網(wǎng)卡的流量,

下半部分是:Outgoing,也就是從這塊網(wǎng)卡出去的流量,

每部分都有下面這幾個(gè)部分,看起來還是蠻直觀的。

當(dāng)前流量(Curr)

平均流量(Avg)

最小流量(Min)

最大流量(Max),

流量總和(Ttl)

nload默認(rèn)沒有安裝:yum安裝前需要安裝epel擴(kuò)展包,然后再安裝nload

[root@www ~]# yum install -y epel-release

(安裝過程省略。。)

[root@www ~]# yum install -y nload

nload默認(rèn)監(jiān)測(cè)的是eth0網(wǎng)卡

[root@www ~]# nload

如果你想監(jiān)測(cè)其他網(wǎng)卡的流量,可以使用左右按鍵在所有接口間切換。*或者在命令后接上網(wǎng)卡名。*

[root@www ~]# nload ens33

其他詳細(xì)用法參考:https://linux.cn/article-2871-1.html

6 監(jiān)控io性能

iostat

iostat主要用于監(jiān)控系統(tǒng)設(shè)備的IO負(fù)載情況,iostat首次運(yùn)行時(shí)顯示自系統(tǒng)啟動(dòng)開始的各項(xiàng)統(tǒng)計(jì)信息,

之后運(yùn)行iostat將顯示自上次運(yùn)行該命令以后的統(tǒng)計(jì)信息。

用戶可以通過指定統(tǒng)計(jì)的次數(shù)和時(shí)間來獲得所需的統(tǒng)計(jì)信息。

日常用法:iostat -d -k 2

參數(shù) -d 表示,顯示設(shè)備(磁盤)使用狀態(tài);-k某些使用block為單位的列強(qiáng)制使用Kilobytes為單位;2表示,數(shù)據(jù)顯示每隔2秒刷新一次。

[root@www ~]# iostat -d -k 2

Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

vda 0.25 0.57 2.69 1589753 7512964

###我的服務(wù)器只有一塊vda磁盤。

字段解釋:

Device:磁盤設(shè)備名。

tps:該設(shè)備每秒的傳輸次數(shù),"一次傳輸"意思是"一次I/O請(qǐng)求"。

多個(gè)邏輯請(qǐng)求可能會(huì)被合并為"一次I/O請(qǐng)求"。"一次傳輸"請(qǐng)求的大小是未知的。

kB_read/s:每秒從設(shè)備(drive expressed)讀取的數(shù)據(jù)量;

kB_wrtn/s:每秒向設(shè)備(drive expressed)寫入的數(shù)據(jù)量;

kB_read:讀取的總數(shù)據(jù)量;

kB_wrtn:寫入的總數(shù)量數(shù)據(jù)量;這些單位都為Kilobytes。

iostat還有一個(gè)比較常用的選項(xiàng)-x,該選項(xiàng)將用于顯示和io相關(guān)的擴(kuò)展數(shù)據(jù)。

[root@www ~]# iostat -d -x -k 1 10 ###1和10代表的事每一秒刷新一次,刷新10次后停止。

Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

vda 0.00 0.10 0.03 0.22 0.57 2.69 25.59 0.00 14.54 4.26 15.97 0.40 0.01

字段解釋:

rrqm/s:每秒這個(gè)設(shè)備相關(guān)的讀取請(qǐng)求有多少被Merge了

(當(dāng)系統(tǒng)調(diào)用需要讀取數(shù)據(jù)的時(shí)候,VFS將請(qǐng)求發(fā)到各個(gè)FS,如果FS發(fā)現(xiàn)不同的讀取請(qǐng)求讀取的是相同Block的數(shù)據(jù),F(xiàn)S會(huì)將這個(gè)請(qǐng)求合并Merge);

wrqm/s:每秒這個(gè)設(shè)備相關(guān)的寫入請(qǐng)求有多少被Merge了。

rsec/s:每秒讀取的扇區(qū)數(shù);

wsec/:每秒寫入的扇區(qū)數(shù)。

rKB/s:The number of read requests that were issued to the device per second;

wKB/s:The number of write requests that were issued to the device per second;

avgrq-sz 平均請(qǐng)求扇區(qū)的大小

avgqu-sz 是平均請(qǐng)求隊(duì)列的長(zhǎng)度。毫無疑問,隊(duì)列長(zhǎng)度越短越好。

await:每一個(gè)IO請(qǐng)求的處理的平均時(shí)間(單位是微秒毫秒)。這里可以理解為IO的響應(yīng)時(shí)間,一般地系統(tǒng)IO響應(yīng)時(shí)間應(yīng)該低于5ms,如果大于10ms就比較大了。

這個(gè)時(shí)間包括了隊(duì)列時(shí)間和服務(wù)時(shí)間,也就是說,一般情況下,await大于svctm,它們的差值越小,則說明隊(duì)列時(shí)間越短,反之差值越大,隊(duì)列時(shí)間越長(zhǎng),說明系統(tǒng)出了問題。

svctm 表示平均每次設(shè)備I/O操作的服務(wù)時(shí)間(以毫秒為單位)。如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠(yuǎn)高于svctm的值,則表示I/O隊(duì)列等待太長(zhǎng), 系統(tǒng)上運(yùn)行的應(yīng)用程序?qū)⒆兟?/p>

%util: 在統(tǒng)計(jì)時(shí)間內(nèi)所有處理IO時(shí)間,除以總共統(tǒng)計(jì)時(shí)間。例如,如果統(tǒng)計(jì)間隔1秒,該設(shè)備有0.8秒在處理IO,而0.2秒閑置,那么該設(shè)備的%util = 0.8/1 = 80%,所以該參數(shù)暗示了設(shè)備的繁忙程度

。一般地,如果該參數(shù)是100%表示設(shè)備已經(jīng)接近滿負(fù)荷運(yùn)行了(當(dāng)然如果是多磁盤,即使%util是100%,因?yàn)榇疟P的并發(fā)能力,所以磁盤使用未必就到了瓶頸)。

iostat更多詳細(xì)用法參考:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html

iotop

有時(shí)我們希望知道到底哪個(gè)進(jìn)程產(chǎn)生了IO,這個(gè)時(shí)候就需要iotop這個(gè)工具了。 它的輸出和top命令類似,簡(jiǎn)單直觀。

首次使用iotop工具需要先進(jìn)行安裝:

[root@long01 ~]# yum install -y iotop

用法:直接執(zhí)行,-d選項(xiàng)指定信息刷新的時(shí)間,單位為秒。

[root@long01 ~]# iotop -d 20

Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s

Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 2.90 K/s

TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND

25 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:1]

1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd –switched-root –system –deserialize 21

2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]

1027 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % -bash

這個(gè)命令主要關(guān)注的是“IO>“ 這一列,表示進(jìn)程占用磁盤IO的百分比。

7 free命令

free 命令會(huì)顯示內(nèi)存的使用情況,包括實(shí)體內(nèi)存,虛擬的交換文件內(nèi)存,共享內(nèi)存區(qū)段,以及系統(tǒng)核心使用的緩沖區(qū)等。

用法:直接執(zhí)行

[root@long01 ~]# free

total used free shared buff/cache available

Mem: 2031912 131408 81632 8820 1818872 1685252

Swap: 2097148 0 2097148

字段解釋:

Mem:這一行表示物理內(nèi)存的信息

Swap:這一行表示交換區(qū)的信息。

total列:表示物理內(nèi)存總大小和交換分區(qū)的總大小。

used:已使用的內(nèi)存或交換分區(qū)。

free:空閑的內(nèi)存或者交換分區(qū)。

shared:共享的內(nèi)存

buff/cache:緩存區(qū)和緩沖區(qū)的容量大小,

buffer:緩沖區(qū),CPU處理好的數(shù)據(jù)如果直接寫入磁盤的話太慢了,需要先存放在內(nèi)存中,這個(gè)過程就叫做緩沖。

cache:由于CPU直接到磁盤中讀取數(shù)據(jù)也非常慢,所以程序需要先將磁盤中部分?jǐn)?shù)據(jù)加載到內(nèi)存中再讓CPU進(jìn)行計(jì)算,這叫做緩存。

available:可使用的內(nèi)存容量大小。

total=used+free+buff/cache

available包含free和buffer/cache剩余部分

常用選項(xiàng):

-b:以Byte為單位顯示內(nèi)存使用情況;

[root@long01 ~]# free -b

total used free shared buff/cache available

Mem: 2080677888 134594560 82591744 9031680 1863491584 1725714432

Swap: 2147479552 0 2147479552

-h:易讀方式顯示。

[root@long01 ~]# free -h

total used free shared buff/cache available

Mem: 1.9G 128M 78M 8.6M 1.7G 1.6G

Swap: 2.0G 0B 2.0G

-k:以KB為單位顯示內(nèi)存使用情況;

[root@long01 ~]# free -k

total used free shared buff/cache available

Mem: 2031912 131340 80756 8820 1819816 1685368

Swap: 2097148 0 2097148

-m:以MB為單位顯示內(nèi)存使用情況;

[root@long01 ~]# free -m

total used free shared buff/cache available

Mem: 1984 128 78 8 1777 1645

Swap: 2047 0 2047

-s<間隔秒數(shù)>:持續(xù)觀察內(nèi)存使用狀況;

[root@long01 ~]# free -s 1

total used free shared buff/cache available

Mem: 2031912 131584 80500 8820 1819828 1685124

Swap: 2097148 0 2097148

total used free shared buff/cache available

Mem: 2031912 131584 80500 8820 1819828 1685124

Swap: 2097148 0 2097148

8 ps命令

ps命令用于報(bào)告當(dāng)前系統(tǒng)的進(jìn)程狀態(tài)。可以搭配kell指令隨時(shí)中斷、刪除不必要的程序。

用法:直接使用將目前屬于您自己這次登入的 PID 與相關(guān)信息列示出來

[root@long01 ~]# ps -l ###-l選項(xiàng)顯示更詳細(xì)的信息

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

4 S 0 992 988 0 80 0 – 28848 do_wai pts/0 00:00:00 bash

0 R 0 1020 992 0 80 0 – 37235 – pts/0 00:00:00 ps

[root@long01 ~]# ps

PID TTY TIME CMD

992 pts/0 00:00:00 bash

1021 pts/0 00:00:00 ps

字段解釋:

F 代表這個(gè)程序的旗標(biāo) (flag), 4 代表使用者為 superuser;

S 代表這個(gè)程序的狀態(tài) (STAT);

UID 代表執(zhí)行者身份

PID 進(jìn)程的ID號(hào)!

PPID 父進(jìn)程的ID;

C CPU使用的資源百分比

PRI指進(jìn)程的執(zhí)行優(yōu)先權(quán)(Priority的簡(jiǎn)寫),其值越小越早被執(zhí)行;

NI 這個(gè)進(jìn)程的nice值,其表示進(jìn)程可被執(zhí)行的優(yōu)先級(jí)的修正數(shù)值。

ADDR 這個(gè)是內(nèi)核函數(shù),指出該程序在內(nèi)存的那個(gè)部分。如果是個(gè)執(zhí)行 的程序,一般就是『 – 』

SZ 使用掉的內(nèi)存大小;

WCHAN 目前這個(gè)程序是否正在運(yùn)作當(dāng)中,若為 – 表示正在運(yùn)作;

TTY 登入者的終端機(jī)位置;

TIME 使用掉的 CPU 時(shí)間。

CMD 所下達(dá)的指令名稱

列出目前所有的進(jìn)程:

[root@long01 ~]# ps -aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.3 193700 6820 ? Ss 21:10 0:00 /usr/lib/systemd/systemd –switched-root –system –deserialize 21

root 2 0.0 0.0 0 0 ? S 21:10 0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? S 21:10 0:00 [ksoftirqd/0]

(省略n行。。。)

字段解釋:

USER:該進(jìn)程屬于那個(gè)使用者賬號(hào)。

PID :該進(jìn)程的進(jìn)程ID號(hào)。

%CPU:該進(jìn)程使用掉的 CPU 資源百分比;

%MEM:該進(jìn)程所占用的物理內(nèi)存百分比;

VSZ :該進(jìn)程使用掉的虛擬內(nèi)存量 (Kbytes)

RSS :該進(jìn)程占用的固定的內(nèi)存量 (Kbytes)

TTY :該進(jìn)程是在那個(gè)終端機(jī)上面運(yùn)作,若與終端機(jī)無關(guān),則顯示 ?。

另外, tty1-tty6 是本機(jī)上面的登入者程序,若為 pts/0 等等的,則表示為由網(wǎng)絡(luò)連接進(jìn)主機(jī)的程序。

STAT:該程序目前的狀態(tài),主要的狀態(tài)有:

D 不能中斷的進(jìn)程

R run狀態(tài)的進(jìn)程

S sleep狀態(tài)的進(jìn)程

T 暫停的進(jìn)程

Z 僵尸進(jìn)程

< 高優(yōu)先級(jí)進(jìn)程

N 低優(yōu)先級(jí)進(jìn)程

L 內(nèi)存中被鎖了內(nèi)存分頁

s 主進(jìn)程

l 多線程進(jìn)程

+ 前臺(tái)進(jìn)程

START:該進(jìn)程被觸發(fā)啟動(dòng)的時(shí)間;

TIME :該進(jìn)程實(shí)際使用 CPU 運(yùn)作的時(shí)間。

COMMAND:該程序的實(shí)際指令。

9 查看網(wǎng)絡(luò)狀態(tài)

netstat命令

netstat命令用來打印Linux中網(wǎng)絡(luò)系統(tǒng)的狀態(tài)信息,可讓你得知整個(gè)Linux系統(tǒng)的網(wǎng)絡(luò)情況。

可用選項(xiàng):

-a或–all:顯示所有連線中的Socket;

-A<網(wǎng)絡(luò)類型>或–<網(wǎng)絡(luò)類型>:列出該網(wǎng)絡(luò)類型連線中的相關(guān)地址;

-c或–continuous:持續(xù)列出網(wǎng)絡(luò)狀態(tài);

-C或–cache:顯示路由器配置的快取信息;

-e或–extend:顯示網(wǎng)絡(luò)其他相關(guān)信息;

-F或–fib:顯示FIB;

-g或–groups:顯示多重廣播功能群組組員名單;

-h或–help:在線幫助;

-i或–interfaces:顯示網(wǎng)絡(luò)界面信息表單;

-l或–listening:顯示監(jiān)控中的服務(wù)器的Socket;

-M或–masquerade:顯示偽裝的網(wǎng)絡(luò)連線;

-n或–numeric:直接使用ip地址,而不通過域名服務(wù)器;

-N或–netlink或–symbolic:顯示網(wǎng)絡(luò)硬件外圍設(shè)備的符號(hào)連接名稱;

-o或–timers:顯示計(jì)時(shí)器;

-p或–programs:顯示正在使用Socket的程序識(shí)別碼和程序名稱;

-r或–route:顯示Routing Table;

-s或–statistice:顯示網(wǎng)絡(luò)工作信息統(tǒng)計(jì)表;

-t或–tcp:顯示TCP傳輸協(xié)議的連線狀況;

-u或–udp:顯示UDP傳輸協(xié)議的連線狀況;

-v或–verbose:顯示指令執(zhí)行過程;

-V或–version:顯示版本信息;

-w或–raw:顯示RAW傳輸協(xié)議的連線狀況;

-x或–unix:此參數(shù)的效果和指定"-A unix"參數(shù)相同;

–ip或–inet:此參數(shù)的效果和指定"-A inet"參數(shù)相同。

常規(guī)用法:

### netstat -lnp 查看監(jiān)聽端口

[root@long01 ~]# netstat -lnp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 879/sshd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 975/master

tcp6 0 0 :::22 :::* LISTEN 879/sshd

tcp6 0 0 ::1:25 :::* LISTEN 975/master

udp 0 0 127.0.0.1:323 0.0.0.0:* 554/chronyd

udp6 0 0 ::1:323 :::* 554/chronyd

Active UNIX domain sockets (only servers)

Proto RefCnt Flags Type State I-Node PID/Program name Path

unix 2 [ ACC ] STREAM LISTENING 1582 1/systemd /run/systemd/journal/stdout

unix 2 [ ACC ] STREAM LISTENING 19383 975/master private/tlsmgr

unix 2 [ ACC ] STREAM LISTENING 19386 975/master private/rewrite

unix 2 [ ACC ] STREAM LISTENING 19389 975/master private/bounce

unix 2 [ ACC ] STREAM LISTENING 19392 975/master private/defer

(省略N行。。。)

從整體上看,netstat的輸出結(jié)果可以分為兩個(gè)部分:

一個(gè)是Active Internet connections,稱為有源TCP連接,

其中"Recv-Q"和"Send-Q"指%0A的是接收隊(duì)列和發(fā)送隊(duì)列。

這些數(shù)字一般都應(yīng)該是0。如果不是則表示軟件包正在隊(duì)列中堆積。這種情況只能在非常少的情況見到。

另一個(gè)是Active UNIX domain sockets,稱為有源Unix域套接口(和網(wǎng)絡(luò)套接字一樣,但是只能用于本機(jī)通信,性能可以提高一倍)。

Proto顯示連接使用的協(xié)議,RefCnt表示連接到本套接口上的進(jìn)程號(hào),Types顯示套接口的類型,State顯示套接口當(dāng)前的狀態(tài),Path表示連接到套接口的其它進(jìn)程使用的路徑名。

netstat -an 查看系統(tǒng)的網(wǎng)絡(luò)連接狀況

[root@long01 ~]# netstat -an

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN

tcp 0 52 10.1.1.25:22 10.1.1.169:51625 ESTABLISHED

tcp6 0 0 :::22 :::* LISTEN

tcp6 0 0 ::1:25 :::* LISTEN

udp 0 0 127.0.0.1:323 0.0.0.0:*

udp6 0 0 ::1:323 :::*

Active UNIX domain sockets (servers and established)

Proto RefCnt Flags Type State I-Node Path

unix 2 [ ] DGRAM 1562 /run/systemd/notify

unix 2 [ ] DGRAM 1564 /run/systemd/cgroups-agent

unix 2 [ ] DGRAM 16672 /var/run/chrony/chronyd.sock

unix 2 [ ACC ] STREAM LISTENING 1582 /run/systemd/journal/stdout

(省略N行。。)

##關(guān)于STATE列各個(gè)狀態(tài)的一個(gè)簡(jiǎn)要說明:

LISTEN:偵聽并等待對(duì)端的TCP連接請(qǐng)求

SYN-SENT:發(fā)送SYN連接請(qǐng)求后,等待對(duì)端回復(fù)SYN請(qǐng)求

SYN-RECEIVED:收到來自對(duì)端的SYN請(qǐng)求,并回復(fù)SYN請(qǐng)求后,等待對(duì)端響應(yīng)SYN請(qǐng)求的ACK消息

ESTABLISHED:代表連接建立,雙方在這個(gè)狀態(tài)下進(jìn)行TCP數(shù)據(jù)交互

FIN-WAIT-1:發(fā)送FIN關(guān)閉連接請(qǐng)求后,等待對(duì)方響應(yīng)FIN的ACK消息或者對(duì)端的FIN關(guān)閉請(qǐng)求

FIN-WAIT-2:等待對(duì)方FIN關(guān)閉請(qǐng)求

CLOSE-WAIT:等待本地用戶(進(jìn)程)發(fā)送FIN關(guān)閉請(qǐng)求給對(duì)端

CLOSING:當(dāng)雙方同時(shí)發(fā)送FIN關(guān)閉請(qǐng)求時(shí),會(huì)進(jìn)入CLOSING狀態(tài),等待對(duì)端發(fā)送FIN報(bào)文的響應(yīng)ACK消息

LAST-ACK:收到對(duì)端FIN請(qǐng)求后,回復(fù)ACK及FIN并等待對(duì)方回復(fù)FIN的響應(yīng)ACK消息,此時(shí)進(jìn)入此狀態(tài)

TIME-WAIT:該狀態(tài)是為了確保對(duì)端收到了FIN請(qǐng)求的ACK響應(yīng),默認(rèn)會(huì)等待兩倍MSL時(shí)長(zhǎng)(MSL:Maximum Segment Lifetime,即報(bào)文最大生存時(shí)間,超過這個(gè)時(shí)間的報(bào)文會(huì)被丟棄)

netstat -lntp 只看出tcp的,不包含socket

[root@long01 ~]# netstat -lntp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 879/sshd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 975/master

tcp6 0 0 :::22 :::* LISTEN 879/sshd

tcp6 0 0 ::1:25 :::* LISTEN 975/master

ss和nestat異曲同工,只是顯示的信息不如netstat詳細(xì)。

[root@long01 ~]# ss -ta

State Recv-Q Send-Q Local Address:Port Peer Address:Port

LISTEN 0 128 *:ssh *:*

LISTEN 0 100 127.0.0.1:smtp *:*

ESTAB 0 52 10.1.1.25:ssh 10.1.1.169:51625

LISTEN 0 128 :::ssh :::*

LISTEN 0 100 ::1:smtp :::*

[root@long01 ~]# ss -atn ##-n選項(xiàng)可以將端口協(xié)議顯示為端口號(hào)。

State Recv-Q Send-Q Local Address:Port Peer Address:Port

LISTEN 0 128 *:22 *:*

LISTEN 0 100 127.0.0.1:25 *:*

ESTAB 0 52 10.1.1.25:22 10.1.1.169:51625

LISTEN 0 128 :::22 :::*

LISTEN 0 100 ::1:25 :::*

小技巧: netstat -an | awk ‘/^tcp/ {++sta[$NF]} END {for(key in sta) print key,”t”,sta[key]}’

這條命令可以統(tǒng)計(jì)出各個(gè)狀態(tài)下的tcp鏈接的數(shù)量。

[root@www ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"t",sta[key]}'

LISTEN 7

ESTABLISHED 2

10 linux下抓包

tcpdump

tcpdump命令是一款抓包工具,它可以打印所有經(jīng)過網(wǎng)絡(luò)接口的數(shù)據(jù)包的頭信息,也可以使用-w選項(xiàng)將數(shù)據(jù)包保存到文件中,方便以后分析。

tcpdump工具需要自行安裝:

[root@long01 ~]# yum install -y tcpdump

格式:tcpdump 選項(xiàng)

可用選項(xiàng):

-a:嘗試將網(wǎng)絡(luò)和廣播地址轉(zhuǎn)換成名稱;

-c<數(shù)據(jù)包數(shù)量>:收到指定的數(shù)據(jù)包數(shù)量后,就停止進(jìn)行傾倒操作;

-d:把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成可閱讀的格式,并傾倒到標(biāo)準(zhǔn)輸出;

-dd:把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成C語言的格式,并傾倒到標(biāo)準(zhǔn)輸出;

-ddd:把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成十進(jìn)制數(shù)字的格式,并傾倒到標(biāo)準(zhǔn)輸出;

-e:在每列傾倒資料上顯示連接層級(jí)的文件頭;

-f:用數(shù)字顯示網(wǎng)際網(wǎng)絡(luò)地址;

-F<表達(dá)文件>:指定內(nèi)含表達(dá)方式的文件;

-i<網(wǎng)絡(luò)界面>:使用指定的網(wǎng)絡(luò)截面送出數(shù)據(jù)包;

-l:使用標(biāo)準(zhǔn)輸出列的緩沖區(qū);

-n:不把主機(jī)的網(wǎng)絡(luò)地址轉(zhuǎn)換成名字;

-N:不列出域名;

-O:不將數(shù)據(jù)包編碼最佳化;

-p:不讓網(wǎng)絡(luò)界面進(jìn)入混雜模式;

-q :快速輸出,僅列出少數(shù)的傳輸協(xié)議信息;

-r<數(shù)據(jù)包文件>:從指定的文件讀取數(shù)據(jù)包數(shù)據(jù);

-s<數(shù)據(jù)包大小>:設(shè)置每個(gè)數(shù)據(jù)包的大小;

-S:用絕對(duì)而非相對(duì)數(shù)值列出TCP關(guān)聯(lián)數(shù);

-t:在每列傾倒資料上不顯示時(shí)間戳記;

-tt: 在每列傾倒資料上顯示未經(jīng)格式化的時(shí)間戳記;

-T<數(shù)據(jù)包類型>:強(qiáng)制將表達(dá)方式所指定的數(shù)據(jù)包轉(zhuǎn)譯成設(shè)置的數(shù)據(jù)包類型;

-v:詳細(xì)顯示指令執(zhí)行過程;

-vv:更詳細(xì)顯示指令執(zhí)行過程;

-x:用十六進(jìn)制字碼列出數(shù)據(jù)包資料;

-w<數(shù)據(jù)包文件>:把數(shù)據(jù)包數(shù)據(jù)寫入指定的文件。

日常用法:

直接執(zhí)行tcpdump將監(jiān)視第一個(gè)網(wǎng)絡(luò)接口上所有流過的數(shù)據(jù)包

tcpdump默認(rèn)監(jiān)控的是eth0端口,由于我這里的網(wǎng)卡名是ens33所以需要使用-i選項(xiàng)指定監(jiān)聽的網(wǎng)卡

[root@long01 ~]# tcpdump -nni ens33

22:16:36.031834 IP 10.1.1.25.22 > 10.1.1.169.51625: Flags [P.], seq 57044:57208, ack 1, win 274, length 164

22:16:36.077590 IP 10.1.1.169.51625 > 10.1.1.25.22: Flags [P.], seq 1:53, ack 57044, win 2053, length 52

(此處省略N行)。

^C

406 packets captured

406 packets received by filter

0 packets dropped by kernel

一條信息表示的依次是:時(shí)間,IP 源IP.端口 > 目標(biāo)IP.端口 數(shù)據(jù)包標(biāo)簽[],數(shù)據(jù)包類型、長(zhǎng)度等信息。

##-nn選項(xiàng)的作用是IP的端口都以數(shù)字的形式顯示。不使用-nn選項(xiàng)的話有些時(shí)候會(huì)顯示協(xié)議名等信息。

##tcpdump默認(rèn)會(huì)一直抓包,知道按Ctrl+C終止抓包。

監(jiān)視指定端口的數(shù)據(jù)包

[root@long01 ~]# tcpdump -nni ens33 port 80

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes

23:01:31.055177 IP 10.1.1.169.61714 > 183.61.83.225.80: Flags [S], seq 2508788990, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0

23:01:31.094872 IP 183.61.83.225.80 > 10.1.1.169.61714: Flags [S.], seq 3687868093, ack 2508788991, win 14600, options [mss 1420,nop,nop,sackOK,nop,wscale 9], length 0

監(jiān)視端口不是22和ip不是10.1.1.1的數(shù)據(jù)包:

[root@long01 ~]# tcpdump -nn -i ens33 not port 22 and not host 10.1.1.1

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes

23:05:51.871825 IP 10.1.1.169.61745 > 183.61.83.225.80: Flags [S], seq 2512730790, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0

23:05:51.910597 IP 183.61.83.225.80 > 10.1.1.169.61745: Flags [S.], seq 2995415503, ack 2512730791, win 14600, options [mss 1420,nop,nop,sackOK,nop,wscale 9], length 0

23:05:51.910602 IP 10.1.1.169.61745 > 183.61.83.225.80: Flags [.], ack 1, win 260, length 0

抓取100個(gè)數(shù)據(jù)包然后將數(shù)據(jù)包保存到data.cab 文件中

[root@long01 ~]# tcpdump -nni ens33 -c 100 -w data.cap

tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes

100 packets captured

100 packets received by filter

0 packets dropped by kernel

#這樣抓取到的數(shù)據(jù)包只能使用tcpdump -r選項(xiàng)來讀取, 直接cat的話就是亂碼。

[root@long01 ~]# tcpdump -r data.cap

reading from file data.cap, link-type EN10MB (Ethernet)

23:19:11.281776 IP long01.ssh > 10.1.1.169.61711: Flags [P.], seq 4277860660:4277860808, ack 3580160994, win 251, length 148

23:19:11.281872 IP 10.1.1.169.61711 > long01.ssh: Flags [.], ack 148, win 2050, length 0

23:19:13.883733 IP 10.1.1.169.51427 > 239.255.255.250.ssdp: UDP, length 137

(此處省略N行。。)

tshark

tshark是另外一個(gè)和tcpdump相似的工具:

tshark命令需要先安裝wireshark包才能使用。

[root@www ~]# yum install -y wireshark

案例:通過tshark抓取web服務(wù)的訪問日志。

[root@www ~]# tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

tshark: -R without -2 is deprecated. For single-pass filtering use -Y.

Running as user "root" and group "root". This could be dangerous.

Capturing on 'eth0'

"Jun 10, 2018 23:52:23.476398708 CST" 222.209.152.12 blog.deaoza.cn GET /

"Jun 10, 2018 23:52:26.012348996 CST" 222.209.152.12 blog.deaoza.cn GET /

"Jun 10, 2018 23:52:27.461011485 CST" 111.255.194.27 GET /

"Jun 10, 2018 23:52:35.721419187 CST" 222.209.152.12 blog.deaoza.cn GET /

^C4 packets captured

11 Linux網(wǎng)絡(luò)相關(guān)

ifconfig查看網(wǎng)卡ip

如果提示ifconfig命令不存在需要安裝net-tools才能使用:

[root@www ~]# yum install -y net-tools

[root@www ~]# ifconfig eth0 #帶網(wǎng)卡名可以查看指定網(wǎng)卡的信息,不指定網(wǎng)卡名會(huì)列出所有網(wǎng)卡的信息。

eth0: flags=4163 mtu 1500

inet 172.18.144.188 netmask 255.255.240.0 broadcast 172.18.159.255

ether 00:16:3e:02:ab:ef txqueuelen 1000 (Ethernet)

RX packets 658723 bytes 422204534 (402.6 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 502257 bytes 139548559 (133.0 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

關(guān)閉、啟動(dòng)網(wǎng)卡

(注:如果是遠(yuǎn)程連接的話,關(guān)閉和啟動(dòng)網(wǎng)卡的操作必須同時(shí)執(zhí)行,否則會(huì)導(dǎo)致無法再遠(yuǎn)程連接上。

ifdown eth0&&ifup eth0

[root@www ~]# ifdown eth0&&ifup eth0

Determining IP information for eth0… done.

[root@www ~]#

設(shè)定虛擬網(wǎng)卡

有時(shí)候需要給服務(wù)器增加一個(gè)IP。就可以通過添加虛擬網(wǎng)卡的方式增加一個(gè)IP

首先進(jìn)入網(wǎng)卡配置目錄

[root@long01 ~]# cd /etc/sysconfig/network-scripts/

[root@long01 network-scripts]# pwd

/etc/sysconfig/network-scripts

復(fù)制一份網(wǎng)卡配置文件

[root@long01 network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0

[root@long01 network-scripts]# ls -dl ./ifcfg-ens33*

-rw-r–r–. 1 root root 223 5月 13 20:32 ./ifcfg-ens33

-rw-r–r–. 1 root root 223 6月 11 00:09 ./ifcfg-ens33:0

修改ifcfg-ens33:0配置文件,

將NAME和DEVICE改為ens33:0,

IPADDR修改為要添加的IP:我這里為10.1.1.100,根據(jù)自己情況來修改。

再將DNS刪除

##檢查修改結(jié)果。

[root@long01 network-scripts]# grep -E "NAME|IPADDR|DNS|DEVICE" ifcfg-ens33:0

NAME=ens33:0

DEVICE=ens33:0

IPADDR=10.1.1.100

[root@long01 network-scripts]#

重啟ens33網(wǎng)卡后檢查ens33:0網(wǎng)卡是否添加成功

[root@long01 network-scripts]# ifdown ens33 && ifup ens33

成功斷開設(shè)備 'ens33'。

連接已成功激活(D-Bus 活動(dòng)路徑:/org/freedesktop/NetworkManager/ActiveConnection/3)

[root@long01 network-scripts]# ifconfig ens33:0

ens33:0: flags=4163 mtu 1500

inet 10.1.1.100 netmask 255.255.255.0 broadcast 10.1.1.255

ether 00:0c:29:d3:3e:41 txqueuelen 1000 (Ethernet)

從宿主機(jī)CMD檢查是否能ping通10.1.1.100

C:UsersLongGe>ping 10.1.1.100

正在 Ping 10.1.1.100 具有 32 字節(jié)的數(shù)據(jù):

來自 10.1.1.100 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=64

來自 10.1.1.100 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=64

來自 10.1.1.100 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=64

來自 10.1.1.100 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=64

10.1.1.100 的 Ping 統(tǒng)計(jì)信息:

數(shù)據(jù)包: 已發(fā)送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),

往返行程的估計(jì)時(shí)間(以毫秒為單位):

最短 = 0ms,最長(zhǎng) = 0ms,平均 = 0ms

查看網(wǎng)卡是否連接

mii-tool ens33 查看網(wǎng)卡是否連接

[root@long01 network-scripts]# mii-tool ens33

ens33: negotiated 1000baseT-FD flow-control, link ok #顯示link ok 就是已連接

ethtool ens33 也可以查看網(wǎng)卡是否連接,并顯示更為詳細(xì)的信息。

[root@long01 network-scripts]# ethtool ens33

Settings for ens33:

Supported ports: [ TP ]

Supported link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

1000baseT/Full

Supported pause frame use: No

Supports auto-negotiation: Yes

Advertised link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

1000baseT/Full

Advertised pause frame use: No

Advertised auto-negotiation: Yes

Speed: 1000Mb/s

Duplex: Full

Port: Twisted Pair

PHYAD: 0

Transceiver: internal

Auto-negotiation: on

MDI-X: off (auto)

Supports Wake-on: d

Wake-on: d

Current message level: 0x00000007 (7)

drv probe link

Link detected: yes

更改主機(jī)名

主機(jī)名配置文件:/etc/hostname,修改主機(jī)名可以通過修改這個(gè)文件來實(shí)現(xiàn)。

[root@long01 ~]# sed -i 's/.*/long001/g' /etc/hostname

[root@long01 ~]# cat /etc/hostname

long001

通過修改hostname文件修改主機(jī)名后需要重啟系統(tǒng)才會(huì)生效

[root@long001 ~]# hostname

long001

或者使用命令:hostnamectl set-hostname 來實(shí)現(xiàn)修改主機(jī)名。

[root@long001 ~]# hostnamectl set-hostname long0000

[root@long001 ~]# 登出

重新登錄后就會(huì)生效。

[root@long0000 ~]# hostname

long0000

DNS配置

DNS一般是在網(wǎng)卡配置文件里設(shè)置,

如果需要臨時(shí)添加一個(gè)DNS,可以在/etc/resolv.conf文件中添加,

[root@long0000 ~]# echo "nameserver 8.8.8.8" >> /etc/resolv.conf

[root@long0000 ~]# cat /etc/resolv.conf

# Generated by NetworkManager

nameserver 223.5.5.5

nameserver 61.139.2.69

nameserver 8.8.8.8

在CentOS7中,這個(gè)文件中添加的DNS會(huì)在重啟網(wǎng)卡的時(shí)候被覆蓋。

[root@long0000 ~]# ifdown ens33 && ifup ens33

成功斷開設(shè)備 'ens33'。

連接已成功激活(D-Bus 活動(dòng)路徑:/org/freedesktop/NetworkManager/ActiveConnection/2)

[root@long0000 ~]# cat /etc/resolv.conf

# Generated by NetworkManager

nameserver 223.5.5.5

nameserver 61.139.2.69

hosts文件

/etc/hosts文件與Windows中的hosts文件一樣,可以將一個(gè)多個(gè)域名指向一個(gè)IP,類似于DNS的功能。

[root@long0000 ~]# echo "10.1.1.169 www.test1.com" >> /etc/hosts

[root@long0000 ~]# ping www.test1.com

PING www.test1.com (10.1.1.169) 56(84) bytes of data.

64 bytes from www.test1.com (10.1.1.169): icmp_seq=1 ttl=64 time=0.173 ms

64 bytes from www.test1.com (10.1.1.169): icmp_seq=2 ttl=64 time=0.388 ms

64 bytes from www.test1.com (10.1.1.169): icmp_seq=3 ttl=64 time=0.175 ms

64 bytes from www.test1.com (10.1.1.169): icmp_seq=4 ttl=64 time=0.234 ms

^C

— www.test1.com ping statistics —

4 packets transmitted, 4 received, 0% packet loss, time 3000ms

rtt min/avg/max/mdev = 0.173/0.242/0.388/0.088 ms

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
亚洲精品在线视频| 亚洲精品无码日韩国产不卡?V | 久久久亚洲精品国产| 国产精品自在在线午夜福利| 中文字幕日韩在线| 国产精品熟女视频一区二区| 亚洲欧美综合精品成人导航| 久久精品无码午夜福利理论片| 久久精品中文字幕久久| 中文字字幕在线精品乱码app| heyzo加勒比高清国产精品| 亚洲欧美日韩国产精品一区| 国产伦精品一区二区| 国产麻豆剧果冻传媒免精品费网站| 久久精品国产亚洲AV未满十八| 91麻豆国产精品91久久久| 国产高清国产精品国产专区| 亚洲精品国产情侣av在线| 久久99精品久久久久子伦| 99精品国产在热久久无码| 无码日韩精品一区二区免费暖暖| 久久夜色精品国产亚洲| 日韩精品国产自在久久现线拍 | 7777精品伊人久久久大香线蕉| 国产精品久久久久久久久久影院| 中文字幕色婷婷在线精品中| 四虎精品视频在线永久免费观看| 久久精品国产久精国产果冻传媒 | 高清国产精品久久| 大伊香蕉在线精品视频人碰人| 日韩精品一线二线三线优势| 欧美黑人巨大精品videos| 精品日产一卡2卡三卡4卡自拍| 国产精品无码专区AV在线播放| 国产精品宾馆在线精品酒店| 日韩精品中文字幕无码专区| 国产成人精品福利网站人| 亚洲av日韩片在线观看| 日韩精品福利片午夜免费观着| 日韩免费观看视频| 亚洲一级Av无码毛片久久精品|