How do I monitor disk activity on a specific drive?
dstat is better than iostat for strictly monitoring disk activity.
I am running the following command while moving files from one harddrive to another
dstat -D sda,sdc
for more info, have a look at this page
https://help.ubuntu.com/community/DiskPerformance
I'm not skilled in this area, but iostat comes to mind. You can install it with the sysstat package. Good luck!
Using iostat
from the sysstat
package provides a single snapshot of results since startup. Use of the interval parameter will append the results for only the last interval to the output. Example, iostat 10
will first show the "since boot" values then continue to add the last 10 seconds of statistics to the output, every 10 seconds. Include the -y
option to omit the first display of statistics since boot but understand that the command will appear idle for the specified interval while the system collects the first snapshot.
I've found this most effective when combined with the watch
command and indicating to only collect for a single interval of statistics. For example:
watch -t -n 0.1 iostat -p sda,sdc -d -t -y 5 1
This gives a refresh every 5.1 seconds of activity statistics for the last 5 seconds. To break down the options and parameters...
- The first
-t
tellswatch
to omit the header. This is to avoid confusion that otherwise the header will include "Every 0.1s" which does not represent the snapshot of data. - The
-n 0.1
tellswatch
to run the following command every 0.1 seconds. This is the smallest interval forwatch
(procps-ng 3.3.9
) but don't worry, it isn't actually running the command every 0.1 seconds. It will run the command 0.1 seconds after the prior instance completes. - The
-p sda,sdc
tellsiostat
to only display stats for these devices. - The
-d
tellsiostat
to only display device utilization, relevant since the question was concerning disk activity. - The second
-t
switch tellsiostat
to include the time of the refresh in the statistics. This is useful since the earlier omission of thewatch
header removed the time display that would have been there. - The
-y
switch omits the first screen of "since boot" statistics from the interval display. Without this the result would be a display of the statistics since boot updating at the interval of the watch command. - The
5 1
are theiostat
interval parameters. In this case capture 5 seconds of statistics once (the 1). Because the-y
switch was used this will only present a single screen of data.
It will take 5 seconds for iostat
to collect the data, it will then be displayed in watch
, and 0.1 seconds later watch will trigger the iostat
command again. 5 seconds later the new data will replace the old, watch
will wait 0.1 seconds, wash, rinse, repeat...