Setting up our compute cloud virtual machines for POCs
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