Projects / simple disk benchmark

simple disk benchmark

sdb is a really simple program to benchmark disks. It only writes/reads data sequentially to/from a file and calculates the performance of this action. A memory buffer is used for input/output to get values close to the real performance of the disk or RAID system. You can use flags like O_DIRECT and O_SYNC to avoid buffering by the operating system. It is similar to dd, but there are some differences, since dd was not created for benchmarking a disk. It is possible to initialize the buffer with random values before writing them to the disk or a file on the disk. It is a simple but effective program to get the maximum speed of a disk. Due to the simplicity, you will get the results much faster than with a more complex benchmark.

Tags
Licenses
Operating Systems
Implementation

RSS Recent releases

  •  16 Feb 2013 01:26

    Release Notes: There is a minor bug in version 0.7: if first the "normal" throughput for large files with a big block size was calculated and then IOPS calculations were made, the measurement of the time was wrong. The time for both was used to calculate the throughput, which was wrong. If you measure them both separately, the values are correct.

    •  12 Feb 2013 21:45

      Release Notes: IOPS calculation is now possible. Thread synchronization was rewritten: it is more critical in order to calculate IOPS with several threads, the limit on the number of parallel threads is removed, and the output in verbose mode gives more information. CPU usage is calculated.

      •  18 Nov 2012 19:20

        Release Notes: The second buffer is now initialized with memset() before memcpy(). This fixes the strange differences between memcpy() and bcopy(). Now -F activates the fsync() call after file operation. This release tries to find out the I/O scheduler being used and print it. /etc/mtab is used to find devices and filesystems instead of /proc/mounts. Some information from uname is printed in verbose mode as well as some timing values, maximum throughput, and the ideal one (maximum*threads). The load of the system is noted right before and after the real benchmark.

        •  13 Nov 2012 22:01

          Release Notes: There is no functional change in this release. The verbose output is reformatted, users can add comments, and the hostname and date/time are printed. This release tries to find the device where the files reside and the used filesystem (maybe someone forgot to mount the drive?). The comment is helpful to include if, for example, someone changes the Cache from WriteBack to WriteThrough. With symbolic links to the real devices, you can test several drives in parallel. This might be helpful if you have, for example, one RAID controller with two backplanes. You could build volumes per BP, test them in parallel, and find the limits of the RAID controller.

          •  11 Nov 2012 03:25

            Release Notes: This is the initial release on Freecode.

            RSS Recent comments

            10 Nov 2012 12:35 DirkGeschke

            Initial announcement on freecode: Version 0.4

            Screenshot

            Project Spotlight

            XOWA

            An offline application for Wikipedia (and other wikis).

            Screenshot

            Project Spotlight

            Sculptor

            A DSL and code generator for Java enterprise applications.