`

linux查看磁盘io的几种方法

阅读更多

怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式:

  第一种:用 top 命令 中的cpu 信息观察

  Top可以看到的cpu信息有:

  Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie

  Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si

  具体的解释如下:

  Tasks: 29 total 进程总数

  1 running 正在运行的进程数

  28 sleeping 睡眠的进程数

  0 stopped 停止的进程数

  0 zombie 僵尸进程数

  Cpu(s):

  0.3% us 用户空间占用CPU百分比

  1.0% sy 内核空间占用CPU百分比

  0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比

  98.7% id 空闲CPU百分比

  0.0% wa 等待输入输出的CPU时间百分比

  0.0% hi

  0.0% si

  0.0% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多。

  第二种:用vmstat

  vmstat 命令报告关于线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

  输入命令:

  vmstat 2 5

  如果发现等待的进程和处在非中断睡眠状态的进程数非常多,并且发送到块设备的块数和从块设备接收到的块数非常大,那就说明磁盘io比较多。

  vmstat参数解释:

  Procs

  r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间

  Memory

  swpd: 虚拟内存使用情况,单位:KB

  free: 空闲的内存,单位KB

  buff: 被用来做为缓存的内存数,单位:KB

  Swap

  si: 从磁盘交换到内存的交换页数量,单位:KB/秒

  so: 从内存交换到磁盘的交换页数量,单位:KB/秒

  IO

  bi: 发送到块设备的块数,单位:块/秒

  bo: 从块设备接收到的块数,单位:块/秒

  System

  in: 每秒的中断数,包括时钟中断

  cs: 每秒的环境(上下文)切换次数

  CPU

  按 CPU 的总使用百分比来显示

  us: CPU 使用时间

  sy: CPU 系统使用时间

  id: 闲置时间

  准测

  更多vmstat使用信息

  第二种:用iostat

  安装:

  Iostat 是 sysstat 工具集的一个工具,需要安装。

  Centos的安装方式是:

  yum install sysstat

  Ubuntu的安装方式是:

  aptitude install sysstat

  使用:

  iostat -dx 显示磁盘扩展信息

  root@fileapp:~# iostat -dx

  r/s 和 w/s 分别是每秒的读操作和写操作,而rKB/s 和wKB/s 列以每秒千字节为单位显示了读和写的数据量

  如果这两对数据值都很高的话说明磁盘io操作是很频繁。

 

 

下面是我的一个个人公众帐号,可以关注一下哦~



 

1
1
分享到:
评论

相关推荐

    linux查看磁盘io的几种方法.docx

    第三种方法是使用`iostat`工具,它提供了更为详细的磁盘I/O性能指标。`iostat -dx`命令会显示每个磁盘的读写操作次数(r/s, w/s)以及读写数据量(rKB/s, wKB/s)。如果这些值持续保持在较高水平,说明磁盘I/O活动...

    Linux查看磁盘io开销的几种方法.docx

    本文将介绍三种常用的方法来查看Linux系统的磁盘I/O开销:top命令、vmstat命令以及iostat命令。 1. **使用top命令** `top`命令是一个实时的系统监视工具,它提供了关于CPU利用率、内存使用情况、进程状态等信息。...

    获取Linux内存、cpu、磁盘IO等信息

    在Linux中,我们可以使用`free`命令来查看内存的状态。`free -h`会以人类可读的格式显示总内存、已用内存、空闲内存以及缓存等信息。如果想看到更详细的内存使用情况,可以使用`free -m`,它会以MB为单位显示内存...

    linux io层次图

    Linux I/O 层次结构大致可以分为以下几层: 1. **应用程序(Processes)** 2. **虚拟文件系统(VFS)** 3. **页面缓存(Page Cache)** 4. **块 I/O 层(Block I/O Layer)** 5. **I/O 调度器(I/O Scheduler)** 6....

    linux IO优化

    ### Linux IO优化详解 ...通过本篇文章的介绍,我们不仅了解了Linux系统提供的几种主要I/O调度算法及其工作原理,还学习了如何查询和更改系统默认的I/O调度算法,这对于实际系统调优具有重要意义。

    Linux Block IO Introducing Multi-queue SSD Access on Multi-core Systems

    ### Linux Block IO:引入多队列SSD访问在多核系统中的应用 #### 摘要 随着存储设备性能从几年前的每秒几百次输入/输出操作(I/O)迅速提升到现在的每秒数十万次I/O,并且预计未来五年内将达到每秒数百万次I/O,...

    Oracle数据库服务器IO高的分析方案.docx

    2. **数据库AWR报告方式**:通过查看AWR报告中的`AvRd(MS)`列来判断单个IO的响应时间。 - **示例**:如果`AvRd(MS)`值显示大多数数据文件的IO响应时间超过40毫秒,说明当前IO性能存在问题。 #### 带刀侍卫——处理...

    Linux io第一天

    在Linux系统中,文件I/O操作可以分为打开、读取、写入、关闭和定位等几个步骤。标准I/O库是C语言标准库的一部分,提供了对文件进行操作的函数。标准I/O库的使用涉及三种缓存类型:全缓冲、行缓冲和无缓冲。全缓冲是...

    生产系统主机io性能分析指南

    本文将深入探讨如何在Linux环境下监测和分析主机IO性能,涵盖dd命令的基本应用、iostat工具的详细使用方法,以及磁盘特性与IOPS的概念解析。 ### dd命令:磁盘性能简易测试 #### 测试磁盘的写入 dd命令是一种强大...

    Linux下挂载硬盘分区的几种方法

    Linux下挂载硬盘分区的几种方法 Linux系统中挂载硬盘分区有多种方法,本文将介绍其中的三种:使用Autofs自动挂载分区、修改/etc/fstab文件和编写shell脚本自动挂载分区。 方法一:使用Autofs自动挂载分区 Autofs...

    linux读FAT32硬盘

    在Linux系统中,读取FAT32格式的硬盘是一个常见的任务,这主要涉及到文件系统的交互和编程。FAT32是一种广泛使用的文件系统,尤其在USB驱动器、记忆卡和其他移动存储设备上。在Linux环境下,理解如何访问和操作FAT32...

    file_IO_test.zip_linux代码_steadyept

    本文将详细探讨"file_IO_test.zip"压缩包中的"file_IO_test"程序,它专注于Linux下的I/O操作,并利用steadept技术来提升性能。 首先,让我们了解Linux中的文件I/O。在Linux操作系统中,一切皆为文件,包括硬件设备...

    Linux IO Ccheduler

    本文将详细介绍Linux中的几种I/O调度算法,包括Deadline Scheduler、Anticipatory Scheduler以及Completely Fair Queuing (CFQ),并探讨它们的工作原理及其应用场景。 #### 二、Deadline Scheduler **Deadline ...

    Linux直接I/O机制介绍

    针对上述问题,Linux引入了一种名为直接I/O的机制,旨在克服缓存I/O的一些限制,尤其适用于自缓存应用程序。 **直接I/O的特点**: - **绕过页缓存**:直接I/O机制允许数据直接在应用程序地址空间与磁盘之间传输,...

    IO流程解析与基本原理

    电梯合并机制(`elv_merge`)是为了提高IO效率而设计的一种策略。其核心思想是尽可能地合并相邻或相近位置的IO请求,从而减少磁头移动次数。具体实现上,当队列中有待合并的请求(`last_merge`不为空)时,只需简单计算`...

Global site tag (gtag.js) - Google Analytics