监控磁盘使用
命令:iostat
查看磁盘的使用情况,着重看%util这项,值越大表示磁盘越忙。
[root@shuai-01 ~]# iostat -x
Linux 3.10.0-514.el7.x86_64 (shuai-01) 2017年11月28日 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.90 0.00 2.18 1.66 0.00 94.26
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 0.00 0.31 0.00 1.92 0.00 12.33 0.00 13.14 13.14 0.00 11.42 0.36
sda 0.00 0.06 6.46 2.69 204.21 68.73 59.63 0.14 14.94 13.02 19.56 4.59 4.20
dm-0 0.00 0.00 0.06 0.00 0.47 0.00 15.20 0.00 8.27 8.27 0.00 8.18 0.05
查看io最高的进程iotop
安装iotop包
[root@shuai-01 ~]# yum install -y iotop
free查看内存使用情况
命令:free
命令格式:free [选项]
选项:
-m 用M显示单位
-g 用G做单位
-h 用合适的做单位
[root@shuai-01 ~]# free -h
total used free shared buff/cache available
Mem: 976M 119M 546M 6.7M 310M 673M
Swap: 2.0G 0B 2.0G
计算机组成原理中:磁盘和CPU的读取速度差太多了。中间需要一个高速存储器来平衡一下。
total = used + free + cache + buffer
ps命令查看进程
查看linux系统有哪些进程在运行,就像Windows的任务管理器一样
命令:ps
静态显示全部进程
[root@shuai-01 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.6 128104 6708 ? Ss 08:38 0:05 /usr/lib/syst
root 2 0.0 0.0 0 0 ? S 08:38 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 08:38 0:01 [ksoftirqd/0]
root 6 0.0 0.0 0 0 ? S 08:38 0:01 [kworker/u256
root 7 0.0 0.0 0 0 ? S 08:38 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 08:38 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? R 08:38 0:01 [rcu_sched]
root 10 0.0 0.0 0 0 ? S 08:38 0:00 [watchdog/0]
root 12 0.0 0.0 0 0 ? S< 08:38 0:00 [khelper]
root 13 0.0 0.0 0 0 ? S 08:38 0:00 [kdevtmpfs]
root 14 0.0 0.0 0 0 ? S< 08:38 0:00 [netns]
root 15 0.0 0.0 0 0 ? S 08:38 0:00 [khungtaskd]
root 16 0.0 0.0 0 0 ? S< 08:38 0:00 [writeback]
root 17 0.0 0.0 0 0 ? S< 08:38 0:00 [kintegrityd]
root 18 0.0 0.0 0 0 ? S< 08:38 0:00 [bioset]
root 19 0.0 0.0 0 0 ? S< 08:38 0:00 [kblockd]
root 20 0.0 0.0 0 0 ? S< 08:38 0:00 [md]
- PID 表示进程ID,可以靠PID来杀死进程(kill -9 pid)
- VSZ 虚拟内存
- RSS 物理内存
-
STAT 表示进程的状态
- D 表示不能中断的进程(很占用CPU的)
- R 正在运行中的进程
- S 表示已经中断的进程(sleep)
- T 表示已近停止或者暂停的进程(Ctrl + z 停止的进程)
- Z 表示僵尸进程
- < 表示优先级高的进程
- N 表示优先级低的进程
- s 表示主进程
- + 表示前台运行的进程
查看网络状态
netstat 命令用来打印网络情况,系统开放端口,路由表等信息。
打印当前系统开启那些端口
[root@shuai-01 ~]# 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 1368/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1974/master
tcp6 0 0 :::22 :::* LISTEN 1368/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1974/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 541/chronyd
udp6 0 0 ::1:323 :::* 541/chronyd
raw6 0 0 :::58 :::* 7 588/NetworkManager
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 12581 1/systemd /run/lvm/lvmetad.socket
unix 2 [ ACC ] STREAM LISTENING 19828 1974/master public/pickup
unix 2 [ ACC ] STREAM LISTENING 19834 1974/master public/cleanup
unix 2 [ ACC ] STREAM LISTENING 19837 1974/master
打印网络的连接状况
[root@shuai-01 ~]# 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 192.168.176.135:22 192.168.176.1:50396 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 :::*
raw6 0 0 :::58 :::* 7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 12581 /run/lvm/lvmetad.socket
unix 2 [ ACC ] STREAM LISTENING 19828 public/pickup
unix 2 [ ACC ] STREAM LISTENING 19834 public/cleanup
unix 2 [ ACC ] STREAM LISTENING 19837 public/qmgr
unix 2 [ ACC ] STREAM LISTENING 19859 public/flush
TCP/IP三次握手四次挥手:
https://my.oschina.net/u/3497124/blog/1341334
查看tcp连接状态
[root@shuai-01 ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
LISTEN 4
ESTABLISHED 1
tcpdump 抓包
命令:tcpdump
安装
[root@shuai-01 ~]# yum install -y tcpdump
抓网卡的包:
[root@shuai-01 ~]# tcpdump -nn -i ens33
22:33:15.760001 IP 192.168.176.135.22 > 192.168.176.1.50396: Flags [P.], seq 280912:281188, ack 53, win 308, length 276
22:33:15.760297 IP 192.168.176.1.50396 > 192.168.176.135.22: Flags [P.], seq 53:105, ack 280912, win 158, length 52
第三列第四列:IP+port 连接ip +port
抓端口的包:
[root@shuai-01 ~]# tcpdump -nn port 80
抓那个地址的不是22端口的包:
[root@shuai-01 ~]# tcpdump -nn not port 22 and host 192.168.172.135
抓100个包保存在那个文件:
[root@shuai-01 ~]# tcpdump -nn -c 100 -w /tmp/1.cap
wireshark工具抓包
安装wireshake
yum install -y wireshake
用法:
[root@shuai-01 ~]# tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.sre" -e "http.host" -e "http.request.method" -e "http.request.uri"
实际中,抓包分析:
主要是看源ip,源port,目标ip,目标port,还有协议之类的。再深入的就得借助图形化的抓包工具去分析了。