Start DB (Ideally this would be on a different machine, but for first request, it probably doesn't matter much).
./run-podman-db.sh
Note: You will need to pull postgres from dockerhub, or find an alternative.
Update the IP address on this line to where your DB is running.
quarkus.datasource.jdbc.url=jdbc:postgresql://10.16.112.12:5432/rest-crud
First, insert the security token into the .env file. (You can ask me for it).
./build.semeru.sh
This will build restcrud quarkus images with semeru and CRAC for 1, 2, and 4 cpus.
Note: You may need to change to a newer JDK build (line 93) or newer Tomcat build (line 132) in Dockerfile.quarkus.semeru.base.
Note: The heap is set to 128m by default (see startQuarkus.sh to change).
Note: The executor threads are set to 8 by default (see startQuarkus.sh to change).
./build.native.sh
Note: The heap is set to 128m by default (see Dockerfile.quarkus.native to change).
Note: The executor threads are set to 8 by default (see Dockerfile.quarkus.native to change).
mkdir logs
./testFirstRequest.sh [IMAGE] [NUMBER_OF_CPUS]
Example
./testFirstRequest.sh restcrud-native 1
Note: You may need to change to your time zone on line 34 of doFirstRequestTests.sh. (Currently EDT).
Example
podman run --privileged -d --net=host --memory=1g --cpuset-cpus 2 restcrud-native
Download and unzip Apache JMeter. https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.3.zip (/opt/apache-jmeter-5.6.3/ for this example)
#---------------------------------------------------------------------------
# Summariser - Generate Summary Results - configuration (mainly applies to non-GUI mode)
#---------------------------------------------------------------------------
#
# Comment the following property to disable the default non-GUI summariser
# [or change the value to rename it]
# (applies to non-GUI mode only)
summariser.name=summary
#
# interval between summaries (in seconds) default 30 seconds
summariser.interval=5
#
# Write messages to log file
summariser.log=true
#
# Write messages to System.out
summariser.out=true
The getFootprint.sh script gets the footprint measurement after heavy load. This script needs to access (ssh) the System Under Test without needing a password. So you will need to allow that (or comment it out of the run_pingPerf.sh script).
./run_restCrud.sh [JMETER_HOME] [SUT]
Example:
./run_restCrud.sh /opt/apache-jmeter-5.6.3 checkers06.rtp.raleigh.ibm.com
There is also another option that adds some wait time between JMETER calls. This makes it easier to acheive 30% CPU. This script requires the desired number of JMETER threads to be passed in also.
./run_restCrud_waittime.sh /opt/apache-jmeter-5.6.3 checkers06.rtp.raleigh.ibm.com 20
The throughput measurement is the summary number of the last 5:00 run (The last summary = line of the last run). (17600.3 below)
summary = 3159447 in 00:05:00 = 17600.3/s Avg: 5 Min: 0 Max: 70 Err: 0 (0.00%)