Actually, you want to try to match the stripe size to your data size. The ideal would be to have a stripe size equal to the size of a record in your database. This way the disk needs only one read or write for each database record. You really don't want to fragment a record. A large stripe size is good if you have large files, like graphic files, that you read in their entirety. It's bad if you are reading small amounts of data, like in a database.

For instance, if you set a stripe size of 128K and you need to read 100 records that are not in the same disk sector, the disk ends up retrieving over 12MB of data. If your typical record only contains 2K of data, that's only 200K of data you need out of the 12MB that the disk retrieved. That's a big waste.
On the flip side, a stripe size too small will fragment your records and cause excessive disk access.
On the other hand, if you are typically doing full table scans, then you are reading most of a large file and a large stripe size would be good.


You really need to know your data and how it is accessed in order to set an optimal stripe size. Even then, you need to benchmark to see if what you set if correct, especially since different tables have different data sizes and access patterns.

When in doubt, it's usually best to leave the stripe size at the typical default of 4K. The reason for this is that most operating systems track RAM in 4K increments, so there is a one-to-one relation between disk sector size and RAM "sector" size. At least that's what I learned a few years ago in an IBM class, perhaps RAM is tracked differently now with the extremely large RAM configurations that are now possible.


On Dec 3, 2003, at 4:05 PM, trevor%tribenetwork.com wrote:


Greetings Mysqlians,



Please comment on the validity of my logic:



In setting the RAID(10/2disks) strip size everything I read says you must
benchmark your particular system. Since that is not an option, my current
logic is to have a large strip size (1024) with the reasoning that fewer
writes/reads (yet longer writes) will be better in a database which has a
large amount of disk access. The disk cache size is 1GB on our disk device
but that is not quite enough to hold all the tables which get
accessed(written to and read from) frequently. I figure setting a large
stripe size is a conservative approach allowing for better scalability.




Many Thanks,



Trevor


--
Brent Baisley
Systems Architect
Landover Associates, Inc.
Search & Advisory Services for Advanced Technology Environments
p: 212.759.6400/800.759.0577


-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to