-
iostat
sysstat 包里面包括 sar 和 iostat
[[email protected] ~]# iostat
Linux 3.10.0-693.2.2.el7.x86_64 (centos7.4) 2018年01月23日 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.41 0.00 0.27 0.01 0.00 99.31
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.25 2.04 2.25 1348209 1490248
iostat 1 一直循环显示磁盘信息
iostat -x 磁盘使用
[[email protected] ~]# iostat -x
Linux 3.10.0-693.2.2.el7.x86_64 (centos7.4) 2018年01月23日 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.41 0.00 0.27 0.01 0.00 99.31
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.07 0.04 0.21 2.04 2.25 34.40 0.00 11.22 15.07 10.48 0.46 0.01
Device: sda,sdb,vda 磁盘
rkB/s wkB/s 读写速度
一个重要的指标:%util
%util 表示等待磁盘io百分比
iotop 查看哪一个进程在读写磁盘
yum install -y iotop
iotop 磁盘使用
[[email protected] ~]# 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
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-root --system --deserialize 21
-
free
free查看内存使用情况
[[email protected] ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 530M 140M 14M 1.1G 1.1G
Swap: 0B 0B 0B
Mem 物理内存
swap交换分区
total :总共内存大小
used:使用的内存
free:剩余内存大小
buff:缓冲
cache : 缓存
buffer /cache区别:
从 磁盘读数据 ---> 内存 (cahche缓存)-----> cpu
cpu处理好的数据 ---> 内存 (buffer缓冲)----->磁盘
free -m / -g / -h
free -m (MB)
free -h(具体数据加上单位)
free -g(GB)
内存总大小公式:total = used + free + buff /cache
avaliable 包含free和buffer/cache剩余部分
-
ps
ps查看系统进程
(ps意思是报告系统进程快照)
用法:ps aux、ps -elf
ps aux 显示系统进程
[[email protected] ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 43388 3824 ? Ss 1月15 0:03 /usr/lib/systemd/systemd --switched
root 2 0.0 0.0 0 0 ? S 1月15 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 1月15 0:10 [ksoftirqd/0]
....
ps aux |grep nginx 列出当前系统进程中的nginx进程
[[email protected] ~]# ps aux |grep nginx
root 11881 0.0 0.0 112676 984 pts/0 R+ 17:55 0:00 grep --color=auto nginx
root 28467 0.0 0.1 122908 2268 ? Ss 1月20 0:00 nginx: master process nginx
nginx 28468 0.0 0.1 123296 3588 ? S 1月20 0:00 nginx: worker process
kill pid 杀死某个进程
PID 是进程号
查看进程从哪里启动的
ls /proc/进程号(每一个进程都有一个目录)/
ls /proc/505/
STAT部分说明
D不能中断的进程
R run状态的进程
S sleep状态的进程
T 暂停的进程
Z 僵尸进程
< 高优先级进程
N 低优先级进程
L 内存中被锁了内存分页
S 主进程
| 多线程进程
+ 前台进程
什么原因产生僵尸进程?
当父进程被意外中断,单独留下子进程,这些子进程被称为僵尸进程。
多线程进程:
进程是程序的一次运行,一个进程包含多个线程。
暂停进程
[[email protected] ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 0 141648 52672 1144972 0 0 2 2 41 30 0 0 99 0 0
0 0 0 141648 52672 1144972 0 0 0 0 176 345 0 1 99 0 0
0 0 0 141648 52672 1144972 0 0 0 8 171 336 1 0 99 0 0
0 0 0 141260 52672 1144972 0 0 0 0 168 352 0 0 100 0 0
0 0 0 141248 52672 1144972 0 0 0 0 162 368 0 0 100 0 0
^Z
[1]+ 已停止 vmstat 1
[[email protected] ~]# ps aux |grep vmstat
root 21417 0.0 0.0 148316 1376 pts/0 T 19:13 0:00 vmstat 1
-
netstat 查看网络状态
netstat -lnp 查看监听端口
netstat -ltnp 只查看tcp端口
netstat -ltunp 只查看tcp,udp端口
netstat -an 查看系统的网络连接状况
netstat -lntp 只看tcp的,不包含socket
ss -an 和netstat 异曲同工
技巧:
netstat -an |awk ‘/^tcp/{++sta[$NF]}END{for(key in sta) print key,"\t",sta[key]}‘
[[email protected] ~]# netstat -an |awk ‘/^tcp/{++sta[$NF]}END{for(key in sta) print key,"\t",sta[key]}‘
LISTEN 3
ESTABLISHED 3
-
tcpdump
安装yum install -y tcpdump
抓包工具:tcpdump
用法:tcpdump -nn
第一个n 表示用ip显示出来,如果不加n,就会显示主机名
监听指定网卡
tcpdump -nn -i eth0
[[email protected] ~]# tcpdump -nn -i eth0
监听指定端口
监听80 web 端口
[[email protected] ~]# tcpdump -nn port 80
监听网卡eth0 端口80
[[email protected] ~]# tcpdump -nn -i eth0 port 80
不监听22端口的
tcpdump -nn -i etho not port 22
指定某个IP的包,不包括22端口
tcpdump -nn -i eth0 not port 22 and host 192.168.1.1
抓100个包放到/tmp/1.cap里面
tcpdump -nn -i eth0 -c 100 -w /tmp/1.cap
[[email protected] ~]# tcpdump -nn -i eth0 -c 100 -w /tmp/1.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
100 packets captured
102 packets received by filter
0 packets dropped by kernel
读取抓取保存的包文件1.cap
[[email protected] ~]# tcpdump -r /tmp/1.cap
Wire shark抓包
[[email protected] ~]# yum install -y wireshark
wireshark里面的tshark命令
可以清楚的看到哪个IP来访问我的网站,访问我网站里面什么内容。
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"
原文地址:https://www.cnblogs.com/xiaobo-Linux/p/8338256.html