IOT流量服务平台,iot物联网流量卡
1.iotop简介:类似top的I/O监控工具。
项目主页:http://guichaz.free.fr/iotop/
IO是python写的(要求Python 2.7才能运行)。它通过linux内核(2.6.20以上)监控I/O信息,以列表的方式展示当前系统中进程/线程的I/O利用率。如果想通过iotop获取I/O信息,需要在Linux内核编译时开启三个变量:CONFIG_TASK_DELAY_ACCT、config _ task _ io _ accounting、config _ taskstats和CON‐FIG_VM_EVENT_COUNTERS。
io监控的主要项目:
进程/线程I/O的读/写带宽进程/线程交换所花费的时间占进程/线程I/O阻塞(等待)所花费的时间占每个进程/线程系统中I/O的总读/写带宽。系统中I/O的实际读/写带宽(和总读/写带宽有时有不同的值)
2.安装2.1 yum/apt安装Ubuntu
sudo apt install -y iotop
摘录
sudo yum install -y iotop
2.2源代码安装
#下载源码git clone git://repo . or . cz/io top . git #转到对应目录cd iotop #编译python setup . py build # Install sudo python setup . py Install 3 .帮助输入:iotop -h
用法:/usr/sbin/io top[选项]
磁盘读取和磁盘写入是采样期间使用的块I/O带宽
句号。SWAPIN和IO分别是线程花费时间的百分比
而换入和等待I/O更普遍。PRIO是以下位置的I/O优先级
线程正在运行的线程(使用ionice命令设置)。
/*
磁盘读取:采样周期内磁盘读取的带宽(平均值)
写入:采用周期内磁盘写入的带宽(平均值)。
SWAPIN:磁盘换入时间占总时间的百分比(内存不足时将执行内存换入)
IO:平均磁盘读写等待时间占总时间的百分比。
O:I/O调度时进程/线程的优先级(由ionice设置)
*/
控件:左箭头和右箭头用于更改排序列,r用于反转
排序顺序,o切换- only选项,p切换-进程
选项,a用于切换- accumulated选项,I用于更改I/O优先级,q用于
退出,任何其他键强制刷新。
/*
按键控制:
/:选择已排序的列。
r:以相反的顺序列出当前的IO进程/线程。
o:与- only参数相同
p:与- processes参数相同
答:与累积参数相同
I:更改I/O优先级
问:退出iotop
其他键:强制刷新当前IO进程/线程列表。
*/
选项:
-version显示程序的版本号并退出//显示版本信息。
-h,-help显示此帮助消息并退出//显示帮助信息
-o,-only仅显示实际执行I/O的进程或线程//显示具有当前I/O活动的进程或线程(也就是说,没有IO操作的进程/线程不会显示在列表中)
-b,-批处理非交互模式//非交互模式,即后台模式(这样可以重定位信息并输出到一个文件)
-n num,-ITER=num结束前的迭代次数[无限]//信息刷新的次数。默认总是刷新,不会自己退出;如果这个参数被指定为n,iotop将在更新列表信息n次后自动退出(这个参数在批处理模式下很方便)
-d sec,-delay=sec迭代之间的延迟[1秒]//信息刷新间隔,即每隔几秒,默认为每隔一秒。
-p PID,-PID=要监视的PID进程/线程[all]//过滤显示特定PID的进程或线程。默认为所有进程/线程。
-u user,-user=user users to monitor[all]//Filter显示特定用户下的进程/线程IO,默认为所有用户。
-p,-processes只显示进程,不显示所有线程//Filter只显示进程的IO信息,默认显示所有进程和线程的IO信息。
-a,-accumulated显示累计I/o而不是带宽//将IO的值设置为累计IO而不是实时IO。
-k,-千字节使用千字节而不是人类友好的单位//将IO的单位设置为KB/s,默认情况下,根据IO大小调整单位。(批量设置统计很方便)
-t,-time每行加一个时间戳(隐含-batch)//批处理模式,每行前面加一个时间戳。
-q,-quiet抑制部分行头(隐含-batch)//批处理模式下,列名只打印一次。
-QQ列名从不打印,//列名不打印。
-QQ从不打印I/o摘要。//甚至不打印汇总信息。
4.例1。每十秒钟打印一次信息,只打印有活动I/O的进程和线程数据。
iotop -d 10 -o
2.每十秒打印一次信息,单位设置为KB/s,只打印I/O活跃的进程和线程数据。
iotop -d 10 -o -k
3.每十秒打印一次信息,单位设置为KB/s,使用累加模式,只打印I/O活跃的进程和线程数据。
iotop -d 10 -o -k -a
如图所示:红框变成累计值而不是实时值(对比上图)
4.批处理模式1
每十秒钟,iotop中有活动IO的进程/线程的相关信息会同时输出到文件控制台和文件中。
iotop -d 10 -o -b tee iotop.result
5.批处理模式2
其他同上。添加了两个参数-n和-k。计量单位为KB/s,用户计数十次后会自动退出。
iotop -d 10 -o -b -k -n 10 tee iotop.result
6.批处理模式3
这里指定只打印PID为2025的进程,并且每一行都有时间戳。
iotop -p 2025 -t -b -n 10 tee iotop.result
5.自动化我们可以用第六个例子来获取机器上指定进程的IO信息。
例如,在进程id分别为2025和345的机器上部署两个服务,然后执行下面的命令(-n是自己修改的,时间-n乘以-d是总的统计时间,比如下面10*10等于100秒)
iotop -p 2025 -p 345 -t -b -n 10 -d 10 tee iotop.result
然后用awk或者python解析iotop.result,就可以生成相应的csv文件。
Csv文件可以用来在excel中或者直接在python的图形库中绘制曲线。
门户:2021最新考试数据及大厂招聘。
博主:测试赚钱(不是996而是996的测试码农)
座右铭:专注测试开发和自动化运维,努力学习,努力思考和写作,为书的一生奠定财务自由。
内容:技术提升、职场八卦、职业发展、阅读写作、投资理财、健康生活。
csdn:https://blog.csdn.net/ccgshigao
世博园:https://www.cnblogs.com/qa-freeroad/
51至:https://blog.51cto.com/14900374
微信官方账号:测试生财(定期分享独家内容和资源)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。