Sandip Kumar
Perren Walker
Sandip Kumar
,
Perren Walker
,
June 16, 2023
Oracle

Benchmark Azure Tessell Oracle performance using SLOB

Sandip Kumar
Perren Walker
Sandip Kumar
,
Perren Walker
,
June 16, 2023
Table of Contents

TABLE OF CONTENTS

Share this blog
arrow icon

One of Tessell’s focus areas is providing high database input/output operations per second, a performance that enables Oracle production database workloads on Azure. Production performance across processor, storage, and networking is a prerequisite for database as a service (DBaaS). In addition to unlocking Azure NVMe-backed shapes, Tessell provides self-service, Terraform provisioning, database management, and data lifecycle management. Data lifecycle management use cases include patching, feature packs, upgrades, data sharing, and operations management. With Tessell, there are both direct and indirect costs that can be removed as part of the modernization process. Customers can choose to reinvest those savings into the business or drop them directly into the bottom line.

For those considering moving production workloads to Azure, the only true way of evaluating performance is by running performance benchmarks for the databases on the infrastructure that you intend to use. The steps below are provided as a guide and produce a single performance benchmark. For this benchmark, we used the Azure L8as_v3 shape, which is based on the AMD 3rd Generation EPYC™ 7763v processor and is backed by NVMe storage. You can reproduce these steps on alternative shape sizes that may have differing CPUs or storage (NVMe vs. Winchester disk drives) in order to determine the optimal price/performance for a specific workload.

In this article, we run performance benchmarks to evaluate, gather data, report, and then analyze the performance of Oracle database engines running on the Azure cloud for Tessell. We have used the SLOB benchmarking tool for the benchmarking process. Before starting the benchmarking process, you need to get your environment ready.

Prepare your environment

To prepare the environment for the benchmarking process, perform the following high-level tasks:

  1. Provision an Azure Tessell Oracle instance to benchmark the performance testing. We are using the Tessell shape “tesl_8h_a” (Azure L8as_v3) on the Azure cloud. This compute shape comes with 8 vCPUs and 64 GB of RAM. While provisioning the instance, note down the username and password to connect to your database instance.
  2. Launch or create an Azure VM to install the SLOB benchmarking tool, and set up the load. It is recommended that you create the instance in the same Azure VNet as your Azure Tessell instance to keep the latency to a minimum.
  3. Set up the security groups for the client and server machines in a way that the client machine can connect to the server machine over the database port TCP:1521. For more information, see Default security groups for your VNet.

The following diagram shows the recommended environment for running the benchmarking process. The VNet located in the Azure cloud contains the Tessell Azure Oracle instance and the Oracle client installed in the Azure instance.

Provision the Oracle client machine

Firstly, provision the client Linux machine to install the SLOB benchmarking tool. For our test, we provisioned the Azure Linux instance with the following configuration details:

Download SLOB and Install Oracle Client

Secondly, download the SLOB benchmarking tool on the provisioned instance and Oracle Client. To do so, perform the following steps:

1. Download and install Oracle database client RPM.

Copied to clipboard!

curl -o oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm
wget https://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

sudo yum install compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm -y
sudo yum install oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm -y
 

2. Download the Oracle Client software with below link and scp to client server.

Copied to clipboard!

https://www.oracle.com/database/technologies/oracle21c-linux-downloads.html
 

3. Create the directories for Oracle client software.

Copied to clipboard!

chown -R oracle:oinstall /u02
chmod -R 775 /u02
mkdir -p /u02/app/oraInventory
mkdir -p /u02/app/oracle
mkdir -p /u02/app/oracle/product/dbhome_1
chown -R oracle:oinstall /u02/app/oraInventory
chown -R oracle:oinstall /u02/app/oracle
chown -R oracle:oinstall /u02/app/oracle/product/dbhome_1
chmod -R 775 /u02/app/oraInventory
chmod -R 775 /u02/app/oracle
chmod -R 775 /u02/app/oracle/product/dbhome_1
 

4. Unzip the Oracle database client software and update response file.

Copied to clipboard!

cd /tmp
unzip LINUX.X64_213000_client.zip
cd /tmp/client/response
cat client_install.rsp

# Uodate client_install.rsp
UNIX_GROUP_NAME=dba
INVENTORY_LOCATION=/u02/app/oraInventory
ORACLE_HOME=/u02/app/oracle/product/dbhome_1
ORACLE_BASE=/u02/app/oracle
oracle.install.client.installType=Administrator
 

5. Install the Oracle client.

Copied to clipboard!

cd /tmp/client
./runInstaller -ignoreSysPrereqs -showProgress -silent -responseFile /tmp/client/response/client_install.rsp
Run the orainstRoot.sh as root user.
sudo /u02/app/oraInventory/orainstRoot.sh
 

6. Update the TNS connection and set the following environment variables. Get the service URL from Tessell GUI to set as HOST in the TNS connection.

Copied to clipboard!

cd /u02/app/oracle/product/dbhome_1/network/admin/
cat tnsnames.ora
orcl =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = sandip01-yqequ.tessell.tessell.com)(PORT = 1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = orcl)
     )
   )

export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=/u02/app/oracle/product/dbhome_1
export PATH=/u02/app/oracle/product/dbhome_1/bin:/sbin:/bin:/usr/sbin:/usr/bin
export TNS_ADMIN=/u02/app/oracle/product/dbhome_1/network/admin
 

7. Test the sqlplus connection by running the following command:

Copied to clipboard!

$ sqlplus master/xxxxx@orcl

SQL*Plus: Release 21.0.0.0.0 - Production on Thu Apr 13 14:49:28 2023
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle. All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.18.0.0.0

SQL> show user
USER is "MASTER"
SQL>
 

8. Note: To increase the average IOPS, update the below parameters on the Oracle database.

Copied to clipboard!

SQL> show parameter DB_WRITER_PROCESSES

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_writer_processes integer 16

SQL> show parameter db_cache_size

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_cache_size big integer 32G
SQL>
 

9. Download the SLOB source code by using wget.

  • Install the wget tool and clone the SLOB project to your instance.
Copied to clipboard!

sudo yum install wget -y
cd /u02
wget 'https://github.com/therealkevinc/SLOB_2.5.4/archive/refs/heads/main.zip'
 
  • Extract the SLOB source code files.
Copied to clipboard!

cd /u02
unzip main.zip
cd SLOB_2.5.4-main/
tar -zxvf 2021.05.12.slob_2.5.4.0.tar.gz
cp -rf SLOB/ /u02
 

Run the benchmark

Before you run the benchmark, configure the SLOB configuration file and start the Setup (load schemas), and

  • Open the  /u02/SLOB/slob.conf  file and replace the default parameter values with the following values:
Copied to clipboard!

UPDATE_PCT=15
RUN_TIME=3600
SCALE=4G
WORK_UNIT=256
LOAD_PARALLEL_DEGREE=16
DATABASE_STATISTICS_TYPE=awr # Permitted values: [statspack|awr]
ADMIN_SQLNET_SERVICE=orcl
SQLNET_SERVICE_BASE=orcl
DBA_PRIV_USER="MASTER"
SYSDBA_PASSWD="******" # Type your password here
 

For more information about the SLOB configuration parameter, see the README.

  • Start setting up SLOB and load schemas by running the following command:
Copied to clipboard!

sudo su - oracle
cd /u02/SLOB/wait_kit
make all
cd /u02/SLOB
nohup ./setup.sh MASTER_TBS 100 &
 

This loads approximately 420 GB of slob database.

  • Run the performance test with the following command:
Copied to clipboard!

nohup ./runit.sh -s 100 -t 1 &
 

Results

When the performance test completes, the IOPS achieved from the database transaction is displayed on the last line. When we ran our test on Tessell Azure , we got the following results:

On Azure Tessell

DBNAME: orcl. 100 schemas, 1 threads(each). Run time: 3600 seconds. Avg IOPS >152027< Throughput(MB/s) >1187.8<

Conclusion

The Tessell Azure Oracle performance using SLOB produced 152,027 IOPS. You can re-use the steps in this benchmark guide to run your own price/performance comparisons with other infrastructure compute shapes. With price/performance benchmarking, you can hold your op-ex cloud spend constant and leverage the performance benefits as your organization’s technology requirements grow. Alternatively, infrastructure modernization can enable database consolidation, resulting in savings on licenses, cooling, and energy costs. Customers can choose to reinvest these savings into the business or drop them directly into the bottom line. The image below depicts the visualization of the performance benchmark that Tessell and Azure enable:

If there are additional benchmarks that you are considering for your cloud database infrastructure, please reach out to us.

Benchmark Results
Follow us
Youtube Button