0413日常运维(一、监控io性能,查看网络状态、抓包)w、vmstat、top、sar、nload、free、ps...

任务列表:
10.1 使用w查看系统负载
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令
10.6 监控io性能
10.7 free命令
10.8 ps命令
10.9 查看网络状态
10.10 linux下抓包
10.11 Linux网络相关
扩展
tcp三次握手四次挥手(重点) http://www.doc88.com/p-9913773324388.html
tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html

三次握手小例子 https://docs.qq.com/doc/DR3dISkdERGtac2VD

 

ip命令使用

1. 设置和删除IP

ip addr add 192.168.10.10/24 dev eth0

ip addr show eth0

ip addr del 192.168.10.10/24 dev eth0

 

2. 路由相关设置

ip route show

ip route add default via 192.168.10.1

ip route add 192.168.5.0/24 dev eth0

ip route del 192.168.10.1

 

另外用route命令来管理路由:

a、网络路由

route add -net 192.168.1.0/24 gw 172.16.1.106

b、主机路由

route add -host 192.168.1.110 gw 172.16.1.106

c、默认路由

route add default gw 172.16.1.106

route add -net 0.0.0.0 gw 172.16.1.106

d、删除路由

route del -host 192.168.1.110

route del -net 192.168.1.0/24

3. 显示网络统计数据

ip -s link

ip -s -s link ls eth0

 

3. 停止开启网卡

ip link set eth0 down

ip linke set eth0 up

 

更改网卡名字

ip link set ens37 name eth1

永久保存:https://blog.csdn.net/jyusun/article/details/71513086

 

 

 

6488a32354e944ea64fb92f0d28244c1254.jpg

w/uptime  查看系统负载

第一行显示系统时间、 up系统当前运行时间、目前登录用户(可以从下面看到,tty1终端登陆,pts/0远程登陆)

系统负载 load average: 0.08, 0.14, 0.11
这三个数字分别表示1分钟、5分钟、15分钟之内,系统的负载值分别是多少,单位时间段内,使用cpu的活动的进程有多少个
1分钟内使用cpu的活动的进程有多少个
负载值低时,代表系统目前负载较小,要看有几颗逻辑CPU,不是物理CPU。


FROM:表示从哪里来
L0GIN@:表示登陆时间 
IDLE:空闲了多长时间 
JCPU、PCPU:使用了CPU的时间 
WHAT:命令

w

fcdaed0987cbd7b657815a28ac382f8114d.jpg

 uptime     和w命令的第一行相同,用w即可

00bc15ec47c8834ac0675c6ec39d7639924.jpg

cat /proc/cpuinfo    查看CPU信息

查看processor的值,即代表本机的cpu核数,如果是0,代表有1颗,如果是1,代表有2颗,以此类推

查看physical id  数,代表本机物理cpu,如果是1,代表有2个物理cpu

如果cpu核数是8,即processor为7时,那么负载值不应大于8,都可以正常运行,5分钟平均负载和15分钟平均负载同理,如果负载大于8,那么表示cpu核数不够用了

09c51a10913c3543b7818fc1c342b68d3b5.jpg

lscpu  也可以查看cpu信息

5a369eed261a3bbede7d51cf1e53049ba00.jpg

vmstat命令

vmstat监控系统状态

6ec4f251bcaa1515d9dc31d1433cb9722b4.jpg

 vmstat 1  每一秒显示一次系统状态(动态显示)不需要时使用Ctrl+c停止

d630ced304415fc006ae0404e7767a25ee4.jpg

vmstat 1 5   每一秒显示一次系统状态,只显示5次,5次后自动终止

cfbed0228d46c33ad4acd8627dec5bce7bd.jpg

需要关注的点:
1、r=run  表示有多少进程处于运行状态
当进程有多个时,而CPU只有一个,那么就需要轮流使用,在一个时刻只允许一个进程在使用cpu运行
2、b=block  有多少个进程在等待
3、swpd 当内存不够时,系统可以拿出内存中的一部分数据临时放到swap交换分区里去。如果swpd值一直变换时,说明交换分区和内存在频繁的交换数据,代表内存不够了
4、si/so  与swpd存在关联
si(i代表in,单位是kb)有多少k的块数据,从swap进入到内存中 so(o代表out)有多少k的块数据,从内存中进入到swap 如果swpd在频繁变换时,这两个值肯定也会变动。
5、bi/bo   与磁盘存在关联
bi有多少k的数据从磁盘进入到内存中 ,读的数据量是多少,从磁盘里读
bo有多少k的数据从内存写入到磁盘,写的数据量是多少,从磁盘里写,写入到磁盘里去
这两个数值很大时,说明磁盘在频繁的读写。跟CPU和内存比,磁盘是很慢的,如果很频繁的读写数据会导致b列的增加。因为有很多进程 在等待磁盘。
6、us用户级别,数字不会超过100,百分比
表示用户的资源占用CPU的百分比,如果数字长时间大于50,说明系统肯定资源不够
7、sy系统本身的一些进程、服务,占用资源的百分比
8、id 空闲
us+sy+id=100%
9、wa=wait有多少进程在等待CPU的百分比

top命令

top查看进程使用资源情况
top 3秒显示一次,动态的

d941f6389dc674044f8e982cfc825e5bf02.jpg

第一行:和w命令第一行相同
第二行:有多少个任务,有多少个正在运行的进程,有多少个休眠的进程,有多少个停止的进程,有多少个僵尸进程zombie (主进程被意外终止的)
第三行:CPU百分比,平时需要多关注us,如果us很高,系统负载将会特别大。st表示被偷走的cpu,如果服务器做了虚拟化,下面有一些虚拟机,就会偷走一些cpu。
第四行:KiB Mem表示物理内存,需要关注。free剩余空间
第五行:KiB Swap表示交换分区 

下面默认按照%CPU排序,占用高的在上。
RES:物理内存大小,单位是字节。
PID:进程号,可以使用它杀死进程,kill+pid号杀死进程

想要按照内存占用%MEM大小排序,按大写的m(M)键 ,恢复按照%CPU排序,按大写p(P)键 
查看所有CPU使用率,按1,可以来回切换 
退出,按q

top -c  可以看到具体的进程命令,全局的路径,看的更详细
9b66298c9fad60f634c784db7acdcfff4f1.jpg

top -bn1  静态的显示,一次性把所有的信息全部输出出来,适合在写脚本时实用

1c5631b79831db7b29f011325655cc22c0a.jpg

sar命令

sar          Linux系统里的瑞士军刀

 

没有的话需要先安装:    yum install -y sysstat

安装完成后报错:无法打开 /var/log/sa/sa14: 没有那个文件或目录 

原因是 因为sar 命令不加具体的选项和参数,会默认调用系统里保留的一个历史文件/var/log/sa ,sar生成的历史文件存放目录,每10分钟抓取一遍系统状态,此时还没有生成,10分钟后会生成

b6065f62be52e311bc0849ce71354f7359d.jpg

sar -n DEV 1 10  查看网卡流量  1是每一秒钟显示一次,10是显示10次

用法和vmstat类似,后面跟1 10表示每隔1秒显示一次,显示10次

第一列:时间

第二列:IFACE网卡名字

第三列:rxpck/s接受到的数据包,单位个数,几千正常,上万就不正常

第四列:txpck/s发送出去的数据包

第五列:rxkB/s接收的数据量,单位KB

第六列:txkB/s发送的数据量

第七列:rxcmp/s不需要关注

第八列:txcmp/s不需要关注

第九列:rxmcst/s不需要关注

 

2a07be2f2c9ab82ea18936bade81865e70a.jpg

 

d86bbe64a4635e7695cddbd907af2285578.jpg

查看前一天的历史数据据 sar -n DEV -f /var/log/sa/sa14   sa14 是14号生成的,所以以14结尾

/var/log/sa里保留的文件最多为1个月,所以文件为sa01 -sa31

a21ff603514a8774d75aee74bfca7a90d10.jpg

sar -q  查看系统负载

sar -q -f /var/log/sa/sa14  可以查看14号的负载

5914294db0708c9b552ff0dcaf230d27729.jpg

sar -b  查看磁盘读写

0cfbedab351837940fa14f0389c916c7630.jpg

 

nload命令

没安装的话使用前需要先安装

yum install -y epel-release  如果epel-release安装了才可以继续安装nload

yum install -y nload  安装nload  

 

直接运行nload    动态的显示网卡实时速度的一个页面

第一行显示网卡名字、IP、网卡其中之一(1/2),可以按右方向键切换网卡,按q退出

0477cd2f8b2cb6bc634f888351583cec2f2.jpg

Incoming进来带宽

Outgoing出去带宽

curr当前值

Avg平均值

Min最小值

Max最大值

Ttl总和

 

bc9c5fb77262b39a60b194275423702d72c.jpg

 

监控io性能

1、 iostat

在安装sysstat包时,默认会安装iostat包,和sar在同一个包里

 

a3b132740809e7d225a450f0f3493300f91.jpg

和vmstat类似,没一秒执行一次,执行两次

2516edd760f982102191d931b99209e86e3.jpg

iostat -d  只查看Device 相关的信息,Device 需要着重看,看读写速度

1d4dcc06b89eccfb8f6932e189e0439d9da.jpg

iostat -x

重要指标:%util

表示磁盘的使用百分比,如果这个数字很大,比如长期超过90%,说明磁盘非常忙,读写肯定也会很大。如果读写不大,但该列值很大, 就说明硬盘有问题。
93058a650c3d1fa7fb5f9780c4f8b53d666.jpg

iotop  当磁盘io很忙,可以使用iotop查看,获得读写的进程是哪个,按IO使用率大小排序

yum install -y iotop   没安装的话先安装

和top很像,动态显示

SAWPIN  交换分区,交换到内存里去

ca12bbf4d5d7d0fa060f3e9f62f0424dd0a.jpg

 

 free命令

用来查看内存和swap使用情况

centos6和centos7显示的内容是不一样的,7更加直观,第一行是说明,第二行是内存使用情况,第三行是swap使用情况,我们主要关注第二行,内存使用情况。

c50e017c974eda71e038e567940a0104591.jpg

第一列:total内存总大小,单位KB

第二列:used内存已用大小,着重关注此列

第三列:free内存剩余大小

第四列:shared共享大小

第五列:buff(缓冲)/cache 缓存)

关于buffer和cache我们可以这样简单区分:

0000(磁盘)-->内存(cache)--> CPU  即,从磁盘读出来后先放到内存里,然后CPU再到内存里去取这部分数据,这里的内存叫做cache

cpu(00000)--> 内存(buff)--> 磁盘 即,cpu产生的数据首先写入到内存中,然后再慢慢写到磁盘里,这部分内存叫做buffer

正常情况下内存总大小=已有+剩余,这里是并不对等的,因为在Linux系统里,会有一部分空间给buff/cache

第六列:available 包含free和buffer/cache剩余部分,关注available,这个数字是真正剩余的物理内存大小

 

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

指定单位为M时,使用free -m

指定单位为G时,使用free -g或者free -h 在后面显示单位

 

076b7a3db5bf97e3a7ea8f4dfa1f17fac6c.jpg

 free -b   单位为b

0ab89f2e7c1e17826b5fb631fb230e2a3f5.jpg

ps命令

ps命令查看系统进程

b9f48549d8e802ea3ccbf49177337c7ef63.jpg

c4ceaf7fa4783b0f81c09c62961f5edafcf.jpg

ps aux 静态的,一次性把系统当前所有进程列出来

 

USER用户

PID进程ID,杀死进程时可以用到kill PID,有时候这样并不能终止进程,需要加-9选项,即kill -9 PID,但这样有点暴力,严重时会丟失数据,尽量不要使用。

STAT进程状态,分为以下几种

D 不能中断的进程 

R 正在运行,或在队列中的进程

S 处于休眠状态的进程

T 停止或被追踪的进程

Z 僵尸进程

W 进入内存交换(从内核2.6开始无效)

X 死掉的进程

< 高优先级进程

N 低优先级进程

L 内存中被锁了内存分页        

s  主进程,包含子进程

l 多线程进程

+ 前台进程

 

016ae7a37acc97d00a23616bf4fca686635.jpg

查看进程所在目录     Is -I /proc/进程的PID/

4d1b950a11fd718e5b3b2adf94ee7e0f9d9.jpg

ps aux |grep  进程名   检测进程有没有运行的方法

1c95b79de95a8b6d18b3c9db070832a04ff.jpg

 ps -elf  类似于ps aux,把系统所有进程全列出来

ps -eLf(查看线程)

0ecf66ed8a5760335398c5e029c9279d8e5.jpg
 

 查看网络状态    netstat  

 netstat -lnp   查看监听端口   需要关注上面的端口部分

ef8cce9a7fe407f9689b29ed7104776ebc8.jpg

netstat -an   查看tcp/ip 所有的连接状态

d694a1981fbf9e79a7057eedd09be4d37a9.jpg

 netstat -ltnp    只查看tcp的监听端口

netstat -ltunp   查看tcp和udp的监听端口

d582a5e6010cfc8189550c774df16fd5307.jpg

小技巧:查看所有状态数字

netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

9ecf8455f0cd8275d132aebd8826e2f2eaf.jpg

ESTABLISHED如果很大,说明系统很忙,我们可以理解为并发连接数,并发就是  同一时间有多少个客户端在连接

ss -an和netstat异曲同工,显示tcpip状态

2eb6e72227fd78e8c0a459543f484dfc0cc.jpg

ss -an |grep -i listen

查看listen的状态,不会显示进程名称

 netstat -lntp  netstat 显示

 

  d894e783ec62257fad8efd36121f1fea919.jpg

Linux下抓包

1、tcpdump工具 .

安装 yum install -y tcpdump

tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。不带任可选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包。

命令格式:

tcpdump [ -DenNqvX ] [ -c count ][ -F file ][ -i interface ] [ -r file ]

[ -s snaplen ] [ -w file ] [ expression ]

抓包选项:

-c:指定要抓取的包数量。注意,是最终要获取这么多个包。例如,指定"-c 10"将获取10个包,但可能已经处理了 100个包,只不过只有10个包是 满足条件的包。

-i interface:指定tcpdump需要监听的接口。若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口,要 抓取loopback接口使用tcpdump -i lo),一旦找到第一个符合条件的接口,搜寻马上结束。可以使用'any'关键字表示所有网络接口。

-n:对ip地址以数字方式显式,否则显示为主机名,也就是说-n选项不做主机名解析。

-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。

-N:不打印出host的域名部分。例如tcpdump将会打印’nic'而不是'nic.ddn.mil'。

-P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。

-s len:设置tcpdump的数据包抓取长度为len,如果不设置默认将会是65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截 断,若出现包截断, 输出行中会出现"[|proto]"的标志(proto实际会显示为协议名)。但是抓取len越长,包的处理时间越长,并且会减少tcpdump可缓存的 数据包的数量,从而会导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好。

 

输出选项:

-e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。

-q:快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。

-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。

-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。

-v:当分析和打印的时候,产生详细的输出。

-vv:产生比-v更详细的输出。

-vvv:产生比-vv更详细的输出。

其他功能性选项:

-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。

-F:从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其他表达式都将失效。

-w:将抓包数据输出到文件中而不是标准输出。可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载 入这些文件以进行分析和打印。

-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。

 

tcpdump -nn -i ens33

bf89e99c65ed1c1b3e6ff9fd709957eede1.jpg

 tcpdump -nn -i ens33 port 22  只要端口是22的包
0f8c027e8907f157c5da1809488fc3636f8.jpg

 tcpdump -nn -i ens33 not port 80   不要80端口的包

98d7003654ab0515da50dd62b9c6b9f9bc2.jpg

tcpdump -nn -i ens33 not port 80 and host 192.168.247.3   不要80端口并且host是192.168.247.3 的包

3009e973923714ed22e0c7b80443d90df10.jpg

tcpdump -nn -i ens33 -c 100  只抓取100个包

7449bafa4d59b4a100905c8e70f2c9c553e.jpg

tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap

要有数据产生才能抓包,可以再打开一个终端产生一些数据,例如执行top命令、vmstat命令,过一会就会抓取完。

 

f446f5a3d66f9f81fc67742e81c52509a7b.jpg

要查看1.cap信息,不能直接使用cat 查看        使用  tcpdump -r /tmp/1.cap  查看

b6b2eb459c927cbc4b4f44d8140b27eb0b4.jpg

2、tshark

yum install -y wireshark

使用   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访问情况,主要针对80端口

f7f21c3129d217fd9b405a75471a412c6bb.jpg

tshark -i ens33 -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"

a6746f4ba2f7cbecad8e243dd789afad303.jpg

Linux网络相关

fconfig查看网卡ip(yum install net-tools)

 

 ifconfig -a      当网卡down掉的时候,一般不会显示,加上-a会全部显示出来

ifup ens33/ifdown ens33    启用/关闭网卡

不要在Xshell里使用,在虚拟机里使用。一般在对网卡进行更改后使用,例如添加网关。也可以一起使用ifdown ens33 && ifup ens33,防止远程连接断掉

1c29ad22df915d63f2e868f350260e94e85.jpg

设置虚拟网卡

首先在网卡配置文件目录里复制一个ens33的配置文件

 cd /etc/sysconfig/network-scripts/

 cp ifcfg-ens33 ifcfg-ens33\:0    \ 脱义冒号

对新做的网卡编辑

060cc8445132f62691a2cdab96307625de2.jpg

f57ac944251ae42901a86942831ec97bd42.jpg

ifdown ens33 && ifup ens33  在运行此命令重新连接下网卡

ifconfig 查看

可以在windows上Ping 192.168.247.155是否通

9fac7a81288781810a82463c2f455bd6ba3.jpg

mii-tool ens33 查看网卡是否连接

ethtool ens33 也可以查看网卡是否连接

e857f1fbf2191db77c47bf5f58c2d0bc062.jpg

更改主机名 hostnamectl set-hostname  001

centos6不支持此命令,想要生效需要退出重新登录一下

hostname  可以查看主机名

2d591eadd29d7a545b67281e018d6859629.jpg

查看主机名配置文件         cat /etc/hostname

361f26752866df17db93fa646d179fe58c2.jpg

DNS配置文件/etc/resolv.conf

这是由网卡配置文件定义的,也可以临时编辑resolv.conf文件设置dns2,但是重启后依然会被网卡里的配置文件覆盖

a55a21d9e9c433b942d4d6d57fbb964c5aa.jpg

/etc/hosts文件

WindowsLinux下都有此文件,后续讲Iamp时去访问自定义域名时,就会用到此文件。假设我们ping—个域名,会解析出他的公网IP, 但是如果我们在hosts文件里配置此域名,就会解析到我们配置的IP

1f70f9ecbef9958637fa4e616d1ea15169a.jpg

正常ping www.qq.com

bda054d3f87f9a02b013ce33dfabf00d83c.jpg

编辑hosts文件

0e989955a9c4f9ee79ebc879e83ffe12fbf.jpg

重新ping  ,仅在本机生效

0939909b15f2165074641214dc557c4d682.jpg

注意: 一个ip后面可以跟多个域名,但是同一个域名只能有一个ip生效

d6aee8c1f26c361d5da92803452caf894db.jpg

如果前面同一个域名指定了两个ip,会以后面的ip为主

1e39e3b3fa994900dc72284cc879fa52cfc.jpg

 

手动增加swap

模拟一个G的磁盘空间:

dd if=/dev/zero of=/bigfile bs=1M count=1000

dd(对磁盘进行操作的工具),if(从哪里来),of(目标的文件或磁盘,此处写入到跟目录下,叫bigfile),bs(决定文件大小)=1M(即每个块为1M),count=1000(共有1000个块),也可以写成bs=100M,count=10

7d2c09a9166decfa1061c4b62fb9b9153a4.jpg

 mkswap /bigfile   格式化成swap格式

chmod 600 /bigfile  更改权限

61c932e611e68bcfa29461f468110b7859d.jpg

swapon /bigfile  挂载

之前的swap大小

7eb6fe480ba8bb0959b1c87759dd24ccb04.jpg

挂载后的大小

a26dcc86fc179e42af60a48f986e515ee56.jpg

转载于:https://my.oschina.net/u/4093217/blog/3036056

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值