监控io性能
[root@aminglinux-02 ~]# iostat -x
Linux 3.10.0-514.el7.x86_64 (aminglinux-02) 2017年07月23日 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.75 0.00 2.49 4.83 0.00 90.93
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.07 11.48 1.98 355.95 17.50 55.48 0.22 16.20 18.62 2.21 6.38 8.59
sdb 0.00 0.00 0.88 0.00 5.56 0.00 12.64 0.00 3.23 3.23 0.00 2.30 0.20
dm-0 0.00 0.00 0.18 0.00 1.37 0.00 15.20 0.00 13.22 13.22 0.00 9.70 0.17
- 主要关注%util,cpu等待磁盘读写的百分比,这个数值随着硬盘的读写增大而增大,如果不成正比或特别高就是磁盘有问题了
- iotop命令,yum install -y iotop安装,查看进程的磁盘io使用情况
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-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]
4 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0]
6 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u128: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]
523 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd-logind
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]
free命令
[root@aminglinux-02 ~]# free -h
total used free shared buff/cache available
Mem: 984M 114M 614M 6.7M 256M 698M
Swap: 2.0G 0B 2.0G
- buff/cache缓冲和缓存,cpu到磁盘需要的内存叫buff,反过来的内存叫cache。
- total=userd+free+buff/cache。shared共享的
- avaliable包含free和buff/cache剩余部分。
ps查看系统进程
- 用法:ps aux 所有的进程都列出来或者ps -elf
[root@aminglinux-02 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 41128 2512 ? Ss Apr19 0:10 /usr/lib/systemd/systemd --switched-root --
root 2 0.0 0.0 0 0 ? S Apr19 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Apr19 0:03 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Apr19 0:00 [kworker/0:0H]
- PID进程的ID需要杀死进程时使用,也可以使用ls -l /proc/505查看进程的目录排除可疑进程
- VSZ虚拟内存
- RSS物理内存
- STAT部分状态说明
- D不能中断的进程,负载高但cpu使用百分比小
- R run状态的进程
- S sleep状态的进程,等待运行
- T 暂停的进程,这种不会耗费cpu多少资源
- Z 僵尸进程
- < 高优先级进程
- N 低优先级进程
- L内存中被锁了内存分页
- s 主进程,也是父进程
- l多线程进程,一个进程里面有多个线程
- +前台进程
查看网络状态
- netstat -lnp查看监听的端口,用法:netstat -lnp |grep nginx,
- netstat -an 查看系统的网络连接状况,主要是tcp的连接状态,三次握手
- netstat -lntp只看tcp的,不包含socket(进程之间通信)
- ss -an和netstat异曲同工
- netstat -an |awk '/^tcp/{++sta[$NF]} END {for(key in sta)print key,"\t",sta[key]}'查看tcp的所有状态数量,高并发的依据,主要查看ESTABLISHED状态的数量,正在连接的客户端
[root@aminglinux-02 ~]# netstat -an |awk '/^tcp/{++sta[$NF]} END {for(key in sta)print key,"\t",sta[key]}'
LISTEN 4
ESTABLISHED 1
Linux下抓包
- yum install -y tcpdump安装抓包工具
- tcpdump -nn -i ens33,nn显示ip地址和端口,不加显示主机名
- 一般都是tcp的包,DDoS--udpflood,udp的洪水攻击,只能接入专业的设备和服务
- tcpdump -nn port 80 查看80端口的包
- tcpdump -nn not port 22 and host 192.168.0.100 查看这个host不包含22端口的所有包
- tcpdump -nn -c 100 -w /tmp/1.cap 抓取100个包保存到/tmp/1.cap
- tcpdump -r /tmp/1.cap 查看抓包文件
- 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" 抓包查看那个ip访问网站的那个链接。
- yum install -y wireshark安装tshark。
扩展