iostat 在安装sysstat的时候会自动安装上这个命令。它和sar是同一个包php
[root@linux-128 ~]# yum install -y sysstat
[root@linux-128 ~]# iostat Linux 3.10.0-514.el7.x86_64 (linux-128) 2017年11月28日 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 1.19 0.00 1.98 0.33 0.00 96.50 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdb 1.65 10.21 0.00 1840 0 sda 31.35 1110.33 414.35 200192 74707 scd0 0.06 0.24 0.00 44 0 dm-0 0.33 2.53 0.00 456 0
iostat和sar命令差很少,后面接数字
iostat 1,1秒显示一次;sda bk_read/s kb_wrtn/s 读写速度前端
[root@linux-128 ~]# iostat 1 Linux 3.10.0-514.el7.x86_64 (linux-128) 2017年11月28日 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.57 0.00 0.98 0.16 0.00 98.29 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdb 0.80 4.94 0.00 1840 0 sda 15.23 537.50 200.94 200192 74839 scd0 0.03 0.12 0.00 44 0 dm-0 0.16 1.22 0.00 456 0 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.00 0.00 100.00 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdb 0.00 0.00 0.00 0 0 sda 0.00 0.00 0.00 0 0 scd0 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.00 0.00 100.00 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdb 0.00 0.00 0.00 0 0 sda 0.00 0.00 0.00 0 0 scd0 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 ^C
用sar -b 也能够查看速度些速度
mysql
[root@linux-128 ~]# iostat -x 1 Linux 3.10.0-514.el7.x86_64 (linux-128) 2017年11月28日 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.25 0.00 0.44 0.08 0.00 99.23 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.33 0.00 2.03 0.00 12.35 0.00 0.06 0.06 0.00 0.05 0.00 sda 0.01 0.29 5.22 1.21 226.67 83.51 96.48 0.05 7.59 2.14 31.06 0.95 0.61 scd0 0.00 0.00 0.01 0.00 0.05 0.00 8.00 0.00 1.27 1.27 0.00 1.27 0.00 dm-0 0.00 0.00 0.07 0.00 0.50 0.00 15.20 0.00 0.02 0.02 0.00 0.02 0.00 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.00 0.00 100.00 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.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda 0.00 0.00 0.00 1.98 0.00 1.49 1.50 0.00 0.50 0.00 0.50 0.50 0.10 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.00 0.00 100.00 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.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
若是发现磁盘io很忙,究竟是那个进程在读写呢,咱们用iotop来查看。linux
[root@linux-128 ~]# yum install -y iotop
[root@linux-128 ~]#iotopios
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 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-r~tem --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] 5 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H] 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] 11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/1] 12 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1] 13 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/1] 16 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/2] 17 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/2] 18 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/2] 531 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % auditd -n 20 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/2:0H] 21 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/3] 22 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/3] 23 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/3] 25 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/3:0H] 27 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khelper] 28 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 29 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 30 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd]
free 单位KBsql
[root@linux-128 ~]# free total used free shared buff/cache available Mem: 1875748 115996 1453008 8748 306744 1583468 Swap: 4194300 0 4194300
free -m 单位M后端
[root@linux-128 ~]# free -m total used free shared buff/cache available Mem: 1831 113 1418 8 299 1546 Swap: 4095 0 4095
free -h 单位G缓存
[root@linux-128 ~]# free -h total used free shared buff/cache available Mem: 1.8G 113M 1.4G 8.5M 299M 1.5G Swap: 4.0G 0B 4.0G
total 是整个内存大小 total=used+free+buff/cachebash
used 使用了多少内存服务器
free 剩余多少内存 正在剩余的内存是第二行的free
available 正则可用的内存 available=free+剩余buff/cache
[root@linux-128 ~]# top -bn1 top - 10:46:12 up 24 min, 1 user, load average: 0.00, 0.02, 0.05 Tasks: 108 total, 2 running, 106 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.2 us, 0.3 sy, 0.0 ni, 99.4 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1875748 total, 1452588 free, 116272 used, 306888 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 1583128 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2264 root 20 0 157584 2040 1492 R 5.9 0.1 0:00.03 top 1 root 20 0 125300 3760 2400 S 0.0 0.2 0:01.82 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.19 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.03 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 R 0.0 0.0 0:01.59 rcu_sched 10 root rt 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/0 11 root rt 0 0 0 0 S 0.0 0.0 0:00.13 watchdog/1 12 root rt 0 0 0 0 S 0.0 0.0 0:00.06 migration/1 13 root 20 0 0 0 0 S 0.0 0.0 0:00.18 ksoftirqd/1 16 root rt 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/2 17 root rt 0 0 0 0 S 0.0 0.0 0:00.02 migration/2 。。。
[root@linux-128 ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.2 125300 3760 ? Ss 10:21 0:01 /usr/lib/systemd/systemd --switched- root 2 0.0 0.0 0 0 ? S 10:21 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 10:21 0:00 [ksoftirqd/0] 。。。。 root 2142 0.0 0.0 0 0 ? S< 10:22 0:00 [kworker/3:1H] root 2143 0.0 0.1 116016 2664 pts/0 Ss 10:22 0:00 -bash root 2217 0.0 0.0 0 0 ? S< 10:24 0:00 [kworker/1:2H] root 2232 0.0 0.0 0 0 ? S< 10:34 0:00 [kworker/3:2H] root 2246 0.0 0.0 0 0 ? S 10:37 0:00 [kworker/0:0] root 2263 0.0 0.0 0 0 ? S 10:42 0:00 [kworker/0:2] root 2285 0.0 0.0 151068 1820 pts/0 R+ 10:47 0:00 ps aux
USER 用户
PID 进程标志数,/proc文件里面有跟pid相同名字的目录;进程的id,这个id颇有用,在linux中内核管理进程就得靠pid来识别和管理某一个程,好比我想终止某一个进程,则用 ‘kill 进程的pid 有时并不能杀掉,则须要加一个-9选项了 kill -9 进程pid
某个进程有问题,我想知道它是那个目录下的?(pid都在proc这个目录下,每个pid就是一个目录)
ls /proc/进程ID/ %cpu 占用cpu百分比
%mem 占用内存百分比
VSZ 虚拟内存大小
RSS 真正内存大小
TTY 从哪里启动,pts/0 当前终端
STAT 进程的状态 S 表示休眠sleep
s 主进程,父进程
< 高优先级,优先获得cpu的资源
N 低优先级
[root@linux-128 ~]# ps aux |grep -c kworker 21 [root@linux-128 ~]# ps aux |grep kworker root 5 0.0 0.0 0 0 ? S< 10:21 0:00 [kworker/0:0H] root 20 0.0 0.0 0 0 ? S< 10:21 0:00 [kworker/2:0H] root 36 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/2:1] root 37 0.0 0.0 0 0 ? S 10:22 0:01 [kworker/3:1] root 55 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/u128:1] root 57 0.1 0.0 0 0 ? S 10:22 0:02 [kworker/0:1] root 61 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/1:1] root 256 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/u128:2] root 290 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/1:2] root 294 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/2:3] root 295 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/3:2] root 452 0.0 0.0 0 0 ? S< 10:22 0:00 [kworker/0:1H] root 736 0.0 0.0 0 0 ? S< 10:22 0:00 [kworker/1:1H] root 2075 0.0 0.0 0 0 ? S< 10:22 0:00 [kworker/2:1H] root 2142 0.0 0.0 0 0 ? S< 10:22 0:00 [kworker/3:1H] root 2217 0.0 0.0 0 0 ? S< 10:24 0:00 [kworker/1:2H] root 2232 0.0 0.0 0 0 ? S< 10:34 0:00 [kworker/3:2H] root 2263 0.0 0.0 0 0 ? S 10:42 0:00 [kworker/0:2] root 2286 0.0 0.0 0 0 ? S< 10:48 0:00 [kworker/3:0H] root 2307 0.0 0.0 0 0 ? S 10:52 0:00 [kworker/0:0]
netstat 命令是用来查看网络链接状态,系统全部开放端口,路由表等信息
[root@linux-128 ~]# 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 947/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1216/master tcp6 0 0 :::22 :::* LISTEN 947/sshd tcp6 0 0 ::1:25 :::* LISTEN 1216/master udp 0 0 127.0.0.1:323 0.0.0.0:* 553/chronyd udp6 0 0 ::1:323 :::* 553/chronyd raw6 0 0 :::58 :::* 7 587/NetworkManager Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 18635 1216/master public/cleanup unix 2 [ ACC ] STREAM LISTENING 18638 1216/master public/qmgr unix 2 [ ACC ] STREAM LISTENING 18661 1216/master public/flush unix 2 [ ACC ] STREAM LISTENING 18676 1216/master public/showq unix 2 [ ACC ] STREAM LISTENING 10897 1/systemd /run/systemd/private unix 2 [ ACC ] SEQPACKET LISTENING 10926 1/systemd /run/udev/control unix 2 [ ACC ] STREAM LISTENING 9134 1/systemd /run/systemd/journal/stdout unix 2 [ ACC ] STREAM LISTENING 18642 1216/master private/tlsmgr unix 2 [ ACC ] STREAM LISTENING 18700 1216/master private/scache unix 2 [ ACC ] STREAM LISTENING 10949 1/systemd /run/lvm/lvmetad.socket unix 2 [ ACC ] STREAM LISTENING 10952 1/systemd /run/lvm/lvmpolld.socket unix 2 [ ACC ] STREAM LISTENING 18631 1216/master public/pickup unix 2 [ ACC ] STREAM LISTENING 18652 1216/master private/defer unix 2 [ ACC ] STREAM LISTENING 13291 1/systemd /var/run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 18655 1216/master private/trace unix 2 [ ACC ] STREAM LISTENING 18658 1216/master private/verify unix 2 [ ACC ] STREAM LISTENING 18664 1216/master private/proxymap unix 2 [ ACC ] STREAM LISTENING 18667 1216/master private/proxywrite unix 2 [ ACC ] STREAM LISTENING 18670 1216/master private/smtp unix 2 [ ACC ] STREAM LISTENING 18673 1216/master private/relay unix 2 [ ACC ] STREAM LISTENING 18679 1216/master private/error unix 2 [ ACC ] STREAM LISTENING 18682 1216/master private/retry unix 2 [ ACC ] STREAM LISTENING 18685 1216/master private/discard unix 2 [ ACC ] STREAM LISTENING 18688 1216/master private/local unix 2 [ ACC ] STREAM LISTENING 18691 1216/master private/virtual unix 2 [ ACC ] STREAM LISTENING 18694 1216/master private/lmtp unix 2 [ ACC ] STREAM LISTENING 18645 1216/master private/rewrite unix 2 [ ACC ] STREAM LISTENING 18649 1216/master private/bounce unix 2 [ ACC ] STREAM LISTENING 18697 1216/master private/anvil
查看监听的接口后,服务端到底跟哪些客户端进行通讯,以及客户端跟咱们服务端通讯过程到底十一个什么样的状态?
是链接进行数据传输仍是二者刚刚创建链接,仍是通讯完成后保持一个链接而正在等待:要用netstat -an 来查看
netstat -lnp 查看监听的端口
[root@linux-128 ~]# 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 947/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1216/master tcp6 0 0 :::22 :::* LISTEN 947/sshd tcp6 0 0 ::1:25 :::* LISTEN 1216/master
[root@linux-128 ~]# netstat -an tcp IP 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.88.128:22 192.168.88.1:54651 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 18635 public/cleanup unix 2 [ ACC ] STREAM LISTENING 18638 public/qmgr unix 2 [ ACC ] STREAM LISTENING 18661 public/flush unix 2 [ ACC ] STREAM LISTENING 18676 public/showq unix 2 [ ACC ] STREAM LISTENING 10897 /run/systemd/private unix 2 [ ] DGRAM 9115 /run/systemd/notify unix 2 [ ] DGRAM 9117 /run/systemd/cgroups-agent unix 2 [ ACC ] SEQPACKET LISTENING 10926 /run/udev/control unix 2 [ ACC ] STREAM LISTENING 9134 /run/systemd/journal/stdout unix 5 [ ] DGRAM 9137 /run/systemd/journal/socket unix 13 [ ] DGRAM 9139 /dev/log unix 2 [ ] DGRAM 10934 /run/systemd/shutdownd unix 2 [ ACC ] STREAM LISTENING 18642 private/tlsmgr 。。。。
.sock linux,unix 中特有的文件,能够通信
Path 状态
TIME_WAIT 传输完成 连接保持着
ESTABLTSHED 已经创建连接正在通信
FIN_WAIT2 状态详情,可参考【TCP/IP 三次握手】
netstat -an |grep 112.112.69.86:80 查看80端口 并发状态
netstat -an |grep 112.112.69.86:80 |grep -ic estab 统计连接(ESTABLTSHED)正在通信的连接总数 (前端 静态网页 2到3万 后端 有php mysql等 2000到3000 左右
[root@linux-128 ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' LISTEN 4 ESTABLISHED 1
若是没有这个工具须要安装一下;yum install -y tcpdump
[root@linux-128 ~]# yum install -y tcpdump
[root@linux-128 ~]# tcpdump -nn -i ens33
第一个n就是ip以数字的形式打印出来,若是不加就会显示主机名
第2n是端口
tcpdump -nn -i ens33 port 22
tcpdump -nn -i ens33 port 22 -c 6
[root@linux-128 ~]# tcpdump -nn -i ens33 port 22 -c 6 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 11:16:43.472559 IP 192.168.88.128.22 > 192.168.88.1.54651: Flags [P.], seq 3677319136:3677319348, ack 3881493294, win 468, length 212 11:16:43.473078 IP 192.168.88.1.54651 > 192.168.88.128.22: Flags [.], ack 212, win 16425, length 0 11:16:43.473799 IP 192.168.88.128.22 > 192.168.88.1.54651: Flags [P.], seq 212:504, ack 1, win 468, length 292 11:16:43.474308 IP 192.168.88.128.22 > 192.168.88.1.54651: Flags [P.], seq 504:668, ack 1, win 468, length 164 11:16:43.474661 IP 192.168.88.1.54651 > 192.168.88.128.22: Flags [.], ack 668, win 16311, length 0 11:16:43.474922 IP 192.168.88.128.22 > 192.168.88.1.54651: Flags [P.], seq 668:832, ack 1, win 468, length 164 6 packets captured 6 packets received by filter 0 packets dropped by kernel
[root@linux-128 ~]# tcpdump -nn -i ens33 port 22 -c 6 -w /tmp/1.cap tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes ^C3 packets captured 4 packets received by filter 0 packets dropped by kernel
[root@linux-128 ~]# tcpdump -r /tmp/1.cap reading from file /tmp/1.cap, link-type EN10MB (Ethernet) 11:18:02.971264 IP linux-128.ssh > 192.168.88.1.54651: Flags [P.], seq 3677321812:3677321960, ack 3881494042, win 468, length 148 11:18:02.971994 IP 192.168.88.1.54651 > linux-128.ssh: Flags [.], ack 148, win 16139, length 0 11:18:10.905692 IP 192.168.88.1.54651 > linux-128.ssh: Flags [P.], seq 1:53, ack 148, win 16139, length 52
若是没有须要先安装一下 yum install -y wireshark
[root@linux-128 ~]# yum install -y wireshark