监控io性能 free命令 ps命令 查看网络状态 linux下抓包

监控io性能:

iostat命令:

报告中央处理单元(CPU)的统计和输入/输出设备和分区统计。

常用选项:

iostat -x

重点关注%util列,如果值很大磁盘压力很大性能不足。

iotop命令:

iotop命令是一个用来监视磁盘I/O使用状况的top类工具

iotop常用快捷键:

1. 左右箭头:改变排序方式,默认是按IO排序。

2. r:改变排序顺序。

3. o:只显示有IO输出的进程。

4. p:进程/线程的显示方式的切换。

5. a:显示累积使用量。

6. q:退出

free命令:

• 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 查看系统进程

• 用法: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]}'

linux下抓包:

• 抓包工具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

猜你喜欢

转载自my.oschina.net/u/3803404/blog/1807916