From dcb41d1e6e8c735012189d6fb5d69db5d60360b8 Mon Sep 17 00:00:00 2001 From: Cassandra Coyle Date: Tue, 2 Dec 2025 23:14:10 -0600 Subject: [PATCH] update perf test docs to point to the new source of truth Signed-off-by: Cassandra Coyle --- daprdocs/content/en/concepts/faq/faq.md | 2 +- .../service-invocation-overview.md | 2 +- .../perf-actors-activation.md | 56 ----------- .../perf-results.md | 14 +++ .../perf-service-invocation.md | 92 ------------------ .../static/images/perf_invocation_p90.png | Bin 28443 -> 0 bytes .../static/images/perf_invocation_p99.png | Bin 28636 -> 0 bytes 7 files changed, 16 insertions(+), 150 deletions(-) delete mode 100644 daprdocs/content/en/operations/performance-and-scalability/perf-actors-activation.md create mode 100644 daprdocs/content/en/operations/performance-and-scalability/perf-results.md delete mode 100644 daprdocs/content/en/operations/performance-and-scalability/perf-service-invocation.md delete mode 100644 daprdocs/static/images/perf_invocation_p90.png delete mode 100644 daprdocs/static/images/perf_invocation_p99.png diff --git a/daprdocs/content/en/concepts/faq/faq.md b/daprdocs/content/en/concepts/faq/faq.md index c2fb33457fb..9e96c91eed0 100644 --- a/daprdocs/content/en/concepts/faq/faq.md +++ b/daprdocs/content/en/concepts/faq/faq.md @@ -10,7 +10,7 @@ description: "Common questions asked about Dapr" Dapr is not a service mesh. While service meshes focus on fine-grained network control, Dapr is focused on helping developers build distributed applications. Both Dapr and service meshes use the sidecar pattern and run alongside the application. They do have some overlapping features, but also offer unique benefits. For more information please read the [Dapr & service meshes]({{%ref service-mesh%}}) concept page. ## Performance Benchmarks -The Dapr project is focused on performance due to the inherent discussion of Dapr being a sidecar to your application. See [here]({{% ref perf-service-invocation %}}) for updated performance numbers. +The Dapr project is focused on performance due to the inherent discussion of Dapr being a sidecar to your application. See [performance results](https://github.com/dapr/dapr/tree/release-1.16/tests/perf/report/charts) for updated performance numbers. ## Actors diff --git a/daprdocs/content/en/developing-applications/building-blocks/service-invocation/service-invocation-overview.md b/daprdocs/content/en/developing-applications/building-blocks/service-invocation/service-invocation-overview.md index ab3f93bee72..4f391c03e51 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/service-invocation/service-invocation-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/service-invocation/service-invocation-overview.md @@ -156,6 +156,6 @@ For quick testing, try using the Dapr CLI for service invocation: ## Next steps - Read the [service invocation API specification]({{% ref service_invocation_api %}}). This reference guide for service invocation describes how to invoke methods on other services. -- Understand the [service invocation performance numbers]({{% ref perf-service-invocation %}}). +- Understand the [service invocation performance numbers](https://github.com/dapr/dapr/tree/release-1.16/tests/perf/report/charts/). - Take a look at [observability]({{% ref observability %}}). Here you can dig into Dapr's monitoring tools like tracing, metrics and logging. - Read up on our [security practices]({{% ref security-concept %}}) around mTLS encryption, token authentication, and endpoint authorization. diff --git a/daprdocs/content/en/operations/performance-and-scalability/perf-actors-activation.md b/daprdocs/content/en/operations/performance-and-scalability/perf-actors-activation.md deleted file mode 100644 index e463ae6c8bf..00000000000 --- a/daprdocs/content/en/operations/performance-and-scalability/perf-actors-activation.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -type: docs -title: "Actors activation performance" -linkTitle: "Actors activation performance" -weight: 20000 -description: "" ---- -This article provides service invocation API performance benchmarks and resource utilization for actors in Dapr on Kubernetes. - -## System overview - -For applications using actors in Dapr there are two aspects to be considered. First, is the routing of actor invocations handled by Dapr sidecar. Second, is the actors runtime that is implemented and handled on the application side and depends on the SDK. For now, the performance tests are using the Java SDK to provide an actors runtime in the application. - -### Kubernetes components - -* Sidecar (data plane) -* Placement (required for actors, control plane mapping actor types to hosts) -* Operator (control plane) -* Sidecar Injector (control plane) -* Sentry (optional, control plane) - -## Performance summary for Dapr v1.0 - -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. - -This test uses invokes actors via Dapr's HTTP API directly. - -For more information see [actors overview]({{% ref actors-overview.md %}}). - -### Kubernetes performance test setup - -The test was conducted on a 3 node Kubernetes cluster, using commodity hardware running 4 cores and 8GB of RAM, without any network acceleration. -The setup included a load tester ([Fortio](https://github.com/fortio/fortio)) pod with a Dapr sidecar injected into it that called the service invocation API to reach a pod on a different node. - -Test parameters: - -* 500 requests per second -* 1 replica -* 1 minute duration -* Sidecar limited to 0.5 vCPU -* mTLS enabled -* Sidecar telemetry enabled (tracing with a sampling rate of 0.1) -* Payload of an empty JSON object: `{}` - -### Results - -* The actual throughput was ~500 qps. -* The tp90 latency was ~3ms. -* The tp99 latency was ~6.2ms. -* Dapr app consumed ~523m CPU and ~304.7Mb of Memory -* Dapr sidecar consumed 2m CPU and ~18.2Mb of Memory -* No app restarts -* No sidecar restarts - -## Related links -* For more information see [overview of Dapr on Kubernetes]({{% ref kubernetes-overview.md %}}) \ No newline at end of file diff --git a/daprdocs/content/en/operations/performance-and-scalability/perf-results.md b/daprdocs/content/en/operations/performance-and-scalability/perf-results.md new file mode 100644 index 00000000000..ac9aaa86a60 --- /dev/null +++ b/daprdocs/content/en/operations/performance-and-scalability/perf-results.md @@ -0,0 +1,14 @@ +--- +type: docs +title: "Performance results" +linkTitle: "Performance results" +weight: 10000 +description: "Performance benchmarks and charts for Dapr APIs" +--- + +For performance results, please see the [Dapr performance test suite](https://github.com/dapr/dapr/tree/release-1.16/tests/perf/report/charts) in the dapr/dapr repository, where you can +view performance charts and numbers per Dapr version and API available. + +Visit the [performance charts directory](https://github.com/dapr/dapr/tree/release-1.16/tests/perf/report/charts) to view detailed performance metrics, including latency, throughput, and +resource utilization per API across different Dapr versions. + diff --git a/daprdocs/content/en/operations/performance-and-scalability/perf-service-invocation.md b/daprdocs/content/en/operations/performance-and-scalability/perf-service-invocation.md deleted file mode 100644 index fc0816e8620..00000000000 --- a/daprdocs/content/en/operations/performance-and-scalability/perf-service-invocation.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -type: docs -title: "Service invocation performance" -linkTitle: "Service invocation performance" -weight: 10000 -description: "" ---- -This article provides service invocation API performance benchmarks and resource utilization for the components needed to run Dapr in different hosting environments. - -## System overview - -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. - -### Self-hosted components - -* Sidecar (data plane) -* Sentry (optional, control plane) -* Placement (optional, control plane) - -For more information see [overview of Dapr in self-hosted mode]({{% ref self-hosted-overview.md %}}). - -### Kubernetes components - -* Sidecar (data plane) -* Sentry (optional, control plane) -* Placement (optional, control planee) -* Operator (control plane) -* Sidecar Injector (control plane) - -For more information see [overview of Dapr on Kubernetes]({{% ref kubernetes-overview.md %}}). - -## Performance summary for Dapr v1.0 - -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. - -Using service invocation you can call from HTTP to HTTP, HTTP to gRPC, gRPC to HTTP, and gRPC to gRPC. Dapr does not use HTTP for the communication between sidecars, always using gRPC, while carrying over the semantics of the protocol used when called from the app. Service invocation is the underlying mechanism of communicating with Dapr Actors. - -For more information see [service invocation overview]({{% ref service-invocation-overview.md %}}). - -### Kubernetes performance test setup - -The test was conducted on a 3 node Kubernetes cluster, using commodity hardware running 4 cores and 8GB of RAM, without any network acceleration. -The setup included a load tester ([Fortio](https://github.com/fortio/fortio)) pod with a Dapr sidecar injected into it that called the service invocation API to reach a pod on a different node. - -Test parameters: - -* 1000 requests per second -* Sidecar limited to 0.5 vCPU -* Sidecar mTLS enabled -* Sidecar telemetry enabled (tracing with a sampling rate of 0.1) -* Payload of 1KB - -The baseline test included direct, non-encrypted traffic, without telemetry, directly from the load tester to the target app. - -### Control plane performance - -The Dapr control plane uses a total of 0.009 vCPU and 61.6 Mb when running in non-HA mode, meaning a single replica per system component. -When running in a highly available production setup, the Dapr control plane consumes ~0.02 vCPU and 185 Mb. - -| Component | vCPU | Memory -| ------------- | ------------- | ------------- -| Operator | 0.001 | 12.5 Mb -| Sentry | 0.005 | 13.6 Mb -| Sidecar Injector | 0.002 | 14.6 Mb -| Placement | 0.001 | 20.9 Mb - -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. - -| Component | vCPU | Memory -| ------------- | ------------- | ------------------------ -| Operator | Number of pods requesting components, configurations and subscriptions | -| Sentry | Number of certificate requests | -| Sidecar Injector | Number of admission requests | -| Placement | Number of actor rebalancing operations | Number of connected actor hosts - -### Data plane performance - -The Dapr sidecar uses 0.48 vCPU and 23Mb per 1000 requests per second. -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 %}}). - -This performance is on par or better than commonly used service meshes. - -### Latency - -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). -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. - -Latency for 90th percentile - -
- -Latency for 99th percentile diff --git a/daprdocs/static/images/perf_invocation_p90.png b/daprdocs/static/images/perf_invocation_p90.png deleted file mode 100644 index 71327a80dd648bbe1a51164bae5d3e90bed39f64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28443 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 RG;l`LMGc*E#4{Fm{tcefR}}yN diff --git a/daprdocs/static/images/perf_invocation_p99.png b/daprdocs/static/images/perf_invocation_p99.png deleted file mode 100644 index 5d840e3d9dda3f52bbf31cd51df3bd2adbef4588..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28636 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 S8TAXc;u;Le=oldh%;zI2( zMU>IyE#CQX>$V)6{!3F2m#@YBxfk%t>U(NWw{b|?I`y55v~I z&#XN>yRME}iWo(n;t6pgYgTnFq2Iwc+?je>78iEVdbD`Cp^NrQ8>pMK#1$Qw|M$hi?FI;i?oZ+7 z3v!+!HeSDmO2ixi4;lUHQscVzRj*~nvWz{xo-V&ukSK{whuL55l-SZXueNRQDGcZt z^%G*d3=i$>k;vz#w3gZo_Vo4(^8TK8xTnjj2U}&Uz+ov-WXk<${(cUfxB88ss0_PpXJ8b5EWDw+u?D-)Tcm2z1*i?L}@J#KCy zjH|L;%jI(~&y9vjqpLd06ZmE0u_I4BT`N4=lr$$9FMMYO+XKR{iiah?UBtSYe!k|2 zzgAlqP~qzP`Px$pZ!$TL;J(@-*7s0uvrhxlG8#Aiz%p9kiKJ;lP2l;qP~8;vzWz;= zmQtHY(IGpkmZk`m4{o*Eam`9mMXq4d;mY?kqwed+$KT+M#KQ(Y zHZu_SlBwnPsqV_TwbE4h<~c^>q2{W?J6VG0i#4JkFSqz(Y}b+uMiFcL*12KR29YCe z(MjIk@}&gQ8_U&nGRyDCzetA5-+O!RjXiSV0ov)Wr1r7G0$Wi=I9)KP8G zDkaX~Dbqs@nL3!3wIEM6vnm>&w-&$TnpDQ)E?d< zWf`q}@bJOOptSs^TU5_Y*;=Sg7I4N4B3&otolW1kzx^Ec+wR`Ub56qYhr&eKTquF= z25l0NqSaZRBN;LFlV3y8f7!>EInH&{DM=x-JePSyrYhyWgrkiOrFHokY0Q5tR0g;E zU?tJbE4Wyb%%-4N(oFoV*_>8#*XqI3&1-7KoW8`@5&@SbB>00kov8MP@ibAwHatjHw^6z>Vl*RooVgds6A8?J&0@11f-Dy7S^ zh-Z9I28tDrz^aG^c>9%}Q-`;jxcct*+L`q;is*ZJ+dENs&zyEAH;ST&;i6n03haU_ zq!lt9_$}qV^R-bFT)&)&1j@kSa*JrW=dw*Siip;YtBwv{l;Tq1L#0kc@Y0~TK+(<{ zx+W&gN}y?BGb0Tf3vTVyIQjPx3@QF?bKkhpMHp)W(pb7{?c*lPdX&M(e^>pNE#xF1 zbB80I7jgZ>ZqC8yeV;$`#W^VuHtdClD?gf7gtB3W_Kz6lq`?i*g_HKTOxvc9-{fi! zrH-2M8&AcIr8Px*pi>=%t^fI&pmnK7cj0awC_mg~z7i5v;(rvgJ|iDWNRrT!qEZ#WvwU(7z|1N$v)tjd_a}_lTZgNbcBKafy;aO&B?t8{ys?t! zuH&M?N<31uQEJ(iia0~e*X#Ob`K7NVyfAudDRPz4V|qc$xKPCtHq`w_c_6q>i+X_y zNmH}V6_OkERKJd+h5v$0G<3PEHkYACC`K2&bfszHO?YWQFb_eO)qoQ*iFUmf!x#;h zmY#08^4SZ>ph^A^Df5RJ%64L+6TT7!p``uMxLv%Svy!5qsuOEJ((?DSm^3F-RqWKj zk$3uAt~%h>PhFrJJL02FZ(Xk;H~-0P+W(*h{6{0$^`oy_pBQW#BZ365cqD~qp#5qe zaLCkYW0y(JpT1YRG@Nx1CKP6(_nvGu9BK34cprjC-8 z1=;dR^;*QJ*v(%pL2Q=}ea-Z1*p8TFInrMf~ZgED_q+GON?XEhE%%8KoyFruPanIbc#x5t{R%V9!fIN9WOf*tcw z?TwSi^ZNLlq>^l{CS(`^J($OOS+taSCYLu$)nT!5$TaRBn%x(q3K;l@{9+P?`7sTe zbjNufg*nSB;~baC33o%Jny;>+$IzvC-8k5p2V11fjS;o%1_KekoRK+|u(3hjP1>-X{U69J$WP%)9u=VAJGd7X!m4EpB#zNb;`7zkn2b1xq$ z(Yt*4y1#`~#sA}EXfO5D9^;dfkC&f6#3?=ge%zruSv-BlCmJu(Zv34 zO!%i5)W5yS6Q`~}=0)pq1v}>n`ZY931|vLNz4Y-`fM-B8OR8bOXL96%SWBS_8JzER z-eCwkE*85StSv2{Y=x1d(q7IvJ8H(W!INO2cTcTPF~Q;zte{R0JDR=ltVJeZf72{< z7pM<56E^&*-0QJq>ZNy0ky>5|9Ik`rJFLhWO%ip zmBPcfNARcQA06=0*Ryph`Z3+-@24=6s^7*4t)GDKySPt%_3t@VT#clsN6cd-cc}%g z+VKAcCH*_-xL4}9GjVQhvCVC$(scE7rD*WlJRm2lUsKp#=H~r2(HmFySz(tk9085a zWS|854*B7UB+afR*gm7xiLvL3zg}dH2-U0(QiFT}%?;XhN7x0JTd++8Q~K5B>uQTl z*6alhF-E&hG&hmUsXLnv^LGCaKWoFdYU26zWS|Y*Fa2!-fou?@5jO0UTnF9)FYRTJ z9HuBPDk=&%d1PS5x#hy59Q>pK>Bz~;^qL0cg*RDi3vuF9}p7}cJ^4EH=vLQxyS+#e!>2)lvCLcRbfx4XN$ zHU?OA0|RRSH6-~@WyEeePuc@heT4Bg3@F4*Nl&TkU^)C`W@hTj62?GqfMX8dlS;l# z!mbd!e>&e=L9MO;;JAi8T~p0rGd&5dGXw+^71xMJ^7^7v17O8{R^%4UVzQ(T--&M_ zut6{iY;nM$;lK}-hE5=hekVrmz8Bryo(F=1TaUobAZM6An7FK~51sHa`%l4aas>xzsHVFFWclEebLNInr|`%jM$jROawYAjY4u2Y4(iE&mN$jJe-$coj~ z4EXY^ z63Hj~V?e9`0DK5Ui<|~HaR{RKNx;b50Lsx_@>f4>6tcMWexs1{z}teHoEf5BG#cQn zMfw`zd5NSoFsO0Hbe{VBhwahIQ|ZC<_~4V%*+sAvFlrWI_y};AzCJ|SIQNgcz_eDu zcu&By-rFt}wMQwJNfU+qlrJ`^BZd3*?yHTABA|9KsWluh4(1YGeGqMC6-57z?0Sqg zM61(?c5#vfpi!!G=xv}~FJiuJy>LWupD!c}K*_Wp?)C=$dhmA{Yx;Zspt(u?;Bo?i z4$u7&<$P{)APP21Ie?pi(%eBf#}yU52TKD+?n$xXHxa{$lROFk>nl&DAl4ye$sP%ukV06V3&U2&IoS-pzs~8F%v<3@YPa!31fVQ(t0^LIf&XpdGuNy zxj+t+1W~HNI$);61>Co{@HLz#E$-rOkSw@R|G8UJ6xvihKZ!^Fdi*$hhQywU(^oUaU=+QlIuZEqmDa;UACES7E!hIt2q38eab9(y z4B$m1B&V>KqWaBvn5TES3eVNm?{#H5#nj zs^F^T@kAE9Ub9D1=c$}E8>E6|0j~=7ocm!*IW71utK=0wtPpZK@oFXD@1QqC&Q0-h zoDWiJ^Sy0B-DkHwE(8%F*l@SG8>`Wz`WU$L&k|Y};1eWh0cj-}3c5bwmWOC3lo0N*!$fabcaC#D4s!KRbt ztgF`oNX#J!^6s!>-3pBJu}?9fXjvN*tp~#HwOgdp3^Ncej2-Mvf@MAu*8onwI(t4k z&#YuhA%))TN5&};?f$~>0X2sSs4c`q2aZXI(I>Rk6IvY1&CTIDCS+!kdxMB>yevY_ zax0&FgJAukXv0)I7o-5A6h*m4bNbF`7-FpVQqCDEm#;Oie{LT7~K%G@BjMX zLyIsAVO9))Ix5A``E7uWo5Sf>fF$V)7zi*`o#6a$VL<_l|4BwxZo(=+J z=L7Vu(0bz4%a>R4BR4Hgw}DHQ^jI zL|%jp1vtG>nd_i(0F9EBSFQZyJYeV{=trOJXTjD;Y+Bjkc#8@Ixi$1pS0VVPKnnf% z@#FGzPc&E^lnDe{pVNAT8pC8ehAhmts!#!12NiA!MGM%pIm2QoLO5`AEdO?g2hwXS z>>BgZ?uMX?z}67YP-l;-1NAH%^n?^LT&gJOp?M2o#kUe!cb41`X!E1i-JB0~+5ey+ z{-;nWGjhEKdp=;p&lU35a|`sf^@+i^Pz4jNQ*=kCq`2mr&U+}fCGPvyYKhZ+#nU#j{RS%JPQtR2in=`Ec-%D8M%}HQ8Swqs z{hDGMm-H;rCz75)g}E<$S~EO-oBJu_s38^41tnKPdolm13`0fK4t)fu?~kJE1VAVB zz9^+~=0$7BgfhdTC60`%IT6R>5=~OIJ3W}0!eNePI3+igsh3F~UL`kJQ>SgrkwFD5 z=gm|~Dfy4)?mBpX-lJp=N3of&Xph+uGXb-!iK2%#DDx@x|n9zg$)Z z4}W0LTu>B>(gz4Wpg}V0h{_((3-~kX33QgC0?%fJAGoKH^3F5mg+_kKHgMkN3(=?6T8JZ@QNxfIDEE@()Wt2R(;D)_`Y~GD+NWIaQC|3D0bB_OF*G~T9Wh<(cqc$*W zYYmQfP^#=+W>AWlCr(tnC}A?IS4y#gd9508f@oIzMeFJcu4jXD_=w)&JDMD~VasGE zDzoO7kke1c76sLTG4r$MW*9pB>EwX_t&{!#N&Zxh#{XG0FgY8}ZS#97UitVmglv?K M=EbwQXKe2L2R+V@S^xk5