From: Antonio J. R. N. <ant...@ya...> - 2005-01-28 15:41:05
|
Hi Richard, Glad to hear from you! Your answer is fantastic! What do you think that we created a Knowledge Base with Best Practices to run IOMETER? Probably, it will very appreciated for all users in the world. Take care my friend. I will learning about this, and if I need anything else I will let you know. Regards neto "Richard E. Riggs" <re...@at...> wrote: Neto... have not talked to you in a while so it's good to hear from you. Although others in the group can help with other platforms, I hope some of my feedback (that's what I call it!!) helps... 1) Do you have some gotchas and tips for use IOMETER in a benchmark deal for real applications? The gotcha in benchmarking a "real" application is understanding the applications I/O behavior (and not so much the underlying database). I have recently had some real life experience with a couple applications on MS-SQL and MS-Exchange (sorry Unix folks!!). Some examples.... MS-Exchange is a very random read intensive application. That wreaks havoc on any type of storage with any reasonable amount of cache. The other problem is that it uses a 4K block size, which is not optimal when many vendors use 16K chucks of cache at a time (75% of the block is unused!!). But the real kicker is that Microsoft admits they don't trust disk vendors, so they purposely use SCSI compliant write-thru-cache features. Combine that with the 4K block size and you get bad cache utilization, and if the vendor is SCSI compliant, random reads going directly to back end disk. Then there's the MS-SQL apps... SQL in itself is a pretty simple animal.... 8K blocks for database and transaction logs. The trick is figuring out what the application is doing in relation to the database. Poorly written apps can cause tremendous I/O problems, no matter what you throw at them. But you can test and tune for SQL behavior by assuming you will have many sequential and random write requests. This is great for cache, as SQL was not written to distrust disk, but embrace it!! It will happily let the cache write committed I/O when it's ready. 2) What is the purpose of aligment? Use aligment or not? Alignment allows you to "position" where I/O begins. A good example with Windows is that it has a 512k file allocation size, but disk sectors start after the first 63k. Essentially, you end up skipping a sector every time you write an I/O to the disk (512k\64k=8 sectors, skip a sector, start the next one at the 10th sector). Now you know why NTFS needs defrags!! Anyway, unless you have a really bad performance issue (like MS-Exchange) you should not need to test using this feature. For Exchange, they recommend using the diskpar tool which forces sector alignment at the first 64k. 3) How many workers in a benchmark? Examples of applications Rule of thumb... how many CPU's do you have? Generally, each CPU can spin one thread to a logical volume or file system. Each worker can access multiple volumes, but only one I/O will be active at any given time. Iometer will automatically spawn a thread for each CPU, and assign a volume for each worker (when you select all volumes at the manager level). Any additional volumes above and beyond the worker count will be assigned in a round robin fashion. When I stress test, I like to assign all workers to all volumes, just to see if I can break it!! As for a "real" application test, here is an example of how a high performance SQL test on a high end server might go... Windoze 2003 SQL 2000 HP 8-procs Ton of memory High end subsystem with tons of cache Active\Active 2Gbs Fiber channel Lots of disks, striped (4 columns, 128k stripe) 8 Database Volumes (MS recommended) 1 Translog Volumes Create 2 access specifications, 1 with 100% sequential 8k read the other write Create 2 access specifications, 1 with random (67 random /33 sequential)8k read the other write For all accesses, step outstanding I/O's by a power of 2 to max of 256 (1,2,4,8,16,32,64,128,256) Let Iometer assign volumes.... each worker will get a DB volume, and the first will get the translog. Assumption is each volume will process an I/O from each CPU, except the one with the translog. FYI.... my test resulted in sustained 10,000+ IOps, even on the random reads, no matter the queue depth (outstanding I/O's) 4) How many outstanding IO in a benchmark? Examples of applications Previous example is a good test for determining what the configuration can take. It's all a matter of: How much system memory and cache do I have? How fat is the system BUS? How big is my pipe? Fiber channel has cache on the card and buffer credits, adjustable queue depth (outstanding I/O's) How big is my subsystem? How big is the queue depth? I've seen systems spike out with several 100 outstanding I/O's and not skip a beat. Some feel this is overrated; all depends on how sensitive app is. But my opinion is, the more you can queue up (or buffer), the better I/O your going to get. 5) Could you please send for me some example of applications that use aligment or not? None except Exchange 6) How does IOMETER work with no aligment and How does IOMETER work with aligment? I have not encountered a situation where I needed to do this, since I mostly work on high performance and large enterprise systems and infrastructure. The exception would be exchange, but I use Veritas Volume Manager and Storage Foundation to stripe across a large block. It's a bit more efficient since the block is always larger than the sector alignment anyway. I don't see a need unless you are not using a volume management product, in which case the diskpar tool would be good..... Unix folks???? 7) Why mis-aligned benchmarks in IOMeter are not really interesting for customers and results? Unless you are benchmarking raw disk, I really don't see the benefit. OS and other software mask the underlying disk architecture and handle alignment (although maybe not perfectly) for you. -----Original Message----- From: iom...@li... [mailto:iom...@li...] On Behalf Of iom...@li... Sent: Tuesday, January 25, 2005 10:08 PM To: iom...@li... Subject: Iometer-user digest, Vol 1 #179 - 1 msg Send Iometer-user mailing list submissions to iom...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/iometer-user or, via email, send a message with subject or body 'help' to iom...@li... You can reach the person managing the list at iom...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of Iometer-user digest..." Today's Topics: 1. Real Benchmarks using IOMETER (Antonio Jose Rodrigues Neto) --__--__-- Message: 1 Date: Tue, 25 Jan 2005 10:44:42 -0800 (PST) From: Antonio Jose Rodrigues Neto To: iom...@li..., iom...@li... Subject: [Iometer-user] Real Benchmarks using IOMETER --0-160451943-1106678682=:80064 Content-Type: text/plain; charset=us-ascii Hi All, This is neto from Brazil. How are you? I'm learning about storage performance and I would like to create a best practices to use *correct* IOMETER in a benchmark deal, so I need your help: 1) Do you have some gotchas and tips for use IOMETER in a benchmark deal for real applications? 2) What is the purpose of aligment? Use aligment or not? 3) How many workers in a benchmark? Examples of applications 4) How many outstanding IO in a benchmark? Examples of applications 5) Could you please send for me some example of applications that use aligment or not? 6) How does IOMETER work with no aligment and How does IOMETER work with aligment? 7) Why mis-aligned benchmarks in IOMeter are not really interesting for customers and results? All the best my friends neto --------------------------------- Do you Yahoo!? Yahoo! Mail - Helps protect you from nasty viruses. --0-160451943-1106678682=:80064 Content-Type: text/html; charset=us-ascii Hi All, This is neto from Brazil. How are you? I'm learning about storage performance and I would like to create a best practices to use *correct* IOMETER in a benchmark deal, so I need your help: 1) Do you have some gotchas and tips for use IOMETER in a benchmark deal for real applications? size=2> 2) What is the purpose of aligment? Use aligment or not? 3) How many workers in a benchmark? Examples of applications 4) How many outstanding IO in a benchmark? Examples of applications class=247500718-25012005> 5) Could you please send for me some example of applications that use aligment or not? class=247500718-25012005> 6) How does IOMETER work with no aligment and How does IOMETER work with aligment? size=2> 7class=247500718-25012005>) Why mis-aligned benchmarks in IOMeter are not really interesting for customers and results? class=247500718-25012005> class=247500718-25012005>All the best my friends class=247500718-25012005> class=247500718-25012005>neto --------------------------------- Do you Yahoo!? href="http://us.rd.yahoo.com/mail_us/taglines/virus/*http://promotions.yahoo .com/new_mail/static/protection.html">Yahoo! Mail - Helps protect you from nasty viruses. --0-160451943-1106678682=:80064-- --__--__-- _______________________________________________ Iometer-user mailing list Iom...@li... https://lists.sourceforge.net/lists/listinfo/iometer-user End of Iometer-user Digest --------------------------------- Do you Yahoo!? Yahoo! Mail - You care about security. So do we. |