10.6 监控io性能

磁盘的io是一个非常重要的指标,所以要更详细的查看磁盘状态,需要用到iostat命令,如果之前已经安装了sysstat包的话,在安装sysstat包时iostat命令就已经被安装了。

iostat直接回车可以查看到当前磁盘的信息:

kB_read/s表示每秒的读取速度,kB_wrtn/s表示每秒的写入速度。Device那列则是磁盘名称。

加上数字1则可以动态的每秒更新一次信息:

sar -b也能够查看磁盘信息:

iostat重要的是-x选项,能够显示%util这个指标,这个指标表示CPU等待磁盘io的百分比,如果这个百分比很大就表示磁盘io很忙。在读写的数值不大的情况下,%util列数值却很大,那么可能就是磁盘出现了问题。

iotop命令可以看到哪个进程在频繁读写磁盘,这个命令默认是没有的,需要安装:

安装命令:yum install -y iotop

iotop和top命令类似,也是动态显示的界面,只不过iotop是用来查看进程对磁盘的使用率的,而top则是用来查看进程对CPU的使用率的:

10.7 free命令

free是直接查看内存使用情况的命令,CentOS7和CentOS6的显示信息不一样,CentOS7要更直观一些:

第一行是列名,第二行是内存的使用情况,第三行是交换分区内存的使用情况。主要是关注第二行的信息,第一列是内存的总大小,单位是KB,第二列是使用的大小,第三列是剩余的大小,第四列是共享内存的大小。

free -m把内存大小单位以MB来表示:

free -h更直观的查看大小单位:

从显示的信息可以看到一个现象,使用大小和剩余大小的值加起来不等于内存的总大小,这是因为Linux操作系统会把内存分配一些出来分给buff/cache。buff是缓冲,CPU计算完的数据要想存到磁盘里,会先进入到内存中,最后通过内存缓冲再存储到磁盘里。cache是缓存,磁盘的数据进入到CPU之前会先经过内存最后才到CPU,通过内存到CPU这一段就是缓存。

示意图:

缓存和缓冲的区别就是数据的流向不一样,前者是从磁盘通过内存到CPU,后者是从CPU通过内存到磁盘。

因为内存担任一个这么重要的角色,所以Linux操作系统才预留出一些内存空间分给buff/cache。

所以计算total的值的公式是:

total=used+free+buff/cache

available列的值是free列加上buff/cache列的大小,表示剩余部分的内存,所以available才是内存真正的剩余大小。

10.8 ps命令

ps命令主要是用来查看进程的,汇报当前进程的一个快照,ps aux可以列出所有的进程:

这就类似于Windows系统的任务管理器,ps aux和top显示得有点像,只不过ps aux是静态的,top是动态的。

第一列是进程的用户名称,第二列是进程的PID,在杀进程或者系统被黑了,发现有个恶意进程,这时可以通过这个进程的PID找到这个进程的所在目录,例如我要找一个PID为912的进程所在目录:

第三列(%CPU)是CPU占用率,第四列(%MEM)是内存占用率,第五列(VSZ)是虚拟内存,第六列(RSS)是物理内存,第七列(TTY)表示进程在哪一个TTY上,第八列(STAT)是需要关注的一列,表示的是进程的状态,第九列(START)是进程的启动时间,第十列(TIME)表示进程运行了多长时间,第十一列(COMMAND)是命令名称,和top的最后一列是一样的。

STAT进程状态说明:

D 表示不能中断的进程,如果此状态的进程很多那么系统负载就会比较高。

R 表示run(运行中)状态的进程,在某一段时间内在使用着CPU的进程

S 表示sleep状态的进程,使用完CPU会暂停、休息一下,过一会就会激活,激活后就会继续使用CPU

T 表示暂停的进程,使用Ctrl+z暂停的进程

Z 表示僵尸进程,系统运行过程中残留的一些无用的子进程

< 表示高优先级进程,就是能够优先使用CPU的进程

N 表示低优先级进程,与高优先级进程相反

L 表示内存中被锁了内存分页

s 表示主进程

l 表示多线程进程,线程和进程不一样,一个进程里可以有多个线程,并且线程之间的内存是可以共享的,而进程之间则是互相独立的内存不可以共享

+ 表示前台进程,会显示到终端上的进程,例如grep、cat、less等

ps aux配合grep使用可以查看是否有某个进程,例如我要查看一下这些进程中是否有nginx进程:

ps -elf显示的结果和ps aux差不多,比ps aux多了几列数据:

10.9 查看网络状态

netstat命令是用来查看网络状态的,Linux系统我们通常把它作为服务器的操作系统,服务器里有很多服务与客户端进行交互通信,也就意味着也要有监听端口、通信端口。那么netstat命令查看到的就是tcp/ip通信的一个状态。

没有端口监听就无法和其他机器通信,要想让其他人能够访问你服务器、网站,就需要有一个监听端口。

netstat -lnp命令可以查看监听端口:

netstat -an 可以查看系统所有的网络连接状况:

netstat -lntp只查看tcp的:

只查看udp的就加上u:

结合awk命令可以查看所有状态的数量:

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

ss -an也能够显示tcp/ip的连接状态和netstat是类似的命令:

如果想查看指定的连接状态使用grep过滤即可:

ss有一个缺点是不能显示进程的名字,netsta则可以显示进程的名字

10.10 Linux下抓包

tcpdump这个命令是用来抓包的,默认情况下这个命令是没有的,需要安装一下:

yum install -y tcpdump

使用这个命令的时候最好是加上你网卡的名称,不然可能使用不了:

在命令的选选项中,加上-nn选项是表示显示IP地址和端口号,如果不加则会显示主机名和进程名,第一列显示的是当前时间,后面会有两个IP地址,第一个IP地址是源IP第二个则是目标IP,IP地址后面跟的是数据包的相关信息,所以tcpdump这个命令主要就是看网络数据的流向。

使用port抓取指定端口的包,例如我要抓22端口的包:

还可以使用not port过滤掉某个端口的包,例如我过滤掉22端口的:

还可以加个条件,指定抓取某个IP的包:

加上-c选项可以指定抓取数据包的数量,例如指定只抓取20个数据包:

加上-w还可以指定抓取出来的数据包存放到哪里去,例如我要放到tmp目录下的1.cap文件中:

可以使用file命令查看这个文件的相关信息,不能使用cat直接查看,因为里面都是数据:

不过使用tcpdump -r可以看到这个文件里的数据流信息:

tshark命令介绍:

tshark命令默认情况下这个命令是没有的,需要安装一个wireshark包,tshark和tcpdump是类似的工具,也是用来抓包的:

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的访问日志:

本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1973593,如需转载请自行联系原作者

监控io性能,free命令,ps网络命令,查看网络状态,Linux下抓包相关推荐

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

    2019独角兽企业重金招聘Python工程师标准>>> 监控io性能 free命令 ps命令 查看网络状态 linux下抓包 --- 监控io性能 查看磁盘 iostat 和sar属 ...

  2. Linux日常运维管理技巧(一)监控系统状态、监控网卡流量、监控IO性能、查看系统进程、查看网络状态、Linux下抓包tcpdump、Linux网络相关、DNS配置

    目录 监控系统状态 监控网卡流量 监控IO性能 查看系统进程 查看网络状态 Linux下抓包 Linux网络相关 监控系统状态 w/uptime查看系统负载 [root@zyshanlinux-01 ...

  3. linux下怎么监控网络 io swap,监控io性能,free命令,ps命令,查看网络状态,linux下抓包...

    监控io性能 [root@localhost ~]# iostat Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 2017年09月12日 _x ...

  4. 七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包...

    七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包 ========================== ...

  5. centost查看网络信息_监控io性能、free命令、ps命令、查看网络状态、Linux下抓包...

    一.监控io性能 iostat命令 iostat命令被用于监视系统输入输出设备和cpu的使用情况.它的特点是汇报磁盘活动统计情况,同时也会汇报出cpu使用情况.通vmstat一样,iostat也有一个 ...

  6. linux下怎么监控网络 io swap,监控io性能,free命令,ps命令,查看网络状态,linux下抓包(示例代码)...

    监控io性能 [[email protected] ~]# iostat Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 2017年09月12日 ...

  7. ​七周二次课(5月7日)监控io性能、free命令、ps命令、查看网络状态、linux下抓包...

    2019独角兽企业重金招聘Python工程师标准>>> 10.6 监控IO性能 1.监控 io 性能 这个 iostat 命令,在安装 sar 命令的时候,就一起安装了,所以不用重新 ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 监控io性能 iostat -x 磁盘使用 iostat 在安装sysstat的时候会自动安装上这个命令.它和sar是同一个包 ...

  9. linux抓包命令到文件,Linux下抓包命令tcpdump详解

    tcpdump是一个命令行实用程序,可用于捕获和检查进出系统的网络流量. 它是网络管理员中用于排除网络问题和安全测试的最常用工具. 尽管名称如此,使用tcpdump,您也可以捕获非TCP流量,例如UD ...

最新文章

  1. 解读晦涩的存储技术缩略语
  2. python3 域名转ip
  3. 组会PPT20200910《大工HPT放电结果错误剖析》
  4. python 零散记录(三) 格式化字符串 字符串相关方法
  5. 四道微软面试经典算法题
  6. 新增数据时遇到特殊字符
  7. python爬虫网络请求超时_Python网络爬虫编写5-使用代理,处理异常和超时
  8. sizeof与offsetof有关的结构体详解
  9. java实现从头部及尾部删除指定长度字符
  10. 【Django 2021年最新版教程17】数据库操作 models 存在更新 不存在新建update_or_create
  11. 澳洲计算机专业几年,2020年澳洲八大计算机硕士专业学费是多少?入学要求高吗?读几年?...
  12. 使用openwrt-SDK 生成IPK
  13. java 文件删除不了_java的File类的 delete方法删不掉文件的原因分析
  14. 如何将windows桌面变成类似mac样式
  15. 语言在工作中扮演的角色
  16. CF卡转模式(本地)
  17. linux怎么设置永久变量,Linux环境变量永久设置方法(zsh)
  18. 拼多多分享好友砍价Java实现_拼多多怎么帮助好友砍价免费拿商品,详情介绍...
  19. 团队管理者就是背锅的
  20. 计算机应用类专业综合知识月考试卷,计算机应用类专业综合复习试题(一)

热门文章

  1. 实验mongodb使用gridfs存放一个大文件
  2. android 课程——样式
  3. 使用Win API创建工具栏
  4. WCF中的序列化[上篇]
  5. Linux Socket学习(十三)
  6. https是如何保证数据传输的安全
  7. SpringMVC + MyBatis整合 【转】
  8. lnmp安装博客系统WordPress
  9. Mindmanager 甘特图杠上Mindmanager 鱼骨图
  10. ASP.NET 实现站内信功能(点对点发送,管理员群发)