2019独角兽企业重金招聘Python工程师标准>>>

10.6 监控IO性能

1、监控 io 性能

这个 iostat 命令,在安装 sar 命令的时候,就一起安装了,所以不用重新安装。具体用法见下图,

iostat 命令和 vmstat 挺像的,输入 iostat 可以直接查看磁盘显示情况,输入 iostat 1 就是每隔1秒显示一次,是动态命令,使用 ctrl + c 结束命令。sda 和 sdb 表示磁盘,第3 列和第4 列表示读和写的速度。这个命令没什么用处,因为命令 sar -b 也可以看出这些信息。

接着往下介绍命令 iostat -x 1

这个命令有一个非常重要的指标 %util ,表示 io 等待,在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
还有一个命令 iotop ,需要安装

yum  install iotop

iotop 命令和 top 命令很像,也是动态显示,输入命令 iotop ,回车,见下图,

可以看到排序,但是 io 没有什么读写信息,也就没有什么排序。按字母 q 退出。

10.7 free命令

查看内存使用情况

可以看到当前系统的总内存大小以及使用内存的情况,单纯的 free 命令单位是 KB ,-m 选项的单位是 M ,-g 选项的单位是 G,-h 选项是智能的显示单位。其中,第2行是内存使用情况,第3行是 swap的使用情况。我们关注的是第2行的数据, 系统初始化时,就已经分配出很大一部分内存给缓存(buff/cache),这部分缓存用来随时提供给程序使用,如果程序不用,那这部分内存就空闲。CPU 和磁盘之间,需要通过内存来缓存。从磁盘到CPU之间的内存叫 cache ,从CPU到磁盘之间的内存叫 buffer。
公式:total=used+free+buff/cache。
avaliable包含free和buffer/cache剩余部分。

10.8 ps命令

ps aux 命令显示当前系统的所有进程,它经常会连同管道符一起使用,用来查看某个进程或者它的数量,见下图:

-elf 的用法和 aux 大同小异,显示的信息基本上是一样的

接着介绍 ps aux 命令结果里面几个参数的意义:
USER:进程的运行用户
PID :进程的id,这个id很有用,在linux中内核管理进程就得靠pid来识别和管理某一个程序,比如我想终止某一个进程,则用 kill 进程的pid 有时并不能杀掉,则需要加一个-3选项了 kill -3 进程pid
现在假设 PID 为476的进程是非法进程,先查看一下进程的目录,看看进程是从哪边启动起来的,就是下图红色框框绿色字体的内容。

%CPU CPU百分比
%MEM 内存百分比
VSZ 虚拟内存
RSS 物理内存
START 什么时候启动
TIME 运行多久
COMMAND 命令
STAT :表示进程的状态,进程状态分为以下几种(不要求记住,但要了解)
D 不能中断的进程(通常为IO)
R 正在运行中的进程
S (大写的S)已经中断的进程,通常情况下,系统中大部分进程都是这个状态
T 已经停止或者暂停的进程

W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配
X 已经死掉的进程(这个好像从来不会出现)
Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。
< 高优先级进程,CPU先给这些进程用
N 低优先级进程
L 在内存中被锁了内存分页(还没见过,了解即可)
s (小写的s)主进程,一般显示为 Ss 为主进程,S 为子进程。
l 多线程进程,意思就是这个进程有多个线程.

总结:
iostat -x %util表示在统计时间内所有处理IO时间,除以总共统计时间
iostat 显示当前磁盘使用情况
iostat 1 每隔1秒显示一次磁盘使用情况,是动态命令,使用 ctrl + c 结束命令
iotop 磁盘使用情况,按 io 排序
free 可以看到当前系统的总内存大小以及使用内存的情况,-m 单位M,-g单位G,-h智能显示单位
ps aux 静态的显示当前系统的所有进程,经常与 | 一起使用

10.9 查看网络状态

netstat 是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
netstat 是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
如果你的计算机有时候接收到的数据包导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据包。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用netstat查一查为什么会出现这些情况了。
netstat 命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。使用时如果不带参数,netstat显示活动的 TCP 连接。

netstat 命令用来打印网络连接状况、系统所开放端口、路由表等信息。最常用的关于netstat的命令就是这个 netstat -lnp (查看当前系统启动哪些端口)以及 netstat -an (查看网络连接状况)这两个命令非常有用。
正常情况下,一台机器是没有任何的端口监听,也就意味着它没有办法和其他的机器通信。要想提供web服务,让其他人访问服务器和网站,就需要监听一个端口。那么怎么查看监听端口?输入命令 netstat -lnp ,回车,见下图,

只查看tcp和udp的命令,见下图,

netstat -ltnp    查看tcp

netstat -lunp    查看udp

netstat -ltunp   查看tcp和udp

还有一个命令: netstat -an   查看tcp/ip状态

叫TCP/IP的“三次握手,四次挥手”。“三次握手,四次挥手”是重点。
上图中常见状态即连接状态。在原模式中没有状态,在用户数据报协议中也经常没有状态,于是状态列可以空出来。若有状态,通常取值为:
LISTEN
侦听来自远方的TCP端口的连接请求
SYN-SENT
在发送连接请求后等待匹配的连接请求
SYN-RECEIVED
在收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED
代表一个打开的连接,表示正在通信。这个数值需要关注,如果很大的话,说明系统现在很忙。通常情况下,1000以内,服务器都是可以接受的。
FIN-WAIT-1
等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2
从远程TCP等待连接中断请求
CLOSE-WAIT
等待从本地用户发来的连接中断请求
CLOSING
等待远程TCP对连接中断的确认
LAST-ACK
等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT
等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED
没有任何连接状态

分享一个小技巧,可以查看所有的状态的数字,输入命令 netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key, "\t", sta[key]}' ,回车,见下图,

还有一个命令 ss ,它与 netstat 类似,见下图,

这个命令有个缺点,不会显示进程的名字,netstat 命令就可以。

netstat -lnp 查看当前系统启动哪些端口
netstat -an 查看网络连接状况
netstat -ltnp 查看当前系统启动的tcp端口
netstat -lunp 查看当前系统启动的udp端口
netstat -ltunp 查看当前系统启动的tcp和udp端口
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key, "\t", sta[key]}' 可以查看所有的状态的数字。
课件地址在 centos7.aminglinux.com 
ss -an 与 netstat 异曲同工,都是查看状态的,不过它不会显示进程的名字
ss -an | grep -i listen 查看状态为 listen 的情况

10.10 linux抓包

命令tcpdump 默认没有安装, yum install tcpdump

tcpdump 最简单的用法: tcpdump -nn

命令这边的 -nn 中第1个 n 表示IP用数字的形式显示出来,如果不加就会显示成主机名

指定端口: tcpdump -nn port 22

排除相关端口: tcpdump -nn not port 22

加入条件查询: tcpdump -nn not port and host 115.192.98.9

指定数据包长度和个数:

tcpdump -nn -c 100

还可以指定存放的文件,文件名随便取:

tcpdump -nn -c 100 -w /root/network.cap

file 查看文件信息:  file /root/network.cap  ,查看到文件的大致信息

这个文件无法用 cat 命令查看,结果会出现一堆乱码,可以使用 file 命令查看一下大致信息,也可以使用 tcpdump 命令查看,需要加上 -r

tcpdump -r /root/network.cap

结果就是一些数据流

tshark命令

需要安装wiresherk   :  yum install 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" ,回车,见下图,

这个命令的结果类似于web的访问日志,包含时间、IP地址、访问的域名,链接等信息。

总结:
tcpdump -nn -i ens33 查看数据的流向,可查看ip地址和端口
tcpdump -i ens33 不加-nn查看主机名,没有ip地址和端口
tcpdump -nn -i ens33 port 123 查看指定端口123的数据流向
tcpdump -nn -i ens33 not port 22 查看非指定端口22的数据流向
tcpdump -nn -i ens33 not port 22 and host 192.168.218.128 查看非指定端口22和ip地址是 192.168.218.128 的数据流向
tcpdump -nn -i ens33 -c 10 查看10个数据的流向
tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap 查看10个数据的流向并且指定存放的路径/tmp/1.cap 
tcpdump -r /tmp/1.cap 查看数据存放的文件

转载于:https://my.oschina.net/u/3803395/blog/1801844

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

  1. 七周二次课(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下抓包 ========================== ...

  2. 十一周二次课(6月1日)

    11.28 限定某个目录禁止解析php 因为httpd开放了php模块,所以如果被人上传了文件(php类型),httpd就有可能会进行执行,一旦执行,就会让对方获得我们服务器的root权限,或者是被恶 ...

  3. 八周二次课(5月14日)

    10.28 rsync工具介绍 rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文 ...

  4. 20170507Linux七周二次课 io监控free ps 网络状态 抓包

    七周二次课(5月7日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包 扩展tcp三次握手四次挥手 http://www.do ...

  5. 三周第三次课(12月27日)

    三周第三次课(12月27日) 3.7 su命令 su 切换用户 whoami id su -aming su aming 切换用户,但是没有切换家目录 su - -c "touch /tmp ...

  6. wps二级计算机考试怎么准备,千呼万唤始出来! WPS计算机二级通关课3月1日上线...

    2021年3月(第60次)全国计算机等级考试将于3月27日至29日举行.值得注意的是,国产办公软件WPS Office此次将作为全国计算机等级考试(NCRE)的二级考试软件之一. WPS成为计算机二级 ...

  7. 十周第一次课(5月25日)

    11.10/11.11/11.12 安装PHP5 PHP官网www.php.net 当前主流版本为5.6/7.1 PHP安装最后的原因,就是因为PHP需要一个Apache的依赖包 apxs2 下载PH ...

  8. 12月2日科技资讯|微信回应发原图泄露位置信息;Linux Kernel 5.4.1 发布

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧.扫描上方二维码进入 CSDN App 可以收听御姐萌妹 Sty ...

  9. 七周二次课(5月7日)

    10.6 监控io性能 iotop命令是一个用来监视磁盘I/O使用状况的top类工具.iotop具有与top相似的UI,其中包括PID.用户.I/O.进程等相关信息.Linux下的IO统计工具如ios ...

最新文章

  1. git 忽略指定文件夹的上传
  2. python爬虫提取教学_python爬虫的基本抓取
  3. Eclipse Android插件中的“调试证书已过期”错误
  4. [USACO19JAN]Train Tracking 2——神仙结论题+DP
  5. 检索数据_17_按照指定的次序返回查询结果
  6. 新书出版:《Android深度探索(卷1):HAL与驱动开发》
  7. 【渝粤教育】电大中专工程图学基础 (3)作业 题库
  8. linux下使用dd命令制作ubuntu的u盘启动,Ubuntu使用dd命令制作U盘系统启动盘
  9. C# 从Object对象中读取属性的值
  10. 虚拟机中Ubuntu IP地址漂移问题解决(为Ubuntu配置固定IP地址)
  11. MATLAB软件基础
  12. 第3章 数据库操作SQL语言---数据库原理及应用
  13. php 生成小程序码
  14. flink任务监控- 利用Grafana和Prometheus实现实时计算平台任务监控
  15. 2015-10-28 C#4
  16. android游戏备份农场,zynga旗下的虚拟农场farmville将正式进入android平台
  17. Falled to crcate the site. Peaseauthorize ArcGIS Server by navigating to the Apps page
  18. 论文阅读-2020ICRL-Neural execution of graph algorithms
  19. 微软开源!世界首个AI量化投资平台 Qlib 基本使用教程
  20. 2020-10-02

热门文章

  1. 设计模式——命令模式
  2. sanic set up
  3. AWK处理日志入门(转)
  4. 【转】Pro Android学习笔记(二六):用户界面和控制(14):RelativeLayout
  5. const的理解、const指针、指向const的指针
  6. 如何在Azure上创建和部署云服务
  7. SAX与DOM之间的区别 转帖
  8. php网页中不能上传图片,为什么我的PHP图片上传代码可以实现插入数据库但图片不能插入文件夹中?...
  9. java中action类是干嘛的_java中action的作用
  10. oc渲染器中文手册_C4D·OC高级渲染视频教程,带你玩转质感渲染