监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

时间:2023-03-09 02:56:34
监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

第7周第2次课(5月8日)

课程内容:

10.6 监控io性能
10.7 free命令
10.8 ps命令
10.9 查看网络状态
10.10 linux下抓包
扩展tcp三次握手四次挥手 监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍http://www.doc88.com/p-9913773324388.html
tshark几个用法:监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍http://www.aminglinux.com/bbs/thread-995-1-1.html
10.6 监控io性能
监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

[root@jimmylinux-002 ~]# iostat -x

查看磁盘io百分比,注意关注%util这一列,如果数字超过50%就说明有问题。

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

如果磁盘io很忙,读写很频繁,查看到底是那个进程频繁在读写,可以通过iotop命令查看,这个和top命令很像,都是动态显示。

默认没有iotop命令,需要先安装。

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

10.7 free命令

可以直接查看内存使用情况,在CentOS6和7显示是不同的,CentOS7里面会显示的更加直观。

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

第一行是一个说明

第二行是内存使用情况

第三行swap使用情况

[root@jimmylinux-002 ~]# free -h  可以更直观查看内存使用情况

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

正常情况下,已使用+空余=总大小,但是在Linux里面会把内存预先分配一部分出来给buff和cache。

数据流向:

①0000(磁盘)-->内存(cache)-->CPU  存放到硬盘的数据到CPU,中间需要经过内存保存下来,然后再到CPU,这个叫缓存cache。

②CPU(0000)-->内存(buff)-->硬盘     CPU计算好的数据存放到硬盘,中间需要经过内存保存下来,然后再到硬盘,这个叫缓冲buff。

由于数据流向不同,所以系统会把内存先预留一部分出来给buff和cache

total的公式=used+free+buff/cache

available包含free和buff/cache剩余部分

真正查看内存剩余,主要是看available,而不是直接查看free。

swap也需要关注,如果free剩余为0,说明内存不够了,或者内存泄漏,系统有bug,这个时候需要增加内存。

10.8 ps命令

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

[root@jimmylinux-002 ~]# ps aux

静态一次性把当前的所有进程使用情况列出来,ps和top显示结果很相像。

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

[root@jimmylinux-002 ~]# ps -elf  也可以使用这个命令查看,和ps aux基本上一样。

检查系统中有没有某一个进程在运行,可以通过管道符方式查看。

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

stat状态说明

D-->不能够中断的进程,如果有很多D状态的进程,那么就会直接影响到系统负载。

R-->某个时间段内在使用CPU的进程

S-->进程使用完CPU后,会暂停一会。

T-->暂停的进程

Z-->僵尸进程太多的话,可以kill掉。

<-->高优先级进程

N-->低优先级进程

L-->内存中被锁了内存分页

s-->主进程

|-->多线程进程,线程和进程的关系,线程是由一个大的进程组成,一个进程里面有多个线程。

+-->前台进程

10.9 查看网络状态

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

netstat  查看TCP/IP通信的一个状态

[root@jimmylinux-002 ~]# netstat -lnp  监听服务和端口

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

[root@jimmylinux-002 ~]# netstat -an  查看tcpip状态

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

查看netstat需要关注ESTABLISHED,如果数字很大说明系统很忙,数字表示有多少个客户端在和服务端保持连接、保持通信,通常这里数字在1000以内服务器都是能接受的。

[root@jimmylinux-002 ~]# ss -an  和netstat命令功能类似,唯一缺点不能够查看进程名字。

10.10 linux下抓包

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

tcpdump用法:

[root@jimmylinux-002 ~]# tcpdump -nn -i ens33  第一个n表示IP用数字显示,如果不加会显示主机名,第二个n表示端口号。

监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

tcpdump -nn port 80  指定端口抓包

tcpdump -nn not port 22 and host 192.168.0.100  根据判断条件进行抓包

tcpdump -nn -c 100 -w 1.cap  指定长度抓包并生成1.cap文件

tcpdump -r /tmp/1.cap  使用-r读取1.cap文件的内容(主要就是数据流向)

tshark和tcpdump一样都是可以抓包的工具,tshark可以查看指定网卡80端口的一个web服务访问的情况,类似web服务的访问日志。