I'm considering upgrading the storage system for some of my servers, and all the guides and manuals advise to consider the storage usage patterns of your app before deciding on a (RAID? SSD? iSCSI? NAS?) solution.
Is there a tool I can use which can tell me:
- if my servers are doing mostly sequential or random IO,
- if I'm doing more reads or more writes,
- the average read and write size,
- and whatever other info I can use to make a decision?
I know about iostat, and it seems I can use it to answer question 2. But I think I need other tools to answer the other questions.
It seems that people usually like to make educated guesses in these matters based on the running software, but I would much rather measure than reason.
The OS is ubuntu 8.04, but I'm willing to change the OS if something else has better measuring tools.
collectl can answer your questions 1, 2, and 3.
Also you might check out seekwatcher.
You might also check out
munin
and specifically thediskstat
plugin which will give you nice fun graphs of:Example: http://mirror.inode.at/munin/inode.at/mirror.inode.at.html#Disk
Perhaps one of the advantages of using something more broad in scope like
munin
is that you will have the ability to correlate data between different subsystems more easily than you would just looking solely at IO data.Current distribution versions of
munin
(as of this writing, at least) do not have this plugin by default, so you'll have to grab it and install it manually. Here's another link worth reading about the plugin:http://blogs.amd.co.at/robe/2008/12/graphing-linux-disk-io-statistics-with-munin.html
And the plugin itself: https://workbench.amd.co.at/trac/munin-plugins/
HTH.
Solaris/Opensolaris with DTrace will give you any information you'll ever need about this. In my opinion, DTrace gives you the measuring tools available anywhere, so if switching OS is an option, I'd give this some serious consideration.