Solving Storage Performance Problems
When an application is slowing down because of poor storage I/O performance, the first step most IT professionals will take to solve the problem is to increase the physical drive count on the RAID group assigned to that application. How do you know when this will work and what are the best ways to implement this?
When an application is slowing down because of poor storage I/O performance, the first step most IT professionals will take to solve the problem is to increase the physical drive count on the RAID group assigned to that application. How do you know when this will work and what are the best ways to implement this?Adding drive count only works if there are enough storage I/O requests coming from the application to keep each drive spindle busy; this is often measured as queue depth. Adding drives to address performance problems is no different then adding CPU's and multiple cores to increase processing performance. As long as your application has enough threads to keep the cores busy, performance increases. Without theses threads, multiple cores don't help all that much, that's why in the past it was common to hear a vendor say they would rather have fewer faster processors than many slower ones.
In storage we either need to scale up the response time of the drives or scale out the number of drives to handle more simultaneous responses. In the scale up model we have hit a wall (15k RPM drives) in how fast drives can respond and that is why Solid State Disk Technology is becoming popular. The scale out model, adding more drives, has become popular because there are plenty of applications that can provide the number of I/O requests to keep a fleet of drives busy.
Any data center that has a server virtualization project going full steam is a candidate. With today's server processing power, a single virtualization host can house 20-30 virtual machines. Each of these will generate varying degrees of random I/O requests, extended to a 5 to 10 node cluster of virtual hosts and you can easily get to hundreds of virtual machines all demanding something from the host.
Whether it is a multi-threaded database application, server virtualization, or thousands of online users accessing the same files, the challenge, as we discuss in our article "What's Causing the I/O Bottleneck?" is that as these environments scale out, adding more drives eventually exhausts the performance capabilities of the storage controllers. That's why you see so many systems that max out performance at about 50% of the spindle count. At that point adding drives is a case of diminishing returns.
The solution for this problem is twofold. One option is to move to a solution that can scale well beyond the common two node or two head storage platform, often called Clustered Storage solutions. These systems, like those offered by 3PAR or Isilon Systems can add storage processing and bandwidth as capacity increases. Another option is moving to a separate Solid State Disk like those offered by Texas Memory Systems or Violin Memory that can essentially eliminate response time. Both options have their merits and should be explored to see what is the best fit for your data center.
Track us on Twitter: http://twitter.com/storageswiss.
Subscribe to our RSS feed.
George Crump is founder of Storage Switzerland, an analyst firm focused on the virtualization and storage marketplaces. It provides strategic consulting and analysis to storage users, suppliers, and integrators. An industry veteran of more than 25 years, Crump has held engineering and sales positions at various IT industry manufacturers and integrators. Prior to Storage Switzerland, he was CTO at one of the nation's largest integrators.
About the Author
You May Also Like