iostat命令:html
报告中央处理单元(CPU)的统计和输入/输出设备和分区统计。linux
经常使用选项:ios
iostat -xnginx
重点关注%util列,若是值很大磁盘压力很大性能不足。web
iotop命令:缓存
iotop命令是一个用来监视磁盘I/O使用情况的top类工具网络
iotop经常使用快捷键:多线程
1. 左右箭头:改变排序方式,默认是按IO排序。socket
2. r:改变排序顺序。tcp
3. o:只显示有IO输出的进程。
4. p:进程/线程的显示方式的切换。
5. a:显示累积使用量。
6. q:退出
• free 查看内存使用状况
• free -m / -g / -h
-m 以MB为单位
-g 以GB为单位
-h 以合适的单位显示
• buffer/cache区别
buffer:缓冲,cpu处理完的数据准备写入硬盘先占用的内存空间
cache:缓存,数据从磁盘读取将要被cpu处理时所占的内存空间
系统默认会把内存分配一部分空间给buffer/cache使用
• 公式:total=used+free+buff/cache
• avaliable包含free和buffer/cache剩余部分
• ps 查看系统进程
• 用法:ps aux、ps -elf
ps aux |grep nginx 查看nginx服务是否开启
user: 运行的用户
PID: 进程号
%CPU:占用cpu的百分比
%MEM:占用内存的百分比
VSZ: 虚拟内存使用了多少
RSS: 物理内存使用了多少
TTY: 从什么终端登陆
TIME:
COMMAND:
• STAT部分说明
• D 不能中断的进程
• R run状态的进程
• S sleep状态的进程
• T 暂停的进程
• Z 僵尸进程
• < 高优先级进程
• N 低优先级进程
• L 内存中被锁了内存分页
• s 主进程
• l 多线程进程
• + 前台进程
kill PID 结束进程号
ls -l /proc/PID/ 查看进程号是在哪里启动的
proc目录下有不少数字目录,此种目录就是对应的PID目录
• netstat 查看网络状态
• netstat -lnp 查看监听端口
• netstat -an 查看系统的网络链接情况
• netstat -lntp 只看出tcp的,不包含socket
• netstat -lnup 只看udp的,不包含socket
• ss -an 和nestat殊途同归
• 分享一个小技巧:
• netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
• 抓包工具tcpdump
• 用法:tcpdump -nn
第一个n表示ip用数字形式显示,若是不加显示主机名
第二个n表示端口用数字表示
• tcpdump -nn -i ens33
-i选项指定网卡名字
• tcpdump -nn port 80
port指定抓包的端口
• tcpdump -nn not port 22 and host 192.168.0.100
not port 不抓22端口的包
and在家一个条件
host 只要这个ip的包
• tcpdump -nn -c 100 -w 1.cap
-c 指定抓多少条包
-w 存到指定的文件,此文件不能直接用cat查看。
tcpdump -r 1.cap 查看保存文件里的抓包
• yum install -y wireshark
安装tshark命令
• 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"
查看80端口web访问的状况
tcp三次握手四次挥手:
http://www.doc88.com/p-9913773324388.html
tshark几个用法:
http://www.aminglinux.com/bbs/thread-995-1-1.html