Source From Here
Question
How can I use dd command on a Linux to test I/O performance of my hard disk drive? How do I check the performance of a hard drive including the read and write speed on a Linux operating systems? You can use the following commands on a Linux or Unix-like systems for simple I/O performance test:
In this tutorial you will learn how to use the dd command to test disk I/O performance.
Use dd command to monitor the reading and writing performance of a disk device
The dd command is useful to find out simple sequential I/O performance.
Understanding dd command options
In this example, I’m using RAID-10 (Adaptec 5405Z with SAS SSD) array running on a Ubuntu Linux 14.04 LTS server. The basic syntax is as follows to find out server throughput:
Sample outputs:
Please note that one gigabyte was written for the test1.img and 450 MB/s was server throughput for this test. Where:
Finding server latency time
In this example, 512 bytes were written one thousand times to get RAID10 server latency time:
Sample outputs:
Please note that server throughput and latency time depends upon server/application load too. So I recommend that you run these tests on a newly rebooted server as well as peak time to get better idea about your workload. You can now compare these numbers with all your devices.
But why the server throughput and latency time are so low?
Low values does not mean you are using slow hardware. The value can be low because of the HARDWARE RAID10 controller’s cache.
Use hdparm command to see buffered and cached disk read speed
I suggest you run the following commands 2 or 3 times Perform timings of device reads for benchmark and comparison purposes:
To perform timings of cache reads for benchmark and comparison purposes again run the following command 2-3 times (
note the -T option):
OR combine both tests:
Sample outputs:
Again note that due to filesystems caching on file operations, you will always see high read rates.
Use dd command on Linux to test read speed
To get accurate read test data, first discard caches before testing by running the following commands:
One execution result:
Linux Laptop example
Run the following command:
Question
How can I use dd command on a Linux to test I/O performance of my hard disk drive? How do I check the performance of a hard drive including the read and write speed on a Linux operating systems? You can use the following commands on a Linux or Unix-like systems for simple I/O performance test:
In this tutorial you will learn how to use the dd command to test disk I/O performance.
Use dd command to monitor the reading and writing performance of a disk device
The dd command is useful to find out simple sequential I/O performance.
Understanding dd command options
In this example, I’m using RAID-10 (Adaptec 5405Z with SAS SSD) array running on a Ubuntu Linux 14.04 LTS server. The basic syntax is as follows to find out server throughput:
- # Syntax
- # dd if=/dev/input.file of=/path/to/output.file bs=block-size count=number-of-blocks oflag=dsync
- ## GNU dd syntax ##
- ##########################################################
- ##***[Adjust bs and count as per your needs and setup]**##
- ##########################################################
- dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
- dd if=/dev/zero of=/tmp/test2.img bs=64M count=1 oflag=dsync
- dd if=/dev/zero of=/tmp/test3.img bs=1M count=256 conv=fdatasync
- dd if=/dev/zero of=/tmp/test4.img bs=8k count=10k
- dd if=/dev/zero of=/tmp/test4.img bs=512 count=1000 oflag=dsync
- ## OR alternate syntax for GNU/dd ##
- dd if=/dev/zero of=/tmp/testALT.img bs=1G count=1 conv=fdatasync
Please note that one gigabyte was written for the test1.img and 450 MB/s was server throughput for this test. Where:
Finding server latency time
In this example, 512 bytes were written one thousand times to get RAID10 server latency time:
Sample outputs:
Please note that server throughput and latency time depends upon server/application load too. So I recommend that you run these tests on a newly rebooted server as well as peak time to get better idea about your workload. You can now compare these numbers with all your devices.
But why the server throughput and latency time are so low?
Low values does not mean you are using slow hardware. The value can be low because of the HARDWARE RAID10 controller’s cache.
Use hdparm command to see buffered and cached disk read speed
I suggest you run the following commands 2 or 3 times Perform timings of device reads for benchmark and comparison purposes:
- ### Buffered disk read test for /dev/sda ##
- hdparm -t /dev/sda1
- ## OR ##
- hdparm -t /dev/sda
- ## Cache read benchmark for /dev/sda ###
- hdparm -T /dev/sda1
- ## OR ##
- hdparm -T /dev/sda
- hdparm -Tt /dev/sda
Sample outputs:
Again note that due to filesystems caching on file operations, you will always see high read rates.
Use dd command on Linux to test read speed
To get accurate read test data, first discard caches before testing by running the following commands:
- flush
- echo 3 | sudo tee /proc/sys/vm/drop_caches
- time dd if=/path/to/bigfile of=/dev/null bs=8k
Linux Laptop example
Run the following command:
- ### Debian Laptop Throughput With Cache ##
- dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct
- ### Deactivate the cache ###
- hdparm -W0 /dev/sda
- ### Debian Laptop Throughput Without Cache ##
- dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct
沒有留言:
張貼留言