Skip to content

Commit 205e11e

Browse files
committed
git magic to resolve conflicts for perf
Signed-off-by: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com>
1 parent 95d5fe6 commit 205e11e

File tree

4 files changed

+116
-26
lines changed

4 files changed

+116
-26
lines changed

daprdocs/content/en/operations/performance-and-scalability/perf-actors-activation.md

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ For applications using actors in Dapr there are two aspects to be considered. Fi
1919
* Sidecar Injector (control plane)
2020
* Sentry (optional, control plane)
2121

22-
## Performance summary for Dapr v1.0
22+
## Performance summary for Dapr v1.12
2323

24-
The actors API in Dapr sidecar will identify which hosts are registered for a given actor type and route the request to the appropriate host for a given actor ID. The host runs an instance of the application and uses the Dapr SDK (.Net, Java, Python or PHP) to handle actors requests via HTTP.
24+
The actors API in Dapr sidecar identifies which hosts are registered for a given actor type and routes the request to the appropriate host for a given actor ID. The host runs an instance of the application and uses the Dapr SDK (.Net, Java, Python, Go) to handle actors requests via HTTP.
2525

2626
This test uses invokes actors via Dapr's HTTP API directly.
2727

@@ -40,17 +40,14 @@ Test parameters:
4040
* Sidecar limited to 0.5 vCPU
4141
* mTLS enabled
4242
* Sidecar telemetry enabled (tracing with a sampling rate of 0.1)
43-
* Payload of an empty JSON object: `{}`
4443

4544
### Results
4645

47-
* The actual throughput was ~500 qps.
48-
* The tp90 latency was ~3ms.
49-
* The tp99 latency was ~6.2ms.
50-
* Dapr app consumed ~523m CPU and ~304.7Mb of Memory
51-
* Dapr sidecar consumed 2m CPU and ~18.2Mb of Memory
46+
* The requested throughput was 500 qps.
47+
* The actual throughput was 500 qps.
48+
* The tp90 latency was ~3.2ms.
49+
* The tp99 latency was ~7ms.
50+
* Dapr app consumed ~339m CPU and ~336Mb of Memory
51+
* Dapr sidecar consumed 93m CPU and ~60Mb of Memory
5252
* No app restarts
5353
* No sidecar restarts
54-
55-
## Related links
56-
* For more information see [overview of Dapr on Kubernetes]({{% ref kubernetes-overview.md %}})
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
type: docs
3+
title: "Pub/sub performance"
4+
linkTitle: "Pub/sub performance"
5+
weight: 30000
6+
description: ""
7+
---
8+
This article provides pub/sub API performance benchmarks and resource utilization in Dapr on Kubernetes.
9+
10+
## System overview
11+
12+
Dapr consists of a data plane, the sidecar that runs next to your app, and a control plane that configures the sidecars and provides capabilities such as cert and identity management.
13+
14+
### Kubernetes components
15+
16+
* Sidecar (data plane)
17+
* Placement (required for actors, control plane mapping actor types to hosts)
18+
* Operator (control plane)
19+
* Sidecar Injector (control plane)
20+
* Sentry (optional, control plane)
21+
* Kafka cluster with 3 replicas
22+
23+
## Performance summary for Dapr v1.12
24+
25+
The Pub/Sub API is used to publish messages to a message broker. Dapr accepts requests from the app via HTTP or gRPC, wraps them in a cloud event if needed, and sends the request to the message broker.
26+
27+
Performance varies based on the underlying message broker. The Pub/Sub performance test measures the added latency when publishing a message with Dapr compared with the baseline latency when publishing directly to the message broker.
28+
29+
### Kubernetes performance test setup
30+
31+
The test was conducted on a 3 node Kubernetes cluster, using commodity hardware running 4 cores and 8GB of RAM, without any network acceleration.
32+
33+
Test parameters:
34+
35+
* 1000 requests per second
36+
* 1 replica
37+
* 1 minute duration
38+
* Sidecar limited to 0.5 vCPU
39+
* Sidecar telemetry enabled (tracing with a sampling rate of 0.1)
40+
* Payload of a 1kb size
41+
42+
### Results
43+
44+
* The requested throughput was 1000 qps
45+
* The actual throughput was 1000 qps
46+
* Added latency for 90th percentile was 0.64ms for gRPC and 0.49ms for HTTP
47+
* Added latency for 99th percentile was 1.91ms for gRPC and 1.21ms for HTTP
48+
* Dapr app consumed ~0.2 vCPU and ~30Mb of Memory for both gRPC and HTTP
49+
* No app restarts
50+
* No sidecar restarts

daprdocs/content/en/operations/performance-and-scalability/perf-service-invocation.md

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ For more information see [overview of Dapr in self-hosted mode]({{% ref self-hos
2929

3030
For more information see [overview of Dapr on Kubernetes]({{% ref kubernetes-overview.md %}}).
3131

32-
## Performance summary for Dapr v1.0
32+
## Performance summary for Dapr v1.12
3333

3434
The service invocation API is a reverse proxy with built-in service discovery to connect to other services. This includes tracing, metrics, mTLS for in-transit encryption of traffic, together with resiliency in the form of retries for network partitions and connection errors.
3535

@@ -59,10 +59,10 @@ When running in a highly available production setup, the Dapr control plane cons
5959

6060
| Component | vCPU | Memory
6161
| ------------- | ------------- | -------------
62-
| Operator | 0.001 | 12.5 Mb
63-
| Sentry | 0.005 | 13.6 Mb
64-
| Sidecar Injector | 0.002 | 14.6 Mb
65-
| Placement | 0.001 | 20.9 Mb
62+
| Operator | 0.003 | 18 Mb
63+
| Sentry | 0.01 | 33 Mb
64+
| Sidecar Injector | 0.008 | 17 Mb
65+
| Placement | 0.005 | 25 Mb
6666

6767
There are a number of variants that affect the CPU and memory consumption for each of the system components. These variants are shown in the table below.
6868

@@ -75,18 +75,11 @@ There are a number of variants that affect the CPU and memory consumption for ea
7575

7676
### Data plane performance
7777

78-
The Dapr sidecar uses 0.48 vCPU and 23Mb per 1000 requests per second.
79-
End-to-end, the Dapr sidecars (client and server) add ~1.40 ms to the 90th percentile latency, and ~2.10 ms to the 99th percentile latency. End-to-end here is a call from one app to another app receiving a response. This is shown by steps 1-7 in [this diagram]({{% ref service-invocation-overview.md %}}).
80-
81-
This performance is on par or better than commonly used service meshes.
82-
83-
### Latency
84-
8578
In the test setup, requests went through the Dapr sidecar both on the client side (serving requests from the load tester tool) and the server side (the target app).
8679
mTLS and telemetry (tracing with a sampling rate of 0.1) and metrics were enabled on the Dapr test, and disabled for the baseline test.
8780

88-
<img src="/images/perf_invocation_p90.png" alt="Latency for 90th percentile">
81+
The Dapr sidecar uses 0.45 vCPU and 38Mb per 1000 requests per second.
8982

90-
<br>
83+
End-to-end, the Dapr sidecars (client and server) add ~1.20 ms to the 90th percentile latency, and ~2.50 ms to the 99th percentile latency. End-to-end here is a call from one app to another app receiving a response. This is shown by steps 1-7 in [this diagram]({{< ref service-invocation-overview.md >}}).
9184

92-
<img src="/images/perf_invocation_p99.png" alt="Latency for 99th percentile">
85+
This performance is on par or better than commonly used service meshes.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
type: docs
3+
title: "State performance"
4+
linkTitle: "State performance"
5+
weight: 40000
6+
description: ""
7+
---
8+
This article provides state API performance benchmarks and resource utilization in Dapr on Kubernetes.
9+
10+
## System overview
11+
12+
Dapr consists of a data plane, the sidecar that runs next to your app, and a control plane that configures the sidecars and provides capabilities such as cert and identity management.
13+
14+
### Kubernetes components
15+
16+
* Sidecar (data plane)
17+
* Placement (required for actors, control plane mapping actor types to hosts)
18+
* Operator (control plane)
19+
* Sidecar Injector (control plane)
20+
* Sentry (optional, control plane)
21+
* PosgreSQL database (single node)
22+
23+
## Performance summary for Dapr v1.12
24+
25+
The state API is used to persist state to a database, commonly called state store in Dapr.
26+
27+
Performance varies based on the underlying state store. The state API performance test measures the added latency when using Dapr to get state compared with the baseline latency when getting state directly from the state store.
28+
29+
### Kubernetes performance test setup
30+
31+
The test was conducted on a 3 node Kubernetes cluster, using commodity hardware running 4 cores and 8GB of RAM, without any network acceleration.
32+
33+
Test parameters:
34+
35+
* 1000 requests per second
36+
* 1 replica
37+
* 1 minute duration
38+
* Sidecar limited to 0.5 vCPU
39+
* Sidecar telemetry enabled (tracing with a sampling rate of 0.1)
40+
* Payload of a 1kb size
41+
42+
### Results
43+
44+
* The requested throughput was 1000 qps
45+
* The actual throughput was 1000 qps
46+
* Added latency for 90th percentile was 0.75ms for gRPC
47+
* Added latency for 99th percentile was 1.52ms for gRPC
48+
* Dapr app consumed ~0.3 vCPU and ~48 of Memory for gRPC
49+
* No app restarts
50+
* No sidecar restarts

0 commit comments

Comments
 (0)