You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/workflows/README.md
+6-6
Original file line number
Diff line number
Diff line change
@@ -2,20 +2,20 @@
2
2
3
3
There are a few [GitHub secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets) to configure to fully leverage the build.
4
4
5
-
You can use and set the followings secrets also in your fork.
5
+
You can use and set the following secrets also in your fork.
6
6
7
7
## Ngrok Debugging
8
8
9
9
You can debug a GitHub Action build using [NGROK](https://ngrok.com/).
10
10
11
11
It is disabled for automated build triggered by push and pull_requests.
12
12
13
-
You can trigger a workflow run manually enabling ngrok debugging.
13
+
You can trigger a workflow run manually enabling ngrok debugging.
14
14
15
15
It will open an ssh connection to the VM and keep it up and running for one hour.
16
-
The connection url is showns in the log for debugAction.sh
16
+
The connection URL is shown in the log for debugAction.sh
17
17
18
-
You can then connect to the build vm, and debug it.
18
+
You can then connect to the build VM, and debug it.
19
19
You need to use a password of your choice to access it.
20
20
21
21
You can continue the build with `touch /tmp/continue`.
@@ -30,7 +30,7 @@ Then set the following secrets:
30
30
31
31
## Log Upload
32
32
33
-
The build uploads the logs to an s3 bucket allowing to inspect them with a browser.
33
+
The build uploads the logs to a S3 bucket allowing to inspect them with a browser.
34
34
35
35
You need to create the bucket with the following commands:
36
36
@@ -53,4 +53,4 @@ To enable upload to the created bucket you need to set the following secrets:
53
53
54
54
If you want to get notified of what happens on slack, create an [Incoming Web Hook](https://api.slack.com/messaging/webhooks) and then set the following secret:
55
55
56
-
-`SLACK_WEBHOOK`: the incoming webhook url provided by slack.
56
+
-`SLACK_WEBHOOK`: the incoming webhook URL provided by slack.
Copy file name to clipboardExpand all lines: ansible/group_vars/all
+1-1
Original file line number
Diff line number
Diff line change
@@ -273,7 +273,7 @@ nginx:
273
273
274
274
# These are the variables to define all database relevant settings.
275
275
# The authKeys are the users, that are initially created to use OpenWhisk.
276
-
# The keys are stored in ansible/files and will be inserted into the authentication databse.
276
+
# The keys are stored in ansible/files and will be inserted into the authentication database.
277
277
# The key db.whisk.actions is the name of the database where all artifacts of the user are stored. These artifacts are actions, triggers, rules and packages.
278
278
# The key db.whisk.activation is the name of the database where all activations are stored.
279
279
# The key db.whisk.auth is the name of the authentication database where all keys of all users are stored.
Copy file name to clipboardExpand all lines: tools/owperf/README.md
+6-6
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ This test tool benchmarks an OpenWhisk deployment for (warm) latency and through
26
26
1. Parameter size - controls the size of the parameter passed to the action or event
27
27
1. Actions per iteration (a.k.a. _ratio_) - controls how many rules are associated with a trigger [for rules] or how many actions are asynchronously invoked (burst size) at each iteration of a test worker [for actions].
28
28
1. "Master apart" mode - Allow the master client to perform latency measurements while the worker clients stress OpenWhisk using a specific invocation pattern in the background. Useful for measuring latency under load, and for comparing latencies of rules and actions under load.
29
-
The tool is written in node.js, using mainly the modules of OpenWhisk client, cluster for concurrency, and commander for CLI procssing.
29
+
The tool is written in node.js, using mainly the modules of OpenWhisk client, cluster for concurrency, and commander for CLI processing.
30
30
31
31
### Operation
32
32
The general operation of a test is simple:
@@ -39,11 +39,11 @@ The general operation of a test is simple:
39
39
40
40
Final results are written to the standard output stream (so can be redirected to a file) as a single highly-detailed CSV record containing all the input settings and the output measurements (see below). There is additional control information that is written to the standard error stream and can be silenced in CLI. The control information also contains the CSV header, so it can be copied into a spreadsheet if needed.
41
41
42
-
It is possible to invoke the tool in "Master apart" mode, where the master client is invoking a different activity than the workers, and at possibly a different (very likely, much slower) rate. In this mode, latency statsitics are computed based solely on the master's data, since the worker's activity is used only as background to stress the OpenWhisk deployment. So one experiment can have the master client invoke rules and another one can have the master client invoke actions, while in both experiments the worker clients perform the same background activity.
42
+
It is possible to invoke the tool in "Master apart" mode, where the master client is invoking a different activity than the workers, and at possibly a different (very likely, much slower) rate. In this mode, latency statistics are computed based solely on the master's data, since the worker's activity is used only as background to stress the OpenWhisk deployment. So one experiment can have the master client invoke rules and another one can have the master client invoke actions, while in both experiments the worker clients perform the same background activity.
43
43
44
44
The tool is highly customizable via CLI options. All the independent test variables are controlled via CLI. This includes number of workers, invocation pattern, OW client configuration, test action sleep time, etc.
45
45
46
-
Test setup and teardown can be independently skipped via CLI, and/or directly invoked from the external setup script (```setup.sh```), so that setup can be shared between multiple tests. More advanced users can replace the test action with a custom action in the setup script to benchmark action invocation or event-respose throughput and latency of specific applications.
46
+
Test setup and teardown can be independently skipped via CLI, and/or directly invoked from the external setup script (```setup.sh```), so that setup can be shared between multiple tests. More advanced users can replace the test action with a custom action in the setup script to benchmark action invocation or event-response throughput and latency of specific applications.
47
47
48
48
**Clock skew**: OpenWhisk is a distributed system, which means that clock skew is expected between the client machine computing invocation timestamps and the controllers or invokers that generate the timestamps in the activation records. However, this tool assumes that clock skew is bound at few msec range, due to having all machines clocks synchronized, typically using NTP. At such a scale, clock skew is quite small compared to the measured time periods. Some of the time periods are measured using the same clock (see below) and are therefore oblivious to clock skew issues.
49
49
@@ -67,7 +67,7 @@ The following time-stamps are collected for each invocation, of either action, o
67
67
***TS** (Trigger Start) - taken from the activation record of the trigger linked to the rules, so applies only to rule tests. All actions invoked by the rules of the same trigger have the same TS value.
68
68
***AS** (Action Start) - taken from the activation record of the action.
69
69
***AE** (Action End) - taken from the activation record of the action.
70
-
***AI** (After Invocation) - taken by the client immmediately after the invocation, for blocking action invocation tests only.
70
+
***AI** (After Invocation) - taken by the client immediately after the invocation, for blocking action invocation tests only.
71
71
72
72
Based on these timestamps, the following measurements are taken:
73
73
***OEA** (Overhead of Entering Action) - OpenWhisk processing overhead from sending the action invocation or trigger fire to the beginning of the action execution. OEA = AS-BI
@@ -77,7 +77,7 @@ Based on these timestamps, the following measurements are taken:
77
77
***TA** (Trigger to Answer) - the processing time from the start of the trigger process to the start of the action (rule tests only). TA = AS-TS
78
78
***ORA** (Overhead of Returning from Action) - time from action end till being received by the client (blocking action tests only). ORA = AI - AE
79
79
***RTT** (Round Trip Time) - time at the client from action invocation till reply received (blocking action tests only). RTT = AI - BI
80
-
***ORTT** (Overhead of RTT) - RTT at the client exclugin the net action computation time. ORTT = RTT - D
80
+
***ORTT** (Overhead of RTT) - RTT at the client excluding the net action computation time. ORTT = RTT - D
81
81
82
82
For each measurement, the tool computes average (_avg_), standard deviation (_std_), and extremes (_min_ and _max_).
83
83
@@ -92,7 +92,7 @@ Throughput is measured w.r.t. several different counters. During post-processing
92
92
***Activations** - number of completed activations inside the time frame, counting both trigger activations (based on TS), and action activations (based on AS and AE).
93
93
***Invocations** - number of successful invocations of complete rules or actions (depending on the activity). This is the "service rate" of invocations (assuming errors happen only because OW is overloaded).
94
94
95
-
For each counter, the tool reports the total counter value (_abs_), total throughput per second (_tp_), througput of the worker clients without the master (_tpw_) and the master's percentage of throughput relative to workers (_tpd_). The last two values are important mostly for master apart mode.
95
+
For each counter, the tool reports the total counter value (_abs_), total throughput per second (_tp_), throughput of the worker clients without the master (_tpw_) and the master's percentage of throughput relative to workers (_tpd_). The last two values are important mostly for master apart mode.
96
96
97
97
Aside from that, the tool also counts **errors**. Failed invocations - of actions, of triggers, or of actions from triggers (via rules) are counted each as an error. The tool reports both absolute error count (_abs_) and percent out of requests (_percent_).
0 commit comments