KDiskMark icon indicating copy to clipboard operation
KDiskMark copied to clipboard

A simple open-source disk benchmark tool for Linux distros

KDiskMark

License: GPL v3 GitHub (pre-)release Main Codacy Badge

KDiskMark is an HDD and SSD benchmark tool with a very friendly graphical user interface. KDiskMark with its presets and powerful GUI calls Flexible I/O Tester and handles the output to provide an easy to view and interpret comprehensive benchmark result. The application is written in C++ with Qt and doesn't have any KDE dependencies.

Features

  • Configurable block size, queues, and threads count for each test
  • Many languages support
  • Report generation

Report Example

                        KDiskMark (3.0.0): https://github.com/JonMagon/KDiskMark
                    Flexible I/O Tester (fio-3.16): https://github.com/axboe/fio
--------------------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

[Read]
Sequential   1 MiB (Q=  8, T= 1):   508.897 MB/s [    497.0 IOPS] < 13840.05 us>
Sequential   1 MiB (Q=  1, T= 1):   438.278 MB/s [    428.0 IOPS] <  2280.14 us>
    Random   4 KiB (Q= 32, T= 1):   354.657 MB/s [  88664.6 IOPS] <   352.37 us>
    Random   4 KiB (Q=  1, T= 1):    44.166 MB/s [  11041.6 IOPS] <    88.48 us>

[Write]
Sequential   1 MiB (Q=  8, T= 1):   460.312 MB/s [    449.5 IOPS] < 15153.11 us>
Sequential   1 MiB (Q=  1, T= 1):   333.085 MB/s [    325.3 IOPS] <  2349.82 us>
    Random   4 KiB (Q= 32, T= 1):   315.170 MB/s [  78792.5 IOPS] <   383.86 us>
    Random   4 KiB (Q=  1, T= 1):    91.040 MB/s [  22760.3 IOPS] <    39.80 us>

Profile: Default
   Test: 1 GiB (x5) [Measure: 5 sec / Interval: 5 sec]
   Date: 2022-08-24 16:10:33
     OS: opensuse-tumbleweed 20220821 [linux 5.19.2-1-default]

Dependencies

Build

Runtime

  • Qt with Widgets and DBus >= 5.9
  • Flexible I/O Tester with libaio >= 3.1
    • If you build FIO from source, install libaio-dev package.
  • KAuth Library

Installation

Binaries are available on the Releases page.

Ubuntu based distros

sudo add-apt-repository ppa:jonmagon/kdiskmark
sudo apt update
sudo apt install kdiskmark

Arch based distros

KDiskMark is included in the official community repo. You can install it like any other package:

sudo pacman -Syu kdiskmark

Development version can be installed from AUR kdiskmark-git package.

git clone https://aur.archlinux.org/kdiskmark-git.git
cd kdiskmark-git
makepkg -si

Fedora

KDiskMark is included in the official Fedora repo. You can install it like any other package:

sudo dnf install kdiskmark

openSUSE Tumbleweed

sudo zypper install kdiskmark

Building

Building a package using CPack

You can build KDiskMark by using the following commands:

mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release ..
cpack -G DEB # Or RPM, ZIP etc.

Localization Crowdin

To help with localization you can use Crowdin or translate files in data/translations with Qt Linguist directly. To add a new language, copy data/translations/kdiskmark.ts to data/translations/kdiskmark_<ISO 639-1 language code>_<ISO 3166-1 alpha-2 language code>.ts, translate it, then add the file to the TS_FILES variable in CMakeLists.txt, and create a pull request. It is also possible to add localized Comment and Keywords sections into data/kdiskmark.desktop.

Languages currently available:

  • Chinese (Simplified)
  • Czech
  • English (default)
  • French
  • German
  • Hindi
  • Hungarian
  • Italian
  • Polish
  • Portuguese (Brazilian)
  • Russian
  • Slovak
  • Spanish (Mexico)
  • Turkish
  • Ukrainian

TODO

  • [ ] Text-based user interface
  • [x] Performance profiles (mix, peak, real-world)

Special Thanks

Thanks to the package maintainers, translators, and all users for supporting the project.

Credits

Application Icon
Copyright (c) https://www.iconfinder.com/baitisstudio

If you have any ideas, critics, suggestions or whatever you want to call it, please open an issue.