Benchmarking AWS, Google cloud, and azure database options | Computer Systems Performance 2024 | Project 2
Create and ssh into linux VM
Set up Docker's apt repository.
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:**
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Install docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker --version
Pull and tag hammerdb image
sudo docker pull tpcorg/hammerdb
sudo docker tag tpcorg/hammerdb hammerdb
Run the image
sudo docker run -it --name hammerdb hammerdb bash
cd scripts/python/mssqls/tprocc
We need to set connection settings in all py files!
diset('connection','mssqls_tcp','false')
diset('connection','mssqls_port','1433')
diset('connection','mssqls_azure','true')
diset('connection','mssqls_encrypt_connection','true')
diset('connection','mssqls_trust_server_cert','true')
diset('connection','mssqls_authentication','sql')
diset('connection','mssqls_server','<IP>')
diset('connection','mssqls_linux_server','<IP>')
diset('connection','mssqls_linux_authent','sql')
diset('connection','mssqls_linux_odbc','{ODBC Driver 18 for SQL Server}')
diset('connection','mssqls_uid','azureuser')
diset('connection','mssqls_pass','PASSWORD')
Set mssqls_tprocc_buildschema.py Set virtual users and warehouses:
vu = <AMOUNT OF VUs>
warehouse = int(vu) * 5
diset('tpcc','mssqls_count_ware',warehouse)
diset('tpcc','mssqls_num_vu',vu)
Set mssqls_tprocc_deleteschema.py
Set mssqls_tprocc_result.py
Set mssqls_tprocc_run.py Set virtual users.
diset('tpcc','mssqls_dbase','tpcc')
diset('tpcc','mssqls_driver','timed')
diset('tpcc','mssqls_total_iterations','10000000')
diset('tpcc','mssqls_rampup','2')
diset('tpcc','mssqls_duration','5')
diset('tpcc','mssqls_allwarehouse','true')
diset('tpcc','mssqls_timeprofile','true')
diset('tpcc','mssqls_checkpoint','false')
...
loadscript()
print("TEST STARTED")
vuset('vu','<AMOUNTVUs>')
vucreate()
tcstart()
tcstatus()
jobid = tclpy.eval('vurun')
vudestroy()
tcstop()
...
Move script to source folder.
mv mssqls_tprocc_py.sh ../../../../
./mssqls_tprocc_py.sh
Change vu in scripts
cd scripts/python/mssqls/tprocc
vim mssqls_tprocc_buildschema.py
vim mssqls_tprocc_run.py
vim mssqls_tprocc_deleteschema.py
Re run benchmark
cd /home/HammerDB-4.10/
./mssqls_tprocc_py.sh
docker cp <containerId>:/file/path/within/container /host/path/target
Use either the cloud provider GUI or scp to download the files from the VM.
- Azure: https://portal.azure.com/#home
- Google Cloud: https://console.cloud.google.com/welcome/
- Azure: (100$ credits for students) https://azure.microsoft.com/en-us/free/students
- Google cloud: (new customers 300$ credits) https://cloud.google.com/free?hl=en