We've been doing some quick performance testing of Oracle software on various compute cloud providers that include AWS, Oracle Cloud, IBM Cloud, Google Cloud, and Microsoft Azure. Once the virtual machine is created, most setup/configuration is generally standard.

This post is mostly self-documentation of personal notes, and not really intended for widespread use. So follow the instructions at your own discretion.

Set Hostname

Set the hostname if it's not set to what you want.

hostname pochost1.something.soc

Preserve Hostname (Oracle Cloud only)

On Oracle Cloud, changes you make to the /etc/hosts file are overwritten whenever the DHCP lease is renewed or the instance is rebooted. To persist the changes, perform the following.

vi /etc/oci-hostname.conf

    PRESERVE_HOSTINFO=2

Create Oracle Software User

Create the oracle Linux user with standard groups for the installation of Oracle software.

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle

Install RPMs

These are generic RPMs used by most Oracle software. Others are the GUI and VNC server. Some utilities such as telnet and xclock are for testing purposes only and shouldn't be installed on a production system.

yum -y groupinstall 'Server with GUI'
yum -y install tigervnc-server
yum -y install xclock
yum -y install telnet
yum -y install wget
yum -y install gcc
yum -y install gcc-c++
yum -y install glibc-devel
yum -y install libaio
yum -y install libaio-devel
yum -y install sysstat
yum -y install libstdc++-devel
yum -y install compat-libstdc++
yum -y install compat-libstdc
yum -y install compat-libcap1
yum -y install ksh
yum install lksctp-tools

Download and Install Stress Tool

Both stress and stress-ng are used for Linux host stress testing. Keep in mind that newer versions may be available.

wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/s/stress-1.0.4-16.el7.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/s/stress-ng-0.07.29-2.el7.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libbsd-0.8.3-1.el7.x86_64.rpm

rpm -i libbsd-0.8.3-1.el7.x86_64.rpm
rpm -i stress-ng-0.07.29-2.el7.x86_64.rpm
rpm -i stress-1.0.4-16.el7.x86_64.rpm

Open Local Firewall Ports

These are examples of ports used for our testing. Port 5901 is required for access to the VNC server. Port 3872 is for inbound OEM Agent access. Port 7002 is the default secure WebLogic AdminServer port. Open other ports as necessary.

firewall-cmd --permanent --zone=public --add-port=5901/tcp
firewall-cmd --permanent --zone=public --add-port=3872/tcp
firewall-cmd --permanent --zone=public --add-port=7002/tcp
firewall-cmd --reload

Edit Kernel and Profile Settings

These are generic settings that work for most Oracle Database instances, as well as other Oracle software.

vi /etc/sysctl.conf

    kernel.shmmax = 68719476736
    kernel.shmall = 4294967296
    kernel.msgmax = 65536
    kernel.msgmnb = 65535
    kernel.shmmni = 4096
    kernel.sem = 256 32000 100 142
    fs.file-max = 6815744
    fs.aio-max-nr = 1048576
    kernel.hostname   = pochost1.something.soc
    kernel.domainname = something.soc
    net.ipv4.ip_local_port_range = 9000 65500
    net.core.rmem_default=262144
    net.core.wmem_default=262144
    net.core.rmem_max=4194304
    net.core.wmem_max=1048576
    kernel.msgmni = 2878

sysctl -p

vi /etc/security/limits.conf

    oracle	soft	nofile	4096
    oracle	hard	nofile	65536
    oracle	soft	nproc	2047
    oracle	hard	nproc	16384
    oracle	soft	stack	10240

Run iSCSI Commands (Oracle Cloud only)

On Oracle Cloud, block volumes can be attached as iSCSI or paravirtualized. If using iSCSI, the commands are specific and available on the Oracle Cloud console.

# Example only, get actual values from Oracle Cloud console

# sudo iscsiadm -m node -o new -T iqn.2015-12.com.oracleiaas:163e16fb-4b8c-a002-43fd-262784e9fa98 -p 192.168.1.10:3260

# sudo iscsiadm -m node -o update -T iqn.2015-12.com.oracleiaas:163e16fb-4b8c-a002-43fd-262784e9fa98 -n node.startup -v automatic

# sudo iscsiadm -m node -T iqn.2015-12.com.oracleiaas:163e16fb-4b8c-a002-43fd-262784e9fa98 -p 192.168.1.10:3260 -l

Mount Disk

These are standard mount instructions. Values should be updated per your environment (specifically the underlined ones).

# Create directory
mkdir /u01
chown oracle:oinstall /u01

# View available disks
lsblk

# Confirm that /dev/xvdb is a 'data' volume, assumming the disk is mounted to /dev/xvdb
file -s /dev/xvdb

# Create file system, all data will be lost in it
mkfs -t ext4 /dev/xvdb

# Backup fstab and add the mount folder
cp /etc/fstab /etc/fstab.orig
echo "/dev/xvdb       /u01   ext4    defaults,_netdev,nofail        0       2" >> /etc/fstab

# Mount /u01
mount /u01
chown oracle:oinstall /u01

# Confirm that /u01 is mounted and available
df -h

Install OEM Agent

The following are instructions to silently install the OEM Agent, assuming that both the installation file exists in /tmp and that firewalls are open between this host and the OMS server.

chown oracle:oinstall /tmp/13.3.0.0.0_AgentCore_226.zip
mkdir -p /u01/software/agent13c
chown oracle:oinstall /u01/software
chown oracle:oinstall /u01/software/agent13c

su - oracle
mv /tmp/13.3.0.0.0_AgentCore_226.zip /u01/software
unzip /u01/software/13.3.0.0.0_AgentCore_226.zip -d /u01/software/agent13c
cd /u01/software/agent13c

./agentDeploy.sh AGENT_BASE_DIR=/u01/oracle/agent13c -invPtrLoc /etc/oraInst.loc AGENT_PORT=3872 EM_UPLOAD_PORT=4903 OMS_HOST=oem.something.soc ORACLE_HOSTNAME=pochost1.something.soc AGENT_INSTANCE_HOME=/u01/oracle/agent13c/agent_inst AGENT_REGISTRATION_PASSWORD=welcome1 SCRATCHPATH=/tmp

sudo su -
/u01/oracle/agent13c/agent_13.3.0.0.0/root.sh

Start/Stop VNC Server

Straightforward instructions to start up and shut down the VNC server are below.

# Start VNC server
vncserver :1 -geometry 1280x720 -depth 16

# Stop VNC server
vncserver -kill :1