使用w檢視系統負載
w/uptime/top 檢視系統負載
[root@lsxlinux02 awk]# w //當負載大于cpu核數時,cpu使用率不會過大,不太損耗cpu
04:46:08 up 23:19, 2 users, load average: 0.00, 0.01, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root tty1 五05 11:03m 1.83s 1.83s -bash
root pts/0 03:44 0.00s 0.39s 0.01s w
系統時間 啟動多久 登入幾個使用者 系統負載:分别是1、5、15分鐘平均負載(機關時間内,使用活動的程序)
登入的使用者 登入的終端 登入的時間
[root@lsx-02 ~]# uptime
21:12:21 up 21:50, 3 users, load average: 0.00, 0.01, 0.05
load average: 0.00, 0.01, 0.05 負載多少算合适呢?
需要看有幾核邏輯cpu
cat /proc/cpuinfo 檢視cpu核數
[root@lsx-02 ~]# cat /proc/cpuinfo
processor : 0說明隻有一核邏輯cpu(n-1)當負載為一的時候最合理 一核cpu處理一個程序
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz
stepping : 7
microcode : 0x15
cpu MHz : 2591.639
10.2 vmstat指令
vmstat 監控系統狀态(檢視系統瓶頸)
用法 vmstat 1
關鍵的幾列:r,b,swpd,si,so,bi,bo,us,wa
當系統負載值偏高時,可以使用vmstat檢視是哪裡出了問題。
比如負載大于CPU核數了,cpu不夠用了。是什麼原因導緻?程序在幹什麼?都有哪些任務在使用cpu?這時更想檢視系統瓶頸在哪
[root@lsx-02 ~]# vmstat 1 3 一秒鐘顯示一次,隻要顯示3次
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 46844 95764 0 367396 0 1 14 13 23 24 1 0 99 0 0
0 0 46844 95740 0 367396 0 0 0 0 14 17 0 0 100 0 0
0 0 46844 95740 0 367396 0 0 0 0 18 17 0 0 100 0 0
參數 說明
r run 表示多少程序處于run狀态(隻要是在排隊等待就是run狀态)(如果該數值長期大于cpu數量,說明cpu資源不夠了)
b 被cpu其他的硬碟、網絡阻斷了,卡死狀态。block 等待資源的程序數(I/O)
swpd 當記憶體不夠的時候,會把記憶體一部分資料放在swap交換分區(變化頻繁,記憶體不夠)(swap會影響si、so)
si 有多少kb資料由記憶體交換區進入記憶體數量。參照物記憶體
so 由記憶體進入記憶體交換區數量
bi 和磁盤有關。從磁盤出來進入記憶體 讀的資料量有多少
bo 寫入到磁盤裡去(bi、bo這兩數字大在頻繁讀寫影響b)
us 使用者級别跑的資源應用占用cpu百分比 不超過100。(如果長期大于50,系統資源不夠)
sy 系統本身占用多少
id 空閑 (us + sy + id =100)
wa 等待cpu百分比,有多少程序等待cpu。列顯示了IO等待所占用的CPU時間的百分比。這裡wa的參考值為30%,如果wa超過30%,說明IO等待嚴重,這可能是磁盤大量随機通路造成的,也可能磁盤或者磁盤通路控制器的帶寬瓶頸造成的(主要是塊操作)。
10.3 top指令
Top動态的檢視和ps靜态
W檢視系統負載、vmstat檢視系統瓶頸(知道了,記憶體不夠、磁盤讀寫太高。能否知道具體是哪個程序呢?)、可以使用top檢視程序使用資源情況。
top檢視程序使用資源情況
[root@lsx-02 ~]# top
top - 21:53:01 up 22:30, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 214 total, 2 running, 212 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem: 615596 total, 520364 used, 95232 free, 0 buffers
KiB Swap: 2097148 total, 46844 used, 2050304 free. 367556 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11845 root 20 0 0 0 0 S 0.3 0.0 0:04.62 kworker/0:1
11914 root 20 0 123704 1676 1160 R 0.3 0.3 0:00.53 top
1 root 20 0 49900 3408 2048 S 0.0 0.6 0:05.38 systemd
task 共有多少任務 在跑的有幾個 幾個處于睡眠 多少停止 多少處于僵屍僵屍:主程序被意外終止了,子程序在那
Cpu百分比 us占用多少 sy占用多少 id空閑 多少wa st被偷走的cpu百分比
st 被偷走的cpu百分比(如果主機做了虛拟化、一些虛拟機會偷走一些cpu)
us 長時間處于60%以上對cpu沒什麼好處(和負載不同,負載可以很高,us可以很低。如果us很高,負載肯定很高。因為cpu很慢,其他程序就要等待,負載就更高)
RES 實體記憶體大小k
PID 程序式号。殺程序可以使用pid
COMMAND 程序名字
大寫的P 按cpu排序(按占用的大到小的順序)
大寫的M 按記憶體排序
數字1 所有cpu使用百分比的情況(平常看到的是平均值)顯示所有核cpu
q 退出
top -c 顯示詳細的程序資訊
top -bn1 靜态顯示所有程序
[root@lsx-02 ~]# top -bn1 适合寫腳本的時候使用
top - 22:17:36 up 22:55, 3 users, load average: 0.03, 0.03, 0.05
Tasks: 213 total, 2 running, 211 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.5 us, 0.2 sy, 0.0 ni, 99.0 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem: 615596 total, 520332 used, 95264 free, 0 buffers
KiB Swap: 2097148 total, 46832 used, 2050316 free. 367564 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11942 root 20 0 123712 1508 1064 R 10.9 0.2 0:00.52 top
11845 root 20 0 0 0 0 S 5.5 0.0 0:05.89 kworker/0:1
1 root 20 0 49900 3408 2048 S 0.0 0.6 0:05.43 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:04.55 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
10.4 sar指令
Sar是一個全面的分析系統狀态的工具。這裡主要檢視網卡的流量
yum install -y sysstat
[root@localhost ~]# yum install -y sysstat
[root@localhost ~]# sar //如果不加選項參數,預設調用保留的曆史檔案
無法打開 /var/log/sa/sa23: 沒有那個檔案或目錄(sar每十分鐘會抓一遍系統的狀态放到這個檔案裡)
sar -n DEV 1 4 //顯示網卡流量每秒鐘1次一共4次
[root@localhost ~]# sar -n DEV 1 4
Linux 3.10.0-123.el7.x86_64 (localhost.localdomain) 2017年11月23日 _x8664
22時27分14秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmc
22時27分15秒 eno16777728 0.99 0.99 0.06 0.20 0.00 0.00
22時27分15秒 lo 0.00 0.00 0.00 0.00 0.00 0.00
22時27分15秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmc
22時27分16秒 eno16777728 1.00 1.00 0.06 0.40 0.00 0.00
22時27分16秒 lo 0.00 0.00 0.00 0.00 0.00 0.00
rxpck/s 接收的資料包量。機關個。(受到攻擊就是别人向你的網卡發送大量資料包,量大網卡接收不了,導緻網絡堵塞,網站不能打開)。
rx 接收到的資料包
tx 發送出去的資料包
rxpck/s資料包多少算合适?
2000+正常 上萬不太正常。還需要借用抓包工具判斷是否被攻擊
如果rxpck大于4000或者rxkb大于5000000,可能被攻擊
平時也要看網卡的流量是否跑滿。100M帶寬換算成可以了解的速率12M每秒。也要看下txkB/s
rxkB/s 接收的資料量。機關kb
[root@lsx-02 ~]# sar
Linux 3.10.0-123.el7.x86_64 (lsx-02) 2017年09月16日 _x8664 (1 CPU)
22時50分01秒 CPU %user %nice %system %iowait %steal %idle
23時00分02秒 all 0.01 0.00 0.12 0.01 0.00 99.87
平均時間: all 0.01 0.00 0.12 0.01 0.00 99.87
[root@lsx-02 ~]# ls /var/log/sa/ 已經生成
sa16
sar -f /var/log/sa/saxx 曆史檔案
[root@lsx-02 ~]# sar -n DEV -f /var/log/sa/sa16 可以檢視曆史資料 最多保留一個月
22時50分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
23時00分02秒 eno16777736 0.12 0.11 0.01 0.01 0.00 0.00 0.00
23時00分02秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: eno16777736 0.12 0.11 0.01 0.01 0.00 0.00 0.00
平均時間: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sar17 要第二天才生成,是可以直接cat
sa(二進制檔案) 隻能通過sar –f 檢視
sar -q 系統負載(一般sar -q檢視曆史資料)
sar -q 1 3
Linux 3.10.0-123.el7.x86_64 (localhost.localdomain) 2017年11月23日 _x8664 (1 CPU)
22時55分23秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
22時55分24秒 1 224 0.00 0.01 0.05 0
22時55分25秒 1 224 0.00 0.01 0.05 0
22時55分26秒 1 224 0.00 0.01 0.05 0
平均時間: 1 224 0.00 0.01 0.05 0
sar -b 磁盤讀寫
sar -b 1 2
22時56分36秒 tps rtps wtps bread/s bwrtn/s
22時56分37秒 0.00 0.00 0.00 0.00 0.00
22時56分38秒 0.00 0.00 0.00 0.00 0.00
平均時間: 0.00 0.00 0.00 0.00 0.00
10.5 nload指令
nload指令
yum install -y epel-release
yum install -y nload
nload
監控網卡流量 分别是網卡名稱、ip、個數。按方向鍵切換。 目前值、平均值、最小值、最大值
買帶寬通常是出去的(out)。100M帶寬,MAX最大76M還沒跑滿但是也快滿了。
量很大(如100M)Curr=100M說明已經滿了
如果被攻擊進來的(Inconing)會很大
本文轉自 蝦米的春天 51CTO部落格,原文連結:http://blog.51cto.com/lsxme/2044961,如需轉載請自行聯系原作者