Skip to main content

cdmpy

Python script packaging of fio-cdm, a python script to generate CrystalDiskMark-style test result with fio. Should work across multi platforms.

Requirement

  • fio
  • python3

Feature

  • Provide some options of CrystalDiskMark, e.g., number of test runs, test file size, mixed r/w tests, zero buffers, etc
  • Show IOPS and latency results for random read/write tests. This actually combines the "default", "peak performance" and "real world performance" tests in CrystalDiskMark
  • Easy to add/customize new tests in command-line arguments
  • Parse fio result in json format to achieve more stability

Installation

Install via Python pip install .

Usage

Call script via cdm after pip installation from anywhere.

usage: cdm [target] [-h] [-0] [-a job] [-E] [-f jobfile] [-n number] [-s size] [-x [mix]]

positional arguments:
  target      The path of the directory to test. Default to current directory.

optional arguments:
  -h, --help  show this help message and exit
  -0          Initialize buffers with zeros. Default to use random buffers.
  -a job      Manually add multiple jobs. Format is "seq|rnd,<queue depth>,<thread number>".
              This overrides the preset jobs. This option can be used more than once.
  -E          Disable extra information (iops, latency) for random IO tests. Default is enabled.
  -f jobfile  Save jobfile and quit without running fio. Use "-" to print to stdout.
  -n number   Number of tests, default is 5.
  -s size     The size of file I/O. It is directly passed to fio. Default is 1G.
  -x [mix]    Add mixed rw test. Default is disabled. <mix> is read percentage. Default is 70.

Note:
Recommend to put the <target> argument as the first one since some of the optional arguments will consume it.

Sample output

The default tests are same as CrystalDiskMark

tests: 5, size: 1G, target: . 173.3GiB/405.1GiB
|Name        | Read(MB/s)|Write(MB/s)|  Mix(MB/s)|
|------------|-----------|-----------|-----------|
|SEQ1M Q8 T1 |    2997.60|    2056.19|    1438.19|
|SEQ1M Q1 T1 |    1986.94|    1461.67|     941.04|
|RND4K Q32T16|    1816.04|     456.98|     434.18|
|... IOPS    |  443350.17|  111546.75|  105987.62|
|... latency |    1153.89|    4587.90|    2800.43|
|RND4K Q1 T1 |      54.20|     164.86|      34.43|
|... IOPS    |   13232.15|   40248.87|    8405.20|
|... latency |      74.76|      23.04|      67.78|

Examples

Set test file size to 512MB, 5 test runs with read, write and mix tests:

cdm -s 512m -n 5 -x

Manually add jobs to replace the default ones:

cdm -a seq,1,1 -a seq,32,1 -a rnd,16,8

Show the equivalent fio command directly (without running the test):

cdm -f - | fio --showcmd -

Similar projects

Shell version: https://github.com/buty4649/fio-cdm

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdmpy-0.3.2.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cdmpy-0.3.2-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file cdmpy-0.3.2.tar.gz.

File metadata

  • Download URL: cdmpy-0.3.2.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for cdmpy-0.3.2.tar.gz
Algorithm Hash digest
SHA256 2594803c014ff88a13f13940a92305ca857748ab42313614627508656a4ddcb1
MD5 66fe4417d529e5eff1d5badc686c312b
BLAKE2b-256 1072c6ff5114f0157006426864e10c08e67031ac72702eadadf03e081d1d32f8

See more details on using hashes here.

File details

Details for the file cdmpy-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: cdmpy-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for cdmpy-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 017c0d68a4acd28da08fed376e0555a5fddaeb0151c9421d053bfc2c2f2f8e07
MD5 5b65b1be90c5d928873fcfc321ab0393
BLAKE2b-256 e9340ec694ddbb08540d9a2bc3d81e49d5508fa7fdff9d9080f3fd31aade5010

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 files

0.3.1

2 files

0.3.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page