Cost Effectively Solving Oracle Performance Problems
Cost Effectively Solving Oracle Performance Problems
Data in databases is often the heartbeat of an organization. These databases either support revenue generation or, in an increasing number of cases, they are directly tied to the revenue generators for the company. In most cases, the faster and more efficiently these environments can perform and respond, the more revenue the organization is able to generate. Other than maintaining availability and reliability of this data, the performance at which these databases operate is a top priority for IT managers. However, the focus of this performance tuning effort often centers around the storage infrastructure.
One particular challenge to this effort is that the number of database instances, and concurrent use of those instances, are increasing much faster than enterprise storage performance. Storage systems now have the cumulative impact of a multitude of applications and users accessing database instances residing on the same storage system at the same time, with varying patterns of access. While shared storage has been a boon for data protection and has led to improved storage economics in the data center, this “all eggs in one basket” approach may not be suitable for supporting the performance that this workload will demand.
Many organizations are trying to further increase storage efficiency by having as few storage platforms as possible. This mixed collection of databases and data must now coexist with ,and in some cases run within environments such as virtual servers and virtual desktops, on the same storage system. This combination multiplies the concurrency of demand and creates a significant overall performance degradation.
The rise of Oracle Exadata is the white flag in this battle to increase storage performance. It signifies that IT has abdicated the goal of storage consolidation and is instead building a database machine separate from the rest of the storage and server environment. Other than the premium cost of these database machines organizations will also have to bear the cost of managing and maintaining another ‘island’ of compute and storage infrastructure, without all the enterprise storage features built into enterprise arrays.
The costs associated with Oracle Exadata has forced IT managers to look for solutions that will solve Oracle storage performance challenges without breaking the bank or enduring the complexity of running a separate storage system for each environment. Each of these alternatives has its own issues but the ideal solution is coming of age.
Accelerating Oracle storage I/O
The journey to optimal Oracle storage performance can be a long and winding road for the storage manager. Any performance improvement needs to be balanced against the realities of the (finite) IT budget. As a result this journey is often filled with trial and error.
The typical first step other than deploying faster hard drives is to deploy a larger number of drives to decrease average spindle response time. The problem is that buying enough hard drives to fully deplete storage I/O queue depths can mean hundreds or thousands of drives. Eventually this process ends by trying to reduce hard drive latency by short stroking those hard drives (using only the outer-most tracks of the platters). Although data layout tools can assist in initially spreading data over those disks, a database under daily use will be unable to maintain this balance resulting in hot spots and congestion within specific drives or trays.
These attempts to accelerate Oracle storage I/O performance using only mechanical hard drives are both costly and an inefficient use of power and data center floor space. At the same time they don’t dramatically improve performance since they‘re built on a common element, the rotating disk drive.
This has helped fuel the rise of memory-based storage technologies and Oracle environments have been some of the first to adopt solid-state storage as a component of their storage infrastructures. The challenge for data center managers now is sorting through the number of memory based storage options available for the Oracle environment.
There are three common options for implementing solid-state storage. First, it can be used as an augmentation to existing mechanical storage via tiering or caching. Second, it can be used on the Oracle application server itself to cache data. And third, there are the forklift upgrade solutions or database machines like Oracle Exadata.
Accelerating Oracle performance with tiering or caching
Many legacy storage vendors have implemented a flash tier inside their storage systems to help accelerate storage performance. The first challenge users face is that these systems are typically designed to be used in a single vendor’s storage system not in a mixed or “heterogeneous” environment. While most IT Managers would like to consolidate down to one storage system, the reality is they need more than one to keep up with capacity and performance demands.
Second, the caching algorithms that analyze data in these storage systems are not specifically tuned for the Oracle use case and most systems have limited ability to customize how the analysis operates. Third, because this tier of solid-state storage comes from the legacy storage vendor, the surrounding storage hardware (controllers and I/O) are not optimized for solid-state performance. And finally, the price to acquire, implement and license the solution can be excessive.
Another option for optimizing the storage side of the performance problem is to use a flash-only device from one of the new start up storage vendors. The challenge is that typically these vendors have limited experience in delivering the types of storage services that Oracle administrators have become accustomed to. At a minimum, new tools have to be learned and integrated into the workflow. They also use duplication and compression to optimize a flash only investment, which can, in some cases, hinder overall system performance. Finally, a new storage system means replacing the existing storage that may not yet be fully capitalized, as well as learning and integrating a new storage system.
Server-side SSD caching
Another option to accelerate Oracle I/O performance is to leverage a cache created by using PCIe SSDs inside the application servers themselves. This can also be used in combination with memory-based storage in a shared environment. The advantage of this solution is that it makes the most frequently accessed data directly accessible inside the application server, eliminating even the latency caused by the network itself.
The challenge with this approach is that data that’s ‘cacheable’ needs to be manually tracked so that it can be updated appropriately. Since the cache is not shared across the Oracle environment the application servers could easily be out of sync if such data movement is not accounted for in the database code. This would require modifications to that code and ongoing maintenance to accommodate changes in workload or database infrastructure.
The lack of sharing also means that the more expensive flash capacity would be poorly distributed between the application servers. In many cases a PCIe-based solid-state storage device would have too much flash capacity for the task at hand, meaning that as a PCIe SSD is deployed in each server some of this premium priced storage could go unused. Finally, as PCIe cards, they wouldn’t easily support high availability and a hot-swap capability.
The integrated forklift
Each of the above solutions suffers from complexity of implementation as well as complicated maintenance of operation as the Oracle environment evolves. They all also have individual concerns around performance and cost. Forklift database machine options like Exadata attempt to reduce some of the implementation and ongoing database management complexities but then add in a significantly higher cost.
The goal of a database machine is to remove most of the configuration guesswork and ongoing complexity from the process. These systems require shifting to the new database machine, which often may include upgrading to Oracle 11gR2 or above and rewriting significant portions of code. The reality is that for most data centers, the single biggest impediment to adoption of the database machine is the cost of the integrated solution. This has prompted storage managers and database managers to search for ways to optimize database I/O performance that don’t also require a shift in current database design or a significant capital investment.
Affordable Oracle acceleration
Adding solid-state storage to legacy mechanical storage, using solid-state-only storage devices or choosing a forklift upgrade like Oracle Exadata, are all expensive and complicated to implement. A network-based intelligent cache solution that leverages solid-state disk may be the ideal alternative.
These can be implemented, often transparently, between the storage and the application servers and tuned specifically for Oracle performance improvement. And, all of this can be implemented and start delivering on its ROI without changing out the storage system or making changes to the application code.
The challenge that most network-based cache solutions face is that they are IP network-based, instead of fiber channel or block-based. This means that to take advantage of these solutions the database must already be on or be moved to NFS-based, filer types of storage. Despite the rising popularity of NFS storage, the overwhelming majority of mission-critical, enterprise databases continue to reside on block storage.
The storage and database managers need a caching solution that will allow the existing SAN fabric to be leveraged so that current storage hardware and the services it provides can remain in use. Companies like GridIron are able to provide significant performance acceleration without requiring changes to storage services or reliability. They allow companies to leverage their existing storage architectures without upgrading them. Most importantly they can provide this performance boost without changes to application code, either upon implementation or in the future.
The net impact of these block based intelligent caching solutions is that applications can run as much as 10X faster by automatically adapting to changing workload conditions. The golden copy of the database is on the SAN so that if the cache fails the database continues to run. The result can be a reduction in SAN workload by as much as 90%.
Write performance, even though these are typically read caches, increases by 4X. This is because the SAN network is essentially now dedicated to write traffic since the bulk of read requests are serviced from the cache. CPU resources will be better utilized because the servers can now do more real work as opposed to waiting on I/O. By eliminating short stroking, storage resources can be fully utilized to deliver a very quick return on investment.
Summary
Improving database performance can be easy, unless a budget has to be adhered to or you cannot afford the downtime and disruption associated with implementing a new solution. Since that’s the reality for most data centers, there is a need for a simple way to gain most of the performance benefit of higher priced solutions without going to more complex “value” solutions. Intelligent network-based caching is an ideal consideration since it’s more economical than other solid-state alternatives and provides much better performance than spindle based alternatives. And in many cases, it performs better than the database machine approaches as well.
The lack of support for the most common database deployment (fibre SAN) makes their selection less attractive. A full fibre-channel based cache solution, like those available from GridIron provides an ideal method for cost effective, yet significant Oracle database performance acceleration with minimal disruption.
For a printable copy of this article please email info@storage-switzerland.com
GridIron is a client of Storage Switzerland
Previous Entry: “Fault Tolerant vs. Highly Available Storage”
Tuesday, April 17, 2012
George Crump, Senior Analyst