search
  • Sign In
  • Sign Up
Password reset successful

Follow the proiects vou are interested in andi aet the latestnews about them taster

Table of Contents
Using dd for basic disk speed testing
Using fio for advanced I/O benchmarking
Monitoring real-time I/O with iostat
Home Operation and Maintenance Linux Operation and Maintenance How to measure disk I/O performance in Linux

How to measure disk I/O performance in Linux

Oct 08, 2025 am 02:09 AM

Use dd for quick testing, fio for deep analysis, and iostat for real-time monitoring. dd can evaluate the sequential read and write speed, such as dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct test write; fio supports multiple I/O modes, such as fio --name=randwrite --rw=randwrite --bs=4k --direct=1 --iodepth=16 simulate random write IOPS; iostat -x 1 checks %util, await, rkB/s and other indicators in real time to judge disk bottlenecks. Combining the three, it can comprehensively evaluate Linux disk performance.

How to measure disk I/O performance in Linux

To measure disk I/O performance in Linux, you can use a combination of built-in tools and simple benchmarks that evaluate read, write, and random access speeds. The most effective methods involve dd , fio , and iostat , each serving different purposes depending on whether you want quick tests or detailed analysis.

Using dd for basic disk speed testing

dd is a simple command-line tool available on almost every Linux system. It's useful for a quick assessment of sequential read/write performance.

To test write speed:

dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct status=progress

This creates a 1GB file using direct I/O (bypassing cache), giving a realistic write speed. After the test, remove the file:

rm testfile

To test read speed, use:

dd if=testfile of=/dev/null bs=1G iflag=direct status=progress

Note: Results are rough and can be affected by filesystem settings and caching. Use oflag=direct and iflag=direct to minimize cache impact.

Using fio for advanced I/O benchmarking

fio (Flexible I/O Tester) is a powerful tool for simulating various I/O workloads—sequential, random, read/write mix, different block sizes, and queue depths.

Install fio (on Debian/Ubuntu):

sudo apt install fio

Example: Test random write IOPS with 4K blocks:

fio --name=randwrite --rw=randwrite --bs=4k --count=1000 --size=1G --runtime=60 --time_based --direct=1 --ioengine=libaio --iodepth=16 --filename=/tmp/fiotest

Key options:

  • --rw=randwrite : Random writes (use randread, read, write, etc.)
  • --bs=4k : Block size (simulate database or small-file workloads)
  • --direct=1 : Bypass page cache
  • --iodepth=16 : Simulate concurrent I/O operations
  • --ioengine=libaio : Use asynchronous I/O for better performance simulation

fio outputs detailed stats like bandwidth, IOPS, and latency—ideal for tuning storage systems.

Monitoring real-time I/O with iostat

iostat (part of sysstat package) shows live disk utilization and throughput, helping identify bottlenecks during system operation.

Install and run:

sudo apt install sysstat
iostat -x 1

This prints extended statistics every second. Key metrics include:

  • %util : Device utilization percentage. Consistently near 100% indicating satisfaction.
  • await : Average wait time (ms) for I/O requests.
  • svctm : Average service time (deprecated but still shown).
  • rkB/s & wkB/s : Read and write throughput in KB per second.

Use this during application load to see how disks behave under real conditions.

For accurate results, always unmount the target filesystem or use a dedicated test file, and avoid running benchmarks on production systems during peak hours. Warm up the system with a preliminary run when using fio.

Basically, start with dd for a quick check, use fio for deep analysis, and rely on iostat for ongoing monitoring. Each tool gives insight into different aspects of disk performance.

The above is the detailed content of How to measure disk I/O performance in Linux. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

ArtGPT

ArtGPT

AI image generator for creative art from text prompts.

Stock Market GPT

Stock Market GPT

AI powered investment research for smarter decisions

Popular tool

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to manage software packages using Dnf and Rpm in Linux? How to manage software packages using Dnf and Rpm in Linux? Mar 07, 2026 am 01:50 AM

dnfinstall prompts packagenotfound because it queries the enabled warehouse rather than the local installation status; rpm-q queries the local RPM database, and the scopes of the two are different.

How to setup file sharing using Samba on Linux? (SMB Protocol) How to setup file sharing using Samba on Linux? (SMB Protocol) Mar 13, 2026 am 12:33 AM

The main reason why Windows cannot see the Samba share is that the firewall blocks UDP137–139/TCP445 or NetBIOS name resolution fails; it is necessary to confirm that the workgroup is consistent, the interfaces are configured correctly, the file permissions match forceuser/forcegroup, and set doscharset=UTF-8 to solve Chinese garbled characters.

How to monitor system performance and resources in Linux? (Top & Htop) How to monitor system performance and resources in Linux? (Top & Htop) Mar 06, 2026 am 01:04 AM

The total top CPU usage is not 100% because it is calculated based on a single core, and the maximum is 800% for an 8-core system; the htop terminal size error needs to be fixed with eval$(resize); the real memory pressure is available rather than used; top command line truncation can be solved with the -c parameter.

How to extend a Logical Volume (LVM) in Linux without downtime? How to extend a Logical Volume (LVM) in Linux without downtime? Mar 13, 2026 am 12:53 AM

Logical volumes and file systems can be expanded online. You need to expand the LV first and then the file system. It is recommended to use lvextend-r for automatic synchronization adjustment, but you must ensure that the LVM and file system tool versions are compatible.

How to check open ports and listening services in Linux? (Netstat & SS) How to check open ports and listening services in Linux? (Netstat & SS) Mar 10, 2026 am 01:08 AM

Netstat displays fewer LISTEN ports than ss because it does not display process information by default that non-root users do not have access to; ss can read all listening sockets by default without process names, and sudonetstat-tulpn is required to display them completely.

How to set up SSH key authentication on Linux? (Passwordless Login) How to set up SSH key authentication on Linux? (Passwordless Login) Mar 11, 2026 am 12:46 AM

It is recommended to use ssh-keygen-ted25519 to generate a key pair, because it is faster, more secure, and has a shorter key than the default RSA; it is necessary to strictly set the ~/.ssh directory permissions to 700 and authorized_keys to 600, and use ssh-v to confirm whether the client is Offering public key and whether the server rejects it.

How to format disk partitions using the command line in Linux? How to format disk partitions using the command line in Linux? Mar 15, 2026 am 12:01 AM

When fdisk is stuck at the Command prompt, it is normally waiting for input. Enter q to exit safely; you must umount before mkfs, otherwise it may fail silently; partedmkpart does not support the specified file system type, and mkfs needs to be executed separately.

How to configure a static IP address on Linux? (Netplan & NetworkManager) How to configure a static IP address on Linux? (Netplan & NetworkManager) Mar 14, 2026 am 12:02 AM

Netplan reports "InvalidYAML" when configuring a static IP due to indentation errors, missing spaces after colons, or mixed tabs; gateway4 has been deprecated and routes to:default must be used instead; NetworkManager needs to be modified before down/up takes effect; the renderer field is used to determine the backend during coexistence; incorrect DNS configuration will cause ping to succeed but curl to fail.

Related articles