Calculating throughput for object storage

You can calculate the throughput capability of an object storage system and network for optimal performance.

Before you begin

Use a memory-mapped file system location to provide the source data for benchmarking. If a memory-mapped file system is not possible in your system environment, use subdirectories on the database disks. The preferred method to eliminate bottlenecks on the source disk is to use memory-mapped file system locations, such as the temporary file system (tmpfs) on Linux® operating systems.

Procedure

  1. Use both of the following benchmarking tools to measure throughput capability:
    • tsmobjperf.pl Perl script
    • SPObjBench.jar Java™ application
    To obtain the benchmarking tools, see the Cloud Blueprints . For instructions about using the benchmarking tools, see the Cloud Cache and Object Storage Benchmarking.pdf guide, which is included with the Cloud Blueprints.
  2. Populate a set of 10 1-GB files in a memory-mapped file system. For example, on a Linux system with at least 11 GB of free RAM, issue the following commands:
    mkdir /mnt/ramdisk
    mount -t tmpfs -o size=11g tmpfs /mnt/ramdisk
    for I in `seq 10`; do dd if=/dev/urandom of=/mnt/ramdisk/file.$I bs=1048576 count=1024;
              done
  3. To run a set of automated tests that scales from 1 - 100 data threads, issue the following command:
    perl tsmobjperf.pl type=type endpoints=endpoint user=”user”
     pass=”pass” bucket=bucket min=1 max=100 step=10
                fslist=comma_delimited_source_files_list
    where:
    type
    Specifies the the Simple Storage Service (S3) protocol such as IBM® Cloud Object Storage, Amazon Simple Storage Service (Amazon S3), or other approved S3 protocol object storage systems. Use Azure for Microsoft Azure Blob storage.
    endpoints
    Specifies a comma-delimited list of one or more IP addresses or URLs for the object storage endpoints. Use the same endpoints as planned for database backup operations to cloud object storage. For Microsoft Azure based systems, specify the URL of a user’s blob storage account.
    user
    For S3, user specifies a public key ID. For Azure, user specifies the blob storage account name. Enclose the parameter value in double quotation marks.
    pass
    For S3, pass specifies the secret key for a user who has valid S3 credentials to create buckets and PUT and GET objects in the region that is specified in the endpoint URL. For Azure, the pass value must be a shared access signature (SAS) token with sufficient read/write access rights to the blob storage account over an HTTPS or HTTP connection. Enclose the parameter value in double quotation marks.
    bucket
    Identifies an S3 bucket, vault name, or an Azure container name for which a credentialed user has PUT and GET access. The bucket name must exist in the object storage system.
    min and max
    The min and max values specify the minimum and maximum thread counts that are tested.
    step
    Specifies the increase in thread count from test to test.
    fslist
    Specifies a comma-delimited list of source files that are used for multipart upload. Use the source files that you created earlier.
    Tips:
    • Each thread count test uploads 10 1-GB objects per thread. The tool does not remove objects that are created during the test. After the test, you must manually remove objects that are created on the object storage system.
    • When you estimate the object storage throughput for the system, use the highest throughput value that was achieved by the automated tests.
    • If the throughput estimate is too low to achieve adequate throughput for database backup operations, use more object storage endpoints. Investigate object storage system-related bottlenecks or reconfigure the network to the object storage system. For example, consider a dedicated link for off-premises clouds, use larger capacity Ethernet ports (10 Gb instead of 1 Gb), or use additional bonded ports to achieve greater throughput.