Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
K

KDiskMark

> 编程语言
Open source

A simple open-source disk benchmark tool for Linux distros

1.7K stars0 likes1 views
WebsiteGitHub

About

A simple open-source disk benchmark tool for Linux distros

KDiskMark

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
  • Terminal (TUI) mode for environments without a graphical display

Report Example

…

Dependencies

Required

  • GCC/Clang C++17 (or later)
  • CMake >= 3.12
  • Extra CMake Modules >= 5.73
  • Qt with Widgets and DBus >= 5.9
  • PolicyKit Agent
    • PolkitQt-1 bindings.
  • Flexible I/O Tester with libaio >= 3.1
    • libaio development package.

External libraries

  • SingleApplication prevents launch of multiple application instances.

Installation

Binaries are available on the Releases page.

Install from the Flathub repository

bash
flatpak install flathub io.github.jonmagon.kdiskmark

Install from the Snap Store

[!WARNING]
Package is no longer maintained. It will remain available on Snap Store but will receive no updates.

bash
sudo snap install kdiskmark
sudo snap connect kdiskmark:removable-media # external storages

Debian / Ubuntu based distros

bash
sudo apt update
sudo apt install kdiskmark

Ubuntu users can also use the PPA:

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

Arch based distros

Available in the extra repository:

bash
sudo pacman -Syu kdiskmark

Development version from AUR:

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

Fedora

Available in the Fedora repository:

bash
sudo dnf install kdiskmark

openSUSE Tumbleweed

Available in the openSUSE Factory repository:

bash
sudo zypper install kdiskmark

Terminal mode (TUI)

KDiskMark can be used without a graphical environment (e.g. on a server or a virtual console). When no graphical display is available, an interactive full-screen terminal interface starts automatically; from a desktop terminal it can be forced with the --tui option:

bash
kdiskmark --tui
kdiskmark --tui /mnt/data   # adds the directory to the storage list

Everything configurable in the GUI is also editable in the TUI: profile, file size, loops count, storage (including adding an arbitrary directory), comparison unit, mix ratio, and language on the main screen; queues/threads per test, measuring and interval time, mode, test data, page cache flushing, O_DIRECT, CoW detection, and presets on the settings screen. The configuration is shared with the GUI.

Keys: Up/Down — navigation, Left/Right — change a value, Enter — run all tests or the focused one (on the Storage field — add a directory), E — settings screen, S — save the report, R — rescan storages, Q — quit.

Administrator privileges are requested over polkit, as in the GUI. On a virtual console the text agent pkttyagent is used automatically. In an SSH session polkit usually denies authentication for non-local users, so run the application as root there:

bash
sudo kdiskmark --tui

Building

Building a package using CPack

You can build KDiskMark by using the following commands:

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

Building with Qt5

To build KDiskMark with Qt5 instead of the default Qt6, use the USE_QT5 flag during the CMake configuration step:

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

Localization

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 and message for PolicyKit authorization into data/dev.jonmagon.kdiskmark.helper.policy.

Languages currently available:

  • Chinese (Simplified)
  • Chinese (Traditional)
  • Czech
  • Dutch
  • English (default)
  • Finnish
  • French
  • German
  • Hindi
  • Hungarian
  • Italian
  • Japanese
  • Korean
  • Polish
  • Portuguese (Brazilian)
  • Russian
  • Slovak
  • Spanish (Mexico)
  • Spanish (Spain)
  • Swedish
  • Turkish
  • Ukrainian

TODO

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

Special Thanks

  • Artem Grinev ([email protected]) for his help with assembling the AppImage package.

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.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++benchmarkingcppcrystaldiskmarkdbus

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言