1

HP SmartArray have "Accelerator Ratio: XX% Read / YY% Write", that configures how much cache ram dedicated for read, and how much for write.

Is there way to find best proportion on alive server in reasonable time? What stats can be collected, and how to calculate it?

Just 50/50, 75/25 or 25/75 are working, of course, but there should be some way to get best proportion for exact setup...

ewwhite
  • 197,159
  • 92
  • 443
  • 809
datacompboy
  • 663
  • 2
  • 7
  • 16

3 Answers3

1

The defaults have changed as firmware releases have been updated. The current default is a 25% read and 75% write balance. The assumption is that the OS will perform some level of read caching, but that low-latency writes are needed to help reduce I/O wait.

For more detail, you'd have to provide operating system information and some specifics on the environment and application.

ewwhite
  • 197,159
  • 92
  • 443
  • 809
0

You must collect performance value for an amoung of time through perfmon on Windows for example.

On perfmon, physical disk, you will have %Disk write time and %Disk read time

Then you will deduce if you read or write more, and then adjust. Take enough time to get backup and special task activity too

Mathieu Chateau
  • 3,185
  • 16
  • 10
0

This has been said in other answers, but I believe the proportion should be based on your load.

For many Arrays, if there is no battery back-up, the default will be 100% read / 0% write, to eliminate the chance of losing data that was in the cache during a failure.

The 100/0 ratio is terrible for high I/O systems (opinion, nothing to back it up right now)

I use perfmon a.k.a. Performance Monitor in Windows and I add a stat from Physical Disk called % Disk Read and % Disk Write, and if you watch your server while it's live, and keep track of the various percentages, it will give you an idea of what the ratio should be. Perfmon has a lot more stats related to Read/Writes on the physical disc that you can look at. There are several views in perfmon, and in the graphical view, if you watch the right states, you can see an average over the time sample (I think it's 1 minutes and 40 seconds showing at one time)

For example. I see 0 read activity most of time on one of my servers, but because it's collecting data, I see 100% or more write activity (you can see more then 100% because of multiple disks in the array) I would need a ratio of 0/100 to get the best performance from my Controller Cache. I could also enable Disk Caching as well. This is usually disabled by default without Battery Back-up.

Another important thing to note is that different RAID/Arrays have different Cache sizes, and sometimes they are not configured to use their full Cache size. I.E. On the drives i mentioned in my example. Because of the lack of battery back-up, the Cache uses only 144MB of 256MB. I can see that stat in my HP Array Configuration Utility.

You can also use the resource monitor in Windows Server 2008 and onward (need to check that), and look at the things you have on the Disk (under the Disk tab), and get an idea of the write and read levels.

meltdownmonk
  • 155
  • 2
  • 3
  • 8
  • in linux, using cfq scheduler + cgroups give required info on % of read/write in bytes and operations, but i'm not sure it correct to set cache ratio to usage ratio. – datacompboy Jun 23 '13 at 08:18
  • You might be right. I guess the follow up question would be "Why Not? Why would there be a better, more optimal ratio than one based off of the typical usage/load averages? I can think of one situation: Different RAID types are better than others are Reads and Writes. RAID5 you would typically need a bigger Write cache because of the write penalty. Where RAID 1+0 (10) would not have the same problem. – meltdownmonk Jun 25 '13 at 14:06