Linux 性能监控 —— 磁盘 I/O

零. 前言

如果从磁盘(disk)中读取/写入数据, CPU 就会处于空闲状态, 大大浪费了这段等待时间 CPU 的计算能力。 所以SSD、 缓存、 内存、 寄存器之类的设计就是为了减少 CPU 的等待时间, 释放计算能力。 可以看出业界对磁盘 I/O 的重视, 以及磁盘 I/O 对系统的影响之大。

一.  如何查看磁盘 I/O

在 Linux 平台或者 BSD 平台下, 借助 top 命令可以清楚看到磁盘 I/O 情况。

二. 如何衡量磁盘 I/O 存在瓶颈

磁盘 I/O 是否存在瓶颈取决于当前机器 CPU 的总核数(总核数计算移步我的另一篇博文: Linux 性能监控 ---- Load Average)。 公式: X(IO) = 1/(cpu 总核数) 用来衡量磁盘
I/O 情况, 以上图的机器为例子, 这台机器 2 CPU 12 核 也就是总核心数为 2*12 = 24, X(IO) = 0.04166666 = 4.17%。

如果上图指标长时间大于 4.17%, 那么我们的网站响应可能就会变慢了。

三. 影响 I/O 性能有哪几点

衡量 I/O 性能一个术语叫 IOPS(input/output per-second) 每秒输入或输出量

影响 IOPS 因素有如下 4 点:

- 多重磁盘阵列(Multidisk Arrays): 阵列里越多磁盘 IOPS 越高。 如果一个 disk 有 250 IOPS, 则 2 个 disk 有 500 IOPS

- 每个磁盘的平均 IOPS (Average IOPS per-drive): 磁盘速度越高, 当然 IOPS 越高

- RAID(具体参见 https://en.wikipedia.org/wiki/RAID) 因素: 使用 RAID 技术存储。 RAID 在写操作时有大量性能耗费。 对于 RAID6, 每次写需要 6 次磁盘操作。 RAID1 和 RAID10 每次写需要
2 次磁盘操作。

- 读写工作量(Read and Write Workload): 比如在 RAID 5 或者 RAID 6 有大量写操作, IOPS 将会很低

四. 如何解决 I/O 瓶颈问题

我们可以对磁盘进行调优, 这很复杂而且也不会超过 RAM 的速度。

所以, 可以先对 I/O 高的服务或应用进行处理, 最快的方法就是数据缓存到 RAM。 例如数据库服务器的内存配置到最高, 尽量缓存 SQL 的数据。 

时间: 2024-10-14 16:23:34

Linux 性能监控 —— 磁盘 I/O的相关文章

Linux性能监控

Linux性能监控的目的是找到系统的瓶颈,并且调节系统来设法消除这些瓶颈.我们在监控性能的时候重点在于监视一下子系统: 1.CPU 2.MEMORY 3.IO 4.NETWORK 但这些系统都是彼此依赖,不能单独只看其中一个.当一个系统负载过重时往往会引起其它子系统的问题,比如说:       ->大量的读入内存的IO请求(page-in IO)会用完内存队列:        ->大量的网络流量会造成CPU的过载:        ->CPU的高使用率可能正在处理空闲内存队列:      

Linux性能监控与分析之

Linux性能监控与分析之---CPU CPU性能指标 1. 用户进程使用CPU的比率 2. 系统进程使用CPU的比率 3. WIO, 等待I/O 而是CPU处于空闲状态的比率. 4. CPU的空闲率 5. CPU用于上下文交换的比率 6,nice 7,real-time 8,运行进程队列的长度 9,平均负载 Linux下常用监控CPU性能的工具有 1. iostat  www.ahlinux.com 只能查看所有CPU的平均信息 2. vmstat 能查看所有CPU的平均信息, 能查看CPU队

六个 Linux性能监控命令行工具

六个 Linux性能监控命令行工具  1.htop - http://htop.sourceforge.net/一个可以让用户与之交互的进程查看器.作为文本模式的应用程序,主要用于控制台或 X 终端中.当前具有按树状方式来查看进程,支持颜色主题,可以定制等特性. 2.dstat - http://dag.wieers.com/home-made/dstat/一个用来替换vmstat, iostat, netstat, nfsstat 和ifstat 这些命令的工具,是一个全能系统信息统计工具. 

vmstat和iostat命令进行Linux性能监控

这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD/Solaris). 如果vmstat和iostat命令在你的系统中不可用,请安装sysstat软件包.vmstat,sar和iostat命令都包含在sysstat(系统监控工具)软件包中.iostat命令生成CPU和所有设备的统计信息.你可以从这个连接中下载源代码包编译安装sysstat,但是我们建议通过YUM命令进行安装. 在Linu

linux 性能监控-实用命令(摘抄)

1.TOP——Linux进程监控 top: linux 进行监控 运行时间 当前时间 当前登录用户数 cpu 内存 load average 系统负载 (1分钟 5分钟 15分钟[一般会小于1,高于5会硬性系统性能,需要详细查看进程) 2.VMSTAT——虚拟内存统计 Linux的vmstat命令用于显示虚拟内存统计,kernerl线程.磁盘.系统进程.I/O模块.中断.CPU活动等.默认情况下,需要在Linux系统上安装一个sysstat包才可以使用vmstat命令.. LSOF——列出打开的

Linux 性能监控的18个命令行工具

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每个Linux/Unix 系统管理员的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的工具,您可以 挑选适用于您的监控场景的工具. 1.Top-Linux进程监控 Lin

Linux性能监控分析命令(五)—free命令介绍

性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Linux内存使用最常用的命令语法格式: free [options] 参数说明: -m:以M为单位查看内容使用情况(默认为kb) -b:以字节为单位查看内存使用情况 -s:可以在指定时间段内不间断监控内存使用情况 -k:以KB为单位显示内存使用情况 -g:以GB为单位显示内存使用情况 -o:不显示缓冲区

使用vmstat和iostat命令进行Linux性能监控【转】

转自:https://linux.cn/article-4024-1.html 这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD/Solaris). 如果vmstat和iostat命令在你的系统中不可用,请安装sysstat软件包.vmstat,sar和iostat命令都包含在sysstat(系统监控工具)软件包中.iostat命令生成CPU和所有设备的统计信息.你可以从这个连接中下载

Linux下监控磁盘使用量并在超过阀值后自动发送报警邮件

最近Linux服务器磁盘使用量经常到100%,直到影响到正常服务出现故障才会去注意,做不到防患于未然,今天在网上搜集了资料,加上自己修改,写了一个shell脚本用于实时监控磁盘使用量并在超过阀值后自动发送报警邮件. 脚本简单说明:用df命令查看磁盘使用量信息,超过脚本设置的阀值(critical=90)90%,就会自动用sendEmail命令发送报警邮件(邮件smtp.email等需自行修改成真实存在的). 1.首先下载监测脚本(点击下载)或直接复制下面脚本代码存为disk_check.sh文件