Cross platform disk benchmark utility written in java.
- Java cross platform solution
- Benchmark IO read/write performance
- Intuitive graphs for: sample bw, max, min, cum avg, access time
- Adjustable block size, block qty and sample qty
- Single or multi file option
- Sequential or random option
- Detects drive model info
- Save and load benchmarks for review
- Auto clear disk cache (when sudo or admin)
https://sourceforge.net/projects/jdiskmark/
-
Install java 21
-
Verify java 21 is installed:
C:\Users\username>java --version java 21.0.1 2023-10-17 LTS Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29) Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing) -
Extract release zip archive into desired location.
Examples: /Users/username/jdiskmark-v0.5 /opt/jdiskmark-v0.5
Note: Running without sudo or a windows administrator will require manually clearing the disk write cache before performing read benchmarks.
-
Open a terminal or shell in the extracted directory.
-
run command:
$ java -jar jDiskMark.jarIn windows double click executable jar file.
-
Drop cache manually:
- Linux:
sudo sh -c "sync; 1 > /proc/sys/vm/drop_caches" - Mac OS:
sudo sh -c "sync; purge" - Windows: Run included EmptyStandbyList.exe or RAMMap64.exe With RAMMap64 invalidate disk cache with Empty > Empty Standby List
Note: Take advantage of automatic clearing of the disk cache for write read benchmarks start with sudo or an administrator windows shell.
- Linux:
sudo java -jar jDiskMark.jar - Mac OS:
sudo java -jar jDiskMark.jar - Windows: start powershell as administrator then
java -jar jDiskMark
jdiskmark client is developed with NetBeans 20 and Java 21
Source code is available on our github repo
- update for java 21 LTS w NetBeans 20 environment: eclipselink 4.0, jpa 3.1, modelgen 5.6, annotations 3.1, xml.bind 4.0
- increased drive information default col width to 170
- time format updated to
yyyy-MM-dd HH:mm:ss - default to 200 marks
- replace Date w LocalDateTime to avoid deprecated @Temporal
- disk access time (ms) - plotting disabled by default
- replace display of transfer size with access time in run panel
- auto clear disk cache for combined write read benchmarks
- save and load benchmarks and graph series
- updated eclipselink to 2.6 allows auto schema update
- improved gui initialization
- platform disk model info:
- windows: via powershell query
- linux: via
df /data/path&lsblk /dev/path --output MODEL - osx: via
df /data/path&diskutil info /dev/disk1
- persist recent run with embedded derby db
- remove "transfer mark number" from graph
- changed graph background to dark gray
- resizing main frame stretches tabbed pane instead of empty panel
- auto generate zip release ie.
jdiskmark-v0.2.zip - added tabbed pane near bottom to organize new controls
- format excessive decimal places
- show recent runs (not persisted)
- default to nimbus look and feel
- initial release
- store benchmark data for each run and load when selected
- upload benchmarks to jdiskmark.net portal (anonymous/w login)
- local app log for remote diagnostics
- detect and display os processor info
- selecting a drive location displays detected drive information below
- disk capacity and drive letter (available on windows)
- speed curves w rw at different tx sizes
- response time histogram > distribution of IO
- IOPS charts, review potential charts