{"id":21989381,"url":"https://github.com/makelinux/performance","last_synced_at":"2025-04-30T11:33:34.577Z","repository":{"id":148626854,"uuid":"94131079","full_name":"makelinux/performance","owner":"makelinux","description":"Disk and FS throughput measurement utility with accuracy (standard deviation) calculation","archived":false,"fork":false,"pushed_at":"2018-09-19T17:14:24.000Z","size":46,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-30T15:47:13.737Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/makelinux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-12T19:07:18.000Z","updated_at":"2024-02-24T11:45:13.000Z","dependencies_parsed_at":"2023-06-15T16:30:17.547Z","dependency_job_id":null,"html_url":"https://github.com/makelinux/performance","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makelinux%2Fperformance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makelinux%2Fperformance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makelinux%2Fperformance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makelinux%2Fperformance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/makelinux","download_url":"https://codeload.github.com/makelinux/performance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251691657,"owners_count":21628366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T19:29:16.103Z","updated_at":"2025-04-30T11:33:34.541Z","avatar_url":"https://github.com/makelinux.png","language":"C","readme":"# Performance and throughput measurement utility\n\nDisk and FS throughput measurement utility with accuracy\n(standard deviation) calculation\n\nMotivation\n* dd is too simple and not script friendly.\n* fio is too complex and not script friendly.\n* The accuracy of results is unknown.\n* Utilities must be run multiple times to achieve reliable results.\n\n**Features:**\n\n## Simplicity\n\nSimple command line interface, simple usage and simple implementation on C.\n\n## Reliability\n\nCalculates standard deviation of mean with function gsl_rstat_sd_mean from GNU Scientific Library.\nThe measurements continue until standard deviation is less than specified stdev_percent as a percentage\nfrom the mean value. The default value of stdev_percent is 10%.\n\n## Batch scripting friendly\n\nIntermediate and final standard deviation are printed to stderr to\nsimplify usage of throughput results.\n\nOption --quiet suppresses intermediate data and gives only final results.\nOption --batch prints only numbers in KiB/s, ready for integer arithmetic\n\nSample scripting usage:\n```\na=($(throughput --quiet --batch 2\u003e\u00261))\necho \"Overall (mean) throughput: ${a[0]}\"\necho \"Standard deviation of mean: ${a[1]}\"\n```\nor\n\n```\nTP=(throughput --quiet --batch 2\u003e /dev/null)\n```\n\nIntegration with git bisect:\n\ntest $(throughput --batch --quiet 2\u003e /dev/null) -gt 100 \u0026\u0026 git bisect good || git bisect bad\n\n## Comparison mode\n\nWhen two arguments are given, the tools measures both throughputs and calculates\nabsolute and percents change.\n\n## Other features\n* Multithreaded mode\n* Read and write mode\n* directory, file and block device target\n\n## Compare usage with other tools\n\nThe following sample groups have similar parameters:\n\n```bash\n./throughput\nfio --name=t --bs=128M --size=1280M --fdatasync=1 --direct=1 --numjobs=1\nioping -i 0 -c 2 -s 128M -c 10  .\n\n./throughput --write\nfio --name=t --rw=write --bs=128M --size=1280M --fdatasync=1 --direct=1 --numjobs=1\n\n./throughput --threads=10\nfio --name=test --rw=write --bs=128M --size=128M --fdatasync=1 --direct=1 --numjobs=10\n\nsudo ./throughput /dev/sda\nsudo hdparm -t /dev/sda\n\n```\n\n## Notes\n\n* requires packages libgsl-dev and gnulib\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakelinux%2Fperformance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakelinux%2Fperformance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakelinux%2Fperformance/lists"}