Skip to content

Commit

Permalink
Web serving hotfix (parsa-epfl#167)
Browse files Browse the repository at this point in the history
Changes from @Hnefi and @altostratous:
* Add extra tail latency measurement parameters to Web20Driver.java (95th, 99th, and 99.9th)
* Add debugging message (optional) to UserGenerator.java
* Changes Dockerfile to use JDK-8 for support with latest version of Faban
* Explicitly checks out Faban 1.4, preserves version compatibility
* Make retry message the most precise
* Fix java version
  • Loading branch information
altostratous authored and neo-apz committed Sep 11, 2018
1 parent 798eebe commit 1a1eb1d
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 23 deletions.
7 changes: 3 additions & 4 deletions benchmarks/web-serving/faban_client/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM cloudsuite/java
FROM cloudsuite/java:openjdk8
LABEL maintainer="Mark Sutherland <[email protected]>"

RUN apt-get update && apt-get install -y \
Expand All @@ -9,9 +9,8 @@ RUN apt-get update && apt-get install -y \

# Setup Faban

RUN wget http://faban.org/downloads/faban-kit-latest.tar.gz
RUN tar zxvf faban-kit-latest.tar.gz

RUN wget http://faban.org/downloads/faban-kit-1.4.tar.gz
RUN tar zxvf faban-kit-1.4.tar.gz
COPY files/web20_benchmark /web20_benchmark

WORKDIR /web20_benchmark
Expand Down
3 changes: 2 additions & 1 deletion benchmarks/web-serving/faban_client/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ WEB_SERVER_IP=$1
LOAD_SCALE=${2:-7}

while [ "$(curl -sSI ${WEB_SERVER_IP}:8080 | grep 'HTTP/1.1' | awk '{print $2}')" != "200" ]; do
sleep 1
echo "Could not perform HTTP 200 GET from: ${WEB_SERVER_IP}:8080"
sleep 2
done

sed -i -e"s/num_users=500/num_users=${LOAD_SCALE}/" /faban/usersetup.properties
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@
<fh:tools>NONE</fh:tools>
<fh:userCommands />
</fa:hostConfig>
<fa:scale>190</fa:scale>
<fa:scale>200</fa:scale>
<fa:runControl unit="time">
<fa:rampUp>30</fa:rampUp>
<fa:steadyState>50</fa:steadyState>
<fa:steadyState>300</fa:steadyState>
<fa:rampDown>30</fa:rampDown>
</fa:runControl>
<outputDir>/home/tpalit/Documents/elgg_output</outputDir>
<outputDir>/faban/output</outputDir>
<audit>false</audit>
<threadStart>

Expand Down Expand Up @@ -63,4 +63,4 @@
<port>80</port>
</serverConfig>

</webbenchmark>
</webbenchmark>
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@
* of driverConfig in run.xml
*/
threadPerScale = 1,
percentiles = { "95"})
percentiles = {"95","99","99.9"},
responseTimeUnit = java.util.concurrent.TimeUnit.MILLISECONDS )

/**
* The mix of operations and their proabilities.
Expand Down Expand Up @@ -105,8 +106,8 @@
cycleType = CycleType.THINKTIME)
*/
@FixedTime(cycleTime = 10000,
cycleType = CycleType.THINKTIME, cycleDeviation = 1000)
@FixedTime(cycleTime = 2000,
cycleType = CycleType.THINKTIME, cycleDeviation = 10)
// cycle time or think time - count from the start of prev operation or end

/**
Expand Down Expand Up @@ -315,8 +316,8 @@ private void updateNumActivities(Web20Client client, StringBuilder sb) {
}

@BenchmarkOperation(name = "BrowsetoElgg",
max90th = 3.0,
percentileLimits= {3.0},
//max90th = 3.0,
percentileLimits= {500,1000,2000},
timing = Timing.MANUAL)
/**
* A new client accesses the home page. The "new client" is selected from a list maintained of possible users and their passwords.
Expand Down Expand Up @@ -368,7 +369,8 @@ public void browseToElgg() throws Exception {
}

@BenchmarkOperation(name = "AccessHomepage",
max90th = 3.0, percentileLimits= {3.0},
//max90th = 3.0,
percentileLimits= {500,1000,2000},
timing = Timing.MANUAL)
/**
* A logged in client accesses the home page
Expand Down Expand Up @@ -403,7 +405,8 @@ public void accessHomePage() throws Exception {
}

@BenchmarkOperation(name = "DoLogin",
max90th = 3.0, percentileLimits= {3.0},
//max90th = 3.0,
percentileLimits= {500,1000,2000},
timing = Timing.MANUAL)
public void doLogin() throws Exception {
boolean success = false;
Expand Down Expand Up @@ -460,7 +463,10 @@ public void doLogin() throws Exception {
elggMetrics.attemptLoginCnt++;
}

@BenchmarkOperation(name = "UpdateActivity", max90th = 1.0, percentileLimits= {1.0}, timing = Timing.MANUAL)
@BenchmarkOperation(name = "UpdateActivity",// max90th = 1.0,
//percentileLimits= {1.0},
percentileLimits= {500,750,1000},
timing = Timing.MANUAL)
public void updateActivity() throws Exception {
boolean success = false;

Expand Down Expand Up @@ -503,7 +509,8 @@ public void updateActivity() throws Exception {
* @throws Exception
*/
@BenchmarkOperation(name = "AddFriend",
max90th = 3.0, percentileLimits= {3.0},
//max90th = 3.0,
percentileLimits= {500,750,1000},
timing = Timing.MANUAL)
public void addFriend() throws Exception {
boolean success = false;
Expand Down Expand Up @@ -561,7 +568,9 @@ public void addFriend() throws Exception {
* Receive a chat message.
*/
@BenchmarkOperation(name = "ReceiveChatMessage",
max90th = 1.0, percentileLimits= {1.0},
//max90th = 1.0,
//percentileLimits= {1.0},
percentileLimits= {500,750,1000},
timing = Timing.MANUAL)
public void receiveChatMessage() throws Exception {
boolean success = false;
Expand Down Expand Up @@ -600,7 +609,8 @@ public void receiveChatMessage() throws Exception {
* @throws Exception
*/
@BenchmarkOperation(name = "SendChatMessage",
max90th = 1.0, percentileLimits= {1.0},
//max90th = 1.0,
percentileLimits= {500,750,1000},
timing = Timing.MANUAL)
public void sendChatMessage() throws Exception {
boolean success = false;
Expand Down Expand Up @@ -713,7 +723,8 @@ private void startNewChat() throws Exception {
* @throws Exception
*/
@BenchmarkOperation(name = "PostSelfWall",
max90th = 1.0, percentileLimits= {1.0},
//max90th = 1.0,
percentileLimits= {500,750,1000},
timing = Timing.MANUAL)
public void postSelfWall() throws Exception {
boolean success = false;
Expand Down Expand Up @@ -768,7 +779,8 @@ public void postSelfWall() throws Exception {
* @throws Exception
*/
@BenchmarkOperation(name = "Logout",
max90th = 3.0, percentileLimits= {3.0},
//max90th = 3.0,
percentileLimits= {500,750,1000},
timing = Timing.MANUAL)
public void logout() throws Exception {
boolean success = false;
Expand Down Expand Up @@ -818,7 +830,8 @@ public void logout() throws Exception {
*
*/
@BenchmarkOperation(name = "Register",
max90th = 3.0, percentileLimits= {3.0},
//max90th = 3.0,
percentileLimits= {500,1000,2000},
timing = Timing.MANUAL)
public void register() throws Exception {
boolean success = false;
Expand Down

0 comments on commit 1a1eb1d

Please sign in to comment.