監控io性能,free命令,ps命令,查看網絡狀態,linux下抓包
[root@localhost ~]# iostat Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 2017年09月12日 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.11 0.00 0.23 0.01 0.00 99.66 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 1.61 19.24 1.76 124103 11353 sdb 0.07 0.53 0.00 3407 4 scd0 0.00 0.01 0.00 44 0 dm-0 0.01 0.07 0.00 456 0 [root@localhost ~]#
-
iostat -x
[root@localhost ~]# iostat -x Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 2017年09月12日 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.10 0.00 0.23 0.01 0.00 99.66 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.02 1.11 0.42 18.29 1.68 26.04 0.00 0.37 0.34 0.44 0.27 0.04 sdb 0.00 0.00 0.07 0.00 0.50 0.00 14.30 0.00 0.09 0.09 1.00 0.08 0.00 scd0 0.00 0.00 0.00 0.00 0.01 0.00 8.00 0.00 0.45 0.45 0.00 0.45 0.00 dm-0 0.00 0.00 0.01 0.00 0.07 0.00 15.20 0.00 0.08 0.08 0.00 0.07 0.00 [root@localhost ~]#
著重看%util列,如果數值很大,說明讀寫很忙。如果讀寫不大,說明硬盤有問題。
-
iotop 來查看占用IO高的進程
沒有安裝過:yum install -y iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 2434 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.03 % [kworker/0:2] 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] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 6 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u256:0] 7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_bh] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched] 10 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 12 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khelper] 13 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 14 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 15 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd] 16 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [writeback] 17 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kintegrityd] 18 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bioset] 19 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kblockd] 20 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [md] 533 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % vmtoolsd 534 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd-logind 26 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kswapd0] 27 be/5 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksmd] 28 be/7 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khugepaged] 29 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [fsnotify_mark] 30 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [crypto] 545 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % agetty --noclear tty1 linux 548 be/4 polkitd 0.00 B/s 0.00 B/s 0.00 % 0.00 % polkitd --no-debug [gmain] 38 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthrotld] 39 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u256:1] 40 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kmpath_rdacd] 41 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kpsmoused]
free命令
直接查看內存使用的命令
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 999936 121540 581256 6844 297140 693540
Swap: 2097148 0 2097148
[root@localhost ~]#
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 976M 118M 567M 6.7M 290M 677M
Swap: 2.0G 0B 2.0G
[root@localhost ~]#
buff/cache緩沖/緩存,緩存,是cpu向硬盤讀取數據的時候,緩存(cache)在內存裏。緩沖是:cpu處理完的數據寫入磁盤,緩沖(buff)在內存裏面。
公式:total=used + free + buff/cache
avaliable包含free和buffer/cache剩余部分。
ps命令
-
ps aux
靜態顯示所有的進程
-
ps aux |grep nginx
查看某一個進程
[root@localhost ~]# ps aux |grep nginx
root 2757 0.0 0.0 112664 968 pts/0 R+ 20:57 0:00 grep --color=auto nginx
[root@localhost ~]#
PID :進程ID,用於殺掉一個進程,kill 2757
查看一個進程:ls -l /proc/505/
-
ps aux 後關註STAT列
D不能中斷的進程
R run狀態的進程
S sleep狀態的進程
T 暫停的進程
Z 僵屍進程
< 高優先級進程
N 低優先級進程
L 內存中被鎖了內存分頁
s 主進程
l 多線程進程
+ 前臺進程
-
ps -elf
和ps aux 差不多。
netstat 查看網絡狀態
-
netstat -lnp 查看監聽端口
[root@localhost ~]# 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 887/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1494/master
tcp6 0 0 :::22 :::* LISTEN 887/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1494/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 542/chronyd
udp6 0 0 ::1:323 :::* 542/chronyd
raw6 0 0 :::58 :::* 7 581/NetworkManager
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 12552 1/systemd /run/systemd/private
unix 2 [ ACC ] STREAM LISTENING 12561 1/systemd /run/lvm/lvmpolld.socket
unix 2 [ ACC ] STREAM LISTENING 19948 1494/master private/bounce
unix 2 [ ACC ] STREAM LISTENING 19951 1494/master private/defer
-
netstat -an
-
netstat -an | awk ‘/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}‘
[root@localhost ~]# netstat -an | awk ‘/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}‘ LISTEN 4 ESTABLISHED 1
主要看ESTABLISHED,這個數字大,說明系統忙。網站並發連接數,就是同一時刻有多少個客戶端連著。
linux 下抓包
-
抓包工具tcpdump
沒有這個命令需要安裝一下:yum install -y tcpdump
指定網卡名字 tcpdump -nn -i ens33
運行完上面命令後會出現密密麻麻的一堆字符串,在按Ctrl+c 之前,這些字符串一直在刷屏,刷屏越快說明網卡上的數據包越多。我們只需要關註第3列和第4列,它們顯示的信息為哪一個ip+端口號在連接哪一個ip+端口號。
-nn選項的作用是讓第3列和第4列顯示成"ip+端口號"的形式,如果不加-nn選項則顯示“主機名+服務名稱” -i 選項後面跟設備名稱。
tcpdump -nn -i ens33 port 22 指定只抓22端口的包
tcpdump -nn -i ens33 tcp and not port 22 指定抓tcp的包,但是不要22端口的
tcpdump -nn -i ens33 port 22 and port 53 只抓22和53 端口的包。
tcpdump -nn -i ens33 -c 100 只抓100條
tcpdump -nn -i ens33 -c 100 -w /tmp/1.cap 抓100條然後保存到/tmp/1.cap
tcpdump -r /tmp/1.cap 查看這個抓取的數據包。
-
抓包工具 wireshark
yum install -y wireshark
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"
監控io性能,free命令,ps命令,查看網絡狀態,linux下抓包