Many applications use expensive memory to store or cache data to accelerate application performance. Caching is a widely employed technique for optimizing throughput performance from slower storage media with fast, expensive memory devices. Since server-based flash/Solid-state disk (SSD) has become ubiquitous, caching based on such devices becomes cost-effective compared to expensive memory (DRAM) based caching.
Since SSDs are more expensive than rotating media, a mechanism is required to balance the cost of flash storage and application performance needs. The focus has been on optimizing the caching algorithms that build knowledge of which data to bring into the cache, when to evacuate it from the cache, and how to update the original data stored on low-speed storage. There is also the practical problem of determining how much flash is required for a given workload. The quantity of flash to allocate is also known as the Optimal Cache Size. Knowing the Optimal Cache Size enables a business to optimize performance while reducing costs.
SmartAssist is an I/O workload profiling tool developed to evaluate real-time workloads on prospective systems and assess the potential benefits of flash-based caching for applications. It is a free tool, which monitors read/write I/O access patterns on storage media and determines the Optimal Cache Size requirement for running specific workloads. SmartAssist works independently of InfoScale and could be used to assist in evaluating a prospective server workload to estimate the potential benefits of deploying InfoScale.
As discussed above, determining the Optimal Cache Size is vital to minimizing the cost of solid-state disks. SmartAssist can be used to determine the return on investment of flash-based caching in a datacenter. If SmartAssist determines that caching is not useful for specific workloads, administrators can decide not to configure flash-based caching for those applications. It also provides details of the cache requirement for each logical device involved, which would be helpful for administrators to prioritize workloads for caching.
You can download the SmartAssist from https://sort.veritas.com/data_collectors
SmartAssist works in 2 phases:
1. Data collection phase:
In this phase, the profiler starts collecting application read, write I/O access patterns and stores it in an output directory. It is recommended to run the profiler for some significant amount of time (few hours) to get a good understanding of applications I/O access patterns.
#./smartassist start -d /dev/sde /dev/sdf -t 7200 -o /work/
In the given example, the start phase runs for about 2 hours (7200 seconds). Detailed usage of the tool can be found in README of the SmartAssist.
2. Data analysis phase:
In this phase, the data collected by the 1st phase is analyzed using algorithms used by SmartIO to determine the optimal cache size. The result of this phase is a recommendation for an Optimal Cache Size, read hit ratio with the size, and information about each device shared in the cache.
#./smartassist analyze /work/
VERITAS InfoScale 6.1 introduced a flash-based caching feature-set on Linux, known as SmartIO. This support is extended to Solaris and AIX platforms in the subsequent release of InfoScale 6.2. The SmartAssist tool uses the exact same algorithms that are used in the product. SmartAssist doesn't require InfoScale to be installed and works for any block devices. SmartAssist profiles the application workload patterns seen at the block layer.
In summary, this SmartAssist works independently of InfoScale and is useful, not only for determining the Optimal Cache Size for any given workload, but also to determine potential benefits of deploying InfoScale.
For more information on InfoScale, please take a look at the following documents.
- Optimizing Storage Performance in AWS with InfoScale
- Veritas InfoScale™ Enterprise: Managing Mission-Critical Applications in a software Defined Data Center (Technical Overview)
You can also check out the InfoScale technical library for additional InfoScale resources.
The Veritas Availability blog brings to you the latest news and views about how to keep mission-critical applications highly available and minimize downtime with fast failover. Learn about predictable availability, application resiliency, and storage efficiency across multi-cloud, virtual, and physical environments.