Tool to test I/O throughput for RHEL systems (the rhel_iotest.sh script)


When troubleshooting performance problems, be aware that SAS processes place different demands on file systems and I/O than traditional databases or simple query processes. For that reason, you need to be able to determine the throughput rates of any file system that SAS uses. This SAS KB article documents a shell script that system administrators and IT teams can use to help make that determination.

The rhel_iotest.sh Script

The rhel_iotest.sh script is an automated utility that uses UNIX/Linux dd commands to measure the I/O throughput of a file system in a Red Hat Enterprise Linux (RHEL) environment. This method mimics the behavior of SAS. The results should give you a reasonable estimate of I/O throughput but might not reflect the actual performance of SAS applications.

Utility Deployment from the SAS Technical Support Sample Tools (SASTSST) Repository

To deploy the utility from the SASTSST repository, complete the following steps when you are logged on to your problematic server using the SAS installer user ID:

  1. Unzip the SASTSST_UNIX_installation.ZIP file to access the SASTSST_UNIX_installation.sh utility.
  2. Execute the bash SASTSST_UNIX_installation.sh utility.
  3. Review and accept the license terms and conditions.
  4. When prompted, provide an absolute path to a deployment directory (such as /usr/local/etc/SAS/) to define the location for your SAS Technical Support Sample Tools.
  5. Select the Testing Throughput for your SAS 9 File Systems: RHEL Linux platforms option. After the utility is deployed, you see the following content in your deployment directory:
    FileNotes
    rhel_iotest.shShell script
    README.SASTSST_UNIX.txtComplete list of SAS Technical Support sample tools and their associated documentation
  6. Make the rhel_iotest.sh file executable (chmod 0555 rhel_iotest.sh). The script is now ready to use.

Usage

The rhel_iotest.sh utility evaluates your RHEL environment, calculates all required parameters based on your system’s specifications, and launches a series of Write and Read tests. The utility then compiles all files from the tests into a file called rhel_iotest_[hostname]_[date]-[time].tar.gz. This tarball contains a copy of the script, its log, results files, and the contents of 2 system files: /proc/cpuinfo and /proc/meminfo.

Execute the test script from a file system separate from the target file system that you are testing. For accurate results, your target file system must have free space greater than (the number of physical cores in your system) * (the amount of physical RAM in your system).

The shell script is parameter-driven:

   ./rhel_iotest.sh -t <target file system>

where -t is the file system you want to test.

The script produces output to the screen in addition to the resulting tarball. The example below demonstrates the output of a command where the file system being tested is /saswork:

RESULTS
-------

INVOCATION:  rhel_iotest -t /saswork
 

TARGET DETAILS
  directory:    /saswork
  df -k:        /dev/mapper/vg_saswork 4183836672 33824 4183802848   1% /saswork
  mount point:  /dev/mapper/vg_saswork on /saswork type xfs (rw,noatime,nodiratime)
  filesize:     251.47 gigabytes

 

STATISTICS
  read throughput rate:     394.30 megabytes/second per physical core
  write throughput rate:    392.26 megabytes/second per physical core

In the example above, the average Read throughput rate is about 394 MB/second. The average Write throughput rate is about 392 MB/second.

What Should You Expect to See?

The I/O throughput requirements for the SAS Compute tier are as follows:

Consult with your storage administration team regarding how to achieve adequate throughput based on these general guidelines.

Several papers are available that explain how SAS performs I/O, as well as minimum I/O recommendations for SAS file systems. These papers outline the recommended I/O metrics for file systems that support SAS deployments, and they identify guidelines that can help with provisioning and tuning I/O characteristics for optimal SAS performance. You can access these papers via SAS KB0036235, "Tuning guidelines and best practices for your hardware infrastructure (systems, storage, virtualization, file systems, and operating systems)."


For minimum CPU and RAM requirements, refer to System Requirements for SAS® 9.4 Foundation for Linux for x64.

Note: For best performance of SAS in RHEL environments, ensure that you have followed the guidance in Optimizing SAS on Red Hat Enterprise Linux (RHEL) 6 & 7.

Non-RHEL environments

To test I/O throughput rates for file systems in AIX, HPI, and Oracle Solaris environments, use the iotest.sh script, documented in SAS KB0036262.