10.6 监控io性能

10.7 free命令

10.8 ps命令

10.9 查看网络状态

10.10 linux下抓包

一、iostat与iotop命令

iostat命令与iotop,命令能够看出系统磁盘的工作情况,及时发现磁盘问题,这两个工具不是系统自带的,分别需要yum安装

其中iostat命令与前一篇博客中提到的sar命令在同一个(sysstat)包里,如果能使用sar命令就能使用iostat命令。

安装命令

yum install epel 先安装epel扩展源

yum install sysstat iotop

(一)iostat命令,看util 如果数值过高,说明磁盘很忙或者出现问题。

e76cbcfa8c02a0f411feb2ccfc50156d.png

查看磁盘的使用情况

iostat -x

1db6dee19b9f79427d7db450dcc61294.png

注意标红处数值,系统中的解释如下,反正这个数值很高系统就反应很慢了,要么换硬盘,要么查出是什么导致磁盘使用量飙升。

%util Percentage of elapsed time during which I/O requests were issued to the device (bandwidth utilization for the device). Device saturation occurs when this value is close to 100%.

(二)iotop,产看下哪一个进程占用进程较多

e07f18c6a0b4ee68fb22bb43e174efb0.png

在具体服务器上看的更明显,磁盘读写最多的在第一排。

二、free命令

free命令用于查看内存的使用量。一般用free -h命令,看得要舒服点^^

c689c9bd8b4f856836e7c287e5b5f99d.png

其中

total=used+free+shared + buff/cache

available=free+shared + buff/cache

total=used+available

cache指的是磁盘到cpu途中经过的内存区

buff指的是cpu到磁盘间途中经过的内存区

三、ps命令

ps命令用于查看当前的系统进程,ps和top显示的结果很像

两种常用查看方式

1、ps aux

2、ps -elf

建议用ps aux

ddeefdb19b19efcdf97d7f0ba9b7f6fe.png

第一行各个项目的含义:

USER:用户名

PID:进程的PID号,常用与kill命令强制关闭进程,默认是从小到大排列

%CPU:CPU占用率

%MEM:内存占用率

VSZ:进程所使用的虚存的大小(Virtual Size)

RSS:物理内存使用,和top命令res一样

TTY:终端号,自己的终端用tty命令可以看到

STAT:进程状态,该项内容较重要

D:保护进程,不能中断的进程

R:run ,在运行的进程

S:大写的S表示sleep状态的进程,vmstat运行时是sleep状态

T:暂停的进程

N:低优先级的进程

L:内存中内存分页锁定的进程

s:小写的s,主进程

l:小写的L,多线程进程

+:前台进程

START:进程开始时间

TIME:进程运行的时间

COMMAND:进程名

(一)应用举例

1、查看某一个程序或者服务是否在运行

ps aux | grep sshd 这里的sshd可以是任意程序,比如我们经常使用的ngix、mysql等等。

643e3b54424062fef926e0a41654e05b.png

2、根据pid强制关闭某一进程

kill (pid号) 比如kill 1571

pid号通过 ps aux |grep '程序名'方式查看

先运行一个命令并放到后台

daa31afec134512f7b8258093d880604.png

现在我们根据他的pid1571把他强制关闭

0e5d444f544fe8424a50622d8d29f079.png

这时我们在看下ps aux 看下进程表就不存在这个进程了。

3b906b659f84b03b098142a399e0d28e.png

出现僵尸进程的场景,启用nigix,当父进程被意外杀掉时,子进程就可能进入僵尸进程

3、通过进程号查看进程的路径

ls -l /proc/(pid号)

a8b34c29bfcecda587402ccb31f93129.png

通过这条命令可以看出进程是哪个程序创建的。

四、netstat命令

netstat用于查看网络状态,linux服务器运行各种服务后需要开放一些特定的端口让其他ip的设备去访问来提供相应的服务,比如说xhsell访问服务器就要用到22端口。windows下也有netstat命令 ,也有查看开放端口的功能。

windows下的netstat命令

21483704483c9d401e2460e4d6bd0bfb.png

tcp三次握手、四次挥手的内容参见:www.doc88.com/p-9913773324388.html

netstat命令应用示例

1、netstat -lnp查看监听端口,需要

5c86356d52e9e54ec967c41ac2dc5134.png

如果只需要查看tcp的

netstat -lntp

a8d5e9c927d0b77a1525748702433f71.png

2、如果只需要查看tcp与udp的

netstat -ltnup

1b90f8ebc4460bfbcb08caee7b7a32b0.png

3、netstat -an查看系统所有的网络连接状况

dca84f26eff1d7195cf365e2fc46cf04.png

4、ss -an查看网络连接状况

d2446c9c7dd63fb4d77fc983638aff6d.png

这个命令也能看链接情况,但是没有显示连接的进程,而netstat 命令就可以看到

5、通过netstat命令和awk命令查看网络链接各种状态的总数。

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

3ce55f861708e1513497c5668885c460.png

命令有点长,需要记住,最好能理解。

五、抓包工具

网络出现异常的时候会需要抓包,网络出现异常流量时需要抓包看看是出现了什么问题,比如看到***,频繁访问一些端口的一些请求时就要注意自己是不是被***了。抓取网络流量需要使用tcpdump工具或者wireshark工具。

tcpdump工具

首先要使用yum安装tcpdump工具,包名就是tcpdump

yum install tcpdump

用法示例

抓取某个网卡的包

txpdump -nn -i (网卡名,用nmcli dev show查看)

0942e4df752d457d1176cb78d36a598a.png

图示这个ens33就是网卡名,注意在centos6中网卡是从ens1开始的,而且网卡名会变,而centos7不会,他是根据硬件信息命令名的。

看看抓包结果

tcpdump -nn -i ens33

de2ad4f5e5e096562300ea210d4d223a.png

命令选项中的n就是将源主机显示为ip地址+端口号形式,默认显示的是主机名+服务名。我们主要看包从哪来,到哪去,走的是哪个端口的信息。

一般情况下,大部分的包都应该是tcp的包,如果有很多udp的包时就有可能服务器被DDOS***了,这时就要借助专业工具或硬件来防护

2、指定端口和网卡抓包

tcpdump -nn ens33(网卡名) port22(端口号)

d008f21567060ea123845cb374de996d.png

3、抓取网卡网络通信的10个包并将他导入/tmp/1.cap

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

f000e2d9f1964b80760e2d537dacf063.png

这个文件是不可cat的!

查看文件信息:

file /tmp/1.cap

b5b31a48f4543fd82547a0168f59fce1.png

读取具体内容

tcpdump -r /tmp/1.cap

17b593b145bceeb256a1acaa29eeb380.png

wireshark工具

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐