<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IOPS on 吾爱主机</title><link>https://blog.waihost.com/tags/iops/</link><description>Recent content in IOPS on 吾爱主机</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Thu, 20 Mar 2025 16:53:38 +0800</lastBuildDate><atom:link href="https://blog.waihost.com/tags/iops/index.xml" rel="self" type="application/rss+xml"/><item><title>硬盘速度IOPS评估测试</title><link>https://blog.waihost.com/posts/disk-iops-benchmark/</link><pubDate>Thu, 20 Mar 2025 16:53:38 +0800</pubDate><guid>https://blog.waihost.com/posts/disk-iops-benchmark/</guid><description>&lt;img src="https://blog.waihost.com/images/covers/disk-iops-benchmark.svg" alt="Featured image of post 硬盘速度IOPS评估测试" /&gt;&lt;p&gt;在 Debian 12 中测试硬盘的 &lt;strong&gt;IOPS（每秒输入输出操作次数）&lt;/strong&gt;，推荐使用专业的磁盘性能测试工具 &lt;code&gt;fio&lt;/code&gt;（Flexible I/O Tester）。以下是详细操作步骤：&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="1-安装测试工具"&gt;&lt;a href="#1-%e5%ae%89%e8%a3%85%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;1. 安装测试工具&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;首先安装 &lt;code&gt;fio&lt;/code&gt; 和必要的依赖：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install fio -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h3 id="2-使用"&gt;&lt;a href="#2-%e4%bd%bf%e7%94%a8" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;2. 使用 &lt;code&gt;fio&lt;/code&gt; 测试 IOPS&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="基本语法"&gt;&lt;a href="#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;基本语法&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fio --name=测试名称 --ioengine=libaio --direct=1 --rw=读写模式 --bs=块大小 --size=测试文件大小 --numjobs=并发任务数 --runtime=测试时间 --time_based --group_reporting
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="示例测试-4k-随机读的-iops"&gt;&lt;a href="#%e7%a4%ba%e4%be%8b%e6%b5%8b%e8%af%95-4k-%e9%9a%8f%e6%9c%ba%e8%af%bb%e7%9a%84-iops" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;示例：测试 4K 随机读的 IOPS&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo fio --name=random_read --ioengine=libaio --direct=1 --rw=randread --bs=4k --size=1G --numjobs=1 --iodepth=32 --runtime=60 --time_based --group_reporting
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="参数说明"&gt;&lt;a href="#%e5%8f%82%e6%95%b0%e8%af%b4%e6%98%8e" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;参数说明&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--rw=randread&lt;/code&gt;：测试随机读（可选：&lt;code&gt;randwrite&lt;/code&gt;、&lt;code&gt;randrw&lt;/code&gt;、&lt;code&gt;read&lt;/code&gt;、&lt;code&gt;write&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--bs=4k&lt;/code&gt;：模拟 4KB 小文件操作（更贴近真实 IOPS 场景）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--iodepth=32&lt;/code&gt;：队列深度（模拟高并发请求）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--size=1G&lt;/code&gt;：生成 1GB 的临时测试文件。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--numjobs=1&lt;/code&gt;：并发任务数（可增加模拟多线程负载）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--runtime=60&lt;/code&gt;：测试持续 60 秒。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-测试场景示例"&gt;&lt;a href="#3-%e6%b5%8b%e8%af%95%e5%9c%ba%e6%99%af%e7%a4%ba%e4%be%8b" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;3. 测试场景示例&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="场景14k-随机写-iops"&gt;&lt;a href="#%e5%9c%ba%e6%99%af14k-%e9%9a%8f%e6%9c%ba%e5%86%99-iops" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;场景1：4K 随机写 IOPS&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo fio --name=random_write --ioengine=libaio --direct=1 --rw=randwrite --bs=4k --size=1G --numjobs=1 --iodepth=32 --runtime=60 --time_based --group_reporting
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="场景2混合读写70读--30写"&gt;&lt;a href="#%e5%9c%ba%e6%99%af2%e6%b7%b7%e5%90%88%e8%af%bb%e5%86%9970%e8%af%bb--30%e5%86%99" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;场景2：混合读写（70%读 + 30%写）&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo fio --name=mixed_io --ioengine=libaio --direct=1 --rw=randrw --rwmixread=70 --bs=4k --size=1G --numjobs=4 --iodepth=64 --runtime=120 --time_based --group_reporting
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h3 id="4-解读测试结果"&gt;&lt;a href="#4-%e8%a7%a3%e8%af%bb%e6%b5%8b%e8%af%95%e7%bb%93%e6%9e%9c" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;4. 解读测试结果&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;运行完成后，重点关注以下输出：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;read: IOPS=xxxx, BW=xxMiB/s (xxMB/s)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;write: IOPS=xxxx, BW=xxMiB/s (xxMB/s)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; lat (usec): min=xx, max=xx, avg=xx, stdev=xx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IOPS&lt;/strong&gt;：每秒操作次数（值越高性能越好）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BW&lt;/strong&gt;：带宽（吞吐量）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lat&lt;/strong&gt;：延迟（越低越好）。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="5-其他工具辅助参考"&gt;&lt;a href="#5-%e5%85%b6%e4%bb%96%e5%b7%a5%e5%85%b7%e8%be%85%e5%8a%a9%e5%8f%82%e8%80%83" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;5. 其他工具（辅助参考）&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="a"&gt;&lt;a href="#a" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;a. &lt;code&gt;dd&lt;/code&gt; 测试连续读写速度（非 IOPS）&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# 测试连续写入速度（1GB文件，块大小1M）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dd if=/dev/zero of=./testfile bs=1M count=1024 oflag=direct status=progress
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# 测试连续读取速度
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dd if=./testfile of=/dev/null bs=1M status=progress
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="b-使用"&gt;&lt;a href="#b-%e4%bd%bf%e7%94%a8" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;b. 使用 &lt;code&gt;iostat&lt;/code&gt; 监控实时 IO&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install sysstat -y
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iostat -d -x 1 # 每秒刷新一次磁盘统计信息
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h3 id="6-注意事项"&gt;&lt;a href="#6-%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;6. 注意事项&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;测试目标选择&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果测试物理硬盘，建议直接指定设备路径（如 &lt;code&gt;/dev/sdX&lt;/code&gt;），但需注意&lt;strong&gt;这会覆盖数据&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;若测试文件系统性能，建议在未使用的目录生成临时文件（如本例中的 &lt;code&gt;./testfile&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;避免缓存影响&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;使用 &lt;code&gt;--direct=1&lt;/code&gt; 绕过系统缓存，直接访问磁盘。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;测试前清理缓存（可选）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SSD/HDD 差异&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSD 的 IOPS 通常远高于 HDD（尤其是随机读写）。&lt;/li&gt;
&lt;li&gt;NVMe SSD 需结合高队列深度（如 &lt;code&gt;--iodepth=64&lt;/code&gt;）发挥性能。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id="7-示例结果对比"&gt;&lt;a href="#7-%e7%a4%ba%e4%be%8b%e7%bb%93%e6%9e%9c%e5%af%b9%e6%af%94" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;7. 示例结果对比&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SATA SSD（4K 随机读）&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;IOPS ≈ 80,000-100,000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;NVMe SSD（PCIe 4.0, 4K 随机读）&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;IOPS ≈ 1,000,000+
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;HDD（7200 RPM, 4K 随机读）&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;IOPS ≈ 80-150
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;通过 &lt;code&gt;fio&lt;/code&gt; 的灵活配置，可以模拟真实场景的负载压力，准确评估硬盘的 IOPS 性能。建议根据实际应用需求调整测试参数（如块大小、队列深度、读写比例）。&lt;/p&gt;</description></item></channel></rss>