设为首页 加入收藏

TOP

linux-磁盘io监控相关工具整理(二)
2023-07-23 13:37:57 】 浏览:86
Tags:linux- 磁盘 相关工
stat

  • 功能:报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。Linux系统的内存分为物理内存和虚拟内存两种。物理内存是真实的,也就是物理内存条上的内存。而虚拟内存则是采用硬盘空间补充物理内存,将暂时不使用的内存页写到硬盘上以腾出更多的物理内存让有需要的进程使用。当这些已被腾出的内存页需要再次使用时才从硬盘(虚拟内存)中读回内存。这一切对于用户来说是透明的。通常对Linux系统来说,虚拟内存就是swap分区。vmstat(VirtualMeomoryStatistics,虚拟内存统计)是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视
  • 参数:

 

    • vmstat [-a] [-n] [-S unit] [delay [ count]}  : -a显示活跃和非活跃内存 -n只在开始时显示列名称  dealy刷新的时间间隔   count输出的次数 -S:使用制定单位显示(k/K/m/M等)
    • vmstat [-s] [-n] [-S unit] : -s显示系统相关信息(如内存/cpu等)
    • vmstat [-m] [-n] [delay [ count]] : -m 显示slab信息 
    • vmstat [-d] [-n] [delay [ count]] : -d显示磁盘相关统计
    • vmstat [-p disk partition] [-n] [delay [ count]] : -p显示磁盘分区统计信息
    • vmstat [-f] : -f从系统启动至今的fork数量
    • vmstat [-V] : -v显示版本信息

 

  • 输出:
      • swpd: 使用虚拟内存大小
      • free: 可用内存大小
      • buff: 用作缓冲的内存大小
      • cache: 用作缓存的内存大小
      • si: 每秒从交换区写到内存的大小
      • so: 每秒写入交换区的内存大小
      • bi: 每秒读取的块数
      • bo: 每秒写入的块数
      • in: 代表每秒的中断数目
  • 常用命令:
    • vmstat 1 5: 每隔1s输出一次,共输出5次
    • vmstat -f : 查看系统已经fork了多少次
    • vmstat -a : 查看active和非active内存情况【注:inact和active的数据来自于/proc/meminfo】
    • vmstat -s : 查看内存占用总体情况
    • vmstat -d 1 5 : 查看5次磁盘io情况 【注:这些信息主要来自于/proc/diskstats】
    • vmstat -p /dev/sdb1 : 查看分区sdb1的情况,只能用来查看分区
  • 参考链接:

  6 pidstat

  •  简介:
    • sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息
  • 参数:
    • pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ]
    • -u:默认的参数,显示各个进程的cpu使用统计
    • -r:显示各个进程的内存使用统计
    • -d:显示各个进程的IO使用情况
    • -p:指定进程号
    • -w:显示每个进程的上下文切换情况
    • -t:显示选择任务的线程的统计信息外的额外信息
    • -T { TASK | CHILD | ALL } 这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
    • -V:版本号
    • -h:在一行上显示了所有活动,这样其他程序可以容易解析。
    • -I:在SMP环境,表示任务的CPU使用率/内核数量
    • -l:显示命令名和所有参数
  • 输出:
  • 常用命令:
    • pidstat -d 1 -l: 显示磁盘io使用情况,并显示详细指令
    • pidstat -r : 显示内存占用情况
    • pidstat -u : 显示cpu占用情况
  • 参考链接:

 7 pt-ioprofile

  • 简介
    • Percona Toolkit简称pt工具,是Percona公司开发用于管理MySQL的工具,功能包括检查主从复制的数据一致性、检查重复索引、定位IO占用高的表文件、在线DDL等,DBA熟悉掌握后将极大提高工作效率,常用来定位哪个文件IO占用比较高,其原理是对某个pid附加一个strace进程进行IO分析, --profile-pid指定pid, --cell=sizes,该参数将结果已 B/s 的方式展示出来
  • 参数:
    • pt-ioprofile --profile-pid=18934 --cell=sizes
  • 输出:
  • 常用命令:
    • pt-ioprofile --profile-pid=11220--cell=sizes
  • 参考链接:
  • 注意事项:
    • pt-ioprofile可能会冻结服务,crash进程,是进程变得更糟糕,或者使进程休眠
    • pt-ioprofile是一个有干扰的工具,一般不用在生产环境中,除非你能理解和接受风险

 8 lsof

  • 简介:lsof(list open files),一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能
  • 参数:
    • lsof [option] filename
    • -c: 显示command列中包含string的进程所打开的文件
    • -u: 显示某个用户打开的文件
    • -a: 显示满足后续所有条件的文件
    • -p: 列出进程号所打开的文件
    • -h: 显示帮助信息
    • -v: 显示版本信息
    • -n:列出使用nfs的文件
    • +D: 递归打开目录下的所有文件
    • +d:列出目录下被打开的文件
    • -d:列出占用该文件号的进程
    • -g:列出gid(groupid)号进程详情
    • -t:仅列出进程
    • -r: 循环列出文件直到被中断,后面数字代表循环的频率,
  • 输出:
    • COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
      init 1 root cwd DIR 3,3 1024 2 /
      init 1 root rtd DIR 3,3 1024 2 /
      init 1 root txt REG 3,3 38432 1763452 /sbin/init
      init 1 root mem REG 3,3 1061
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇自动化管理软件与Ansible安装 下一篇如何用Virtualbox搭建一个虚拟机

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目