{"id":34366,"date":"2019-10-31T21:57:56","date_gmt":"2019-10-31T18:57:56","guid":{"rendered":"https:\/\/prohoster.info\/blog\/benchmark-potrebleniya-tsp-dlya-istio-i-linkerd\/"},"modified":"2019-10-31T21:57:56","modified_gmt":"2019-10-31T18:57:56","slug":"benchmark-potrebleniya-tsp-dlya-istio-i-linkerd","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/benchmark-potrebleniya-tsp-dlya-istio-i-linkerd","title":{"rendered":"CPU Consumption Benchmark for Istio and Linkerd","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"CPU Consumption Benchmark for Istio and Linkerd\" src=\"\/wp-content\/uploads\/d176b132a69c09195803a1398df64637.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"vvedenie\">Introduction<\/h2>\n<p><\/p>\n<p>We at <noindex><a rel=\"nofollow\" href=\"https:\/\/www.shopify.ca\/\">Shopify<\/a><\/noindex> we focused on deploying Istio as a service mesh. Generally, everything is fine except for one thing: <strong>it's expensive<\/strong>.<\/p>\n<p><\/p>\n<p>In <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/docs\/concepts\/performance-and-scalability\/#cpu-and-memory\">published benchmarks<\/a><\/noindex> it is stated for Istio:<\/p>\n<p><\/p>\n<blockquote><p>With Istio 1.1, the proxy consumes approximately 0.6 vCPU (virtual cores) per 1000 requests per second.<\/p><\/blockquote>\n<p>For the first region in the service mesh (2 proxies on each side of the connection), we will need 1200 cores just for the proxies, based on one million requests per second. According to Google's cost calculator, that amounts to about $40\/month\/core for the configuration <code>n1-standard-64<\/code>, which means this single region will cost us over 50 thousand dollars a month for 1 million requests per second.<\/p>\n<p><\/p>\n<p>Ivan Sim (<noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@ihcsim\">Ivan Sim<\/a><\/noindex>) <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@ihcsim\/linkerd-2-0-and-istio-performance-benchmark-df290101c2bb\">visually compared<\/a><\/noindex> service mesh latencies from last year and promised the same for memory and CPU, but it didn't work out:<\/p>\n<p><\/p>\n<blockquote><p>Apparently, values-istio-test.yaml will significantly increase CPU requests. If I calculated correctly, we need about 24 CPU cores for the control panel and 0.5 CPU for each proxy. I don't have that many. I will repeat the tests when I am allocated more resources.<\/p><\/blockquote>\n<p>I wanted to see for myself how Istio's metrics compare to another open-source service mesh: <noindex><a rel=\"nofollow\" href=\"https:\/\/linkerd.io\/\">Linkerd<\/a><\/noindex>.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"ustanovka-service-mesh\">Installing the service mesh<\/h3>\n<p><\/p>\n<p>First, I installed in the cluster <noindex><a rel=\"nofollow\" href=\"https:\/\/supergloo.solo.io\/\">SuperGloo<\/a><\/noindex>:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ supergloo init\ninstalling supergloo version 0.3.12\nusing chart uri https:\/\/storage.googleapis.com\/supergloo-helm\/charts\/supergloo-0.3.12.tgz\nconfigmap\/sidecar-injection-resources created\nserviceaccount\/supergloo created\nserviceaccount\/discovery created\nserviceaccount\/mesh-discovery created\nclusterrole.rbac.authorization.k8s.io\/discovery created\nclusterrole.rbac.authorization.k8s.io\/mesh-discovery created\nclusterrolebinding.rbac.authorization.k8s.io\/supergloo-role-binding created\nclusterrolebinding.rbac.authorization.k8s.io\/discovery-role-binding created\nclusterrolebinding.rbac.authorization.k8s.io\/mesh-discovery-role-binding created\ndeployment.extensions\/supergloo created\ndeployment.extensions\/discovery created\ndeployment.extensions\/mesh-discovery created\ninstall successful!<\/code><\/pre>\n<p><\/p>\n<p>I used SuperGloo because it significantly simplifies the initial setup of a service mesh. I hardly had to do anything. In production, we do not use SuperGloo, but it is perfect for such tasks. I had to apply just a couple of commands for each service mesh. I used two clusters for isolation \u2014 one each for Istio and Linkerd.<\/p>\n<p><\/p>\n<p>The experiment was conducted on Google Kubernetes Engine. I used Kubernetes <code>1.12.7-gke.7<\/code> and a node pool <code>n1-standard-4<\/code> with automatic node scaling (minimum 4, maximum 16).<\/p>\n<p><\/p>\n<p>Then I installed both service meshes from the command line.<\/p>\n<p><\/p>\n<p>First, Linkerd:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ supergloo install linkerd --name linkerd\n+---------+--------------+---------+---------------------------+\n| INSTALL |     TYPE     | STATUS  |          DETAILS          |\n+---------+--------------+---------+---------------------------+\n| linkerd | Linkerd Mesh | Pending | enabled: true             |\n|         |              |         | version: stable-2.3.0     |\n|         |              |         | namespace: linkerd        |\n|         |              |         | mtls enabled: true        |\n|         |              |         | auto inject enabled: true |\n+---------+--------------+---------+---------------------------+<\/code><\/pre>\n<p><\/p>\n<p>Next is Istio:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ supergloo install istio --name istio --installation-namespace istio-system --mtls=true --auto-inject=true\n+---------+------------+---------+---------------------------+\n| INSTALL |    TYPE    | STATUS  |          DETAILS          |\n+---------+------------+---------+---------------------------+\n| istio   | Istio Mesh | Pending | enabled: true             |\n|         |            |         | version: 1.0.6            |\n|         |            |         | namespace: istio-system   |\n|         |            |         | mtls enabled: true        |\n|         |            |         | auto inject enabled: true |\n|         |            |         | grafana enabled: true     |\n|         |            |         | prometheus enabled: true  |\n|         |            |         | jaeger enabled: true      |\n+---------+------------+---------+---------------------------+<\/code><\/pre>\n<p><\/p>\n<p>The crash-loop took several minutes, and then the control panels stabilized.<\/p>\n<p><\/p>\n<p><em>(Note: SuperGloo currently supports only Istio 1.0.x. I repeated the experiment with Istio 1.1.3, but I did not notice any significant difference.)<\/em><\/p>\n<p><\/p>\n<h3 id=\"nastroyka-avtomaticheskogo-vnedreniya-istio\">Configuring Automatic Istio Injection<\/h3>\n<p><\/p>\n<p>To have Istio install the Envoy sidecar, we use the sidecar injector \u2014 <code>MutatingAdmissionWebhook<\/code>. We won't discuss it in this article. I'll just say that it's a controller that monitors access for all new pods and dynamically adds the sidecar and initContainer responsible for tasks. <code>iptables<\/code>.<\/p>\n<p><\/p>\n<p>At Shopify, we wrote our own access controller for injecting sidecars, but in this benchmark, I took the controller that comes with Istio. The default controller injects sidecars when there's a label in the namespace. <code>istio-injection: enabled<\/code>:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ kubectl label namespace irs-client-dev istio-injection=enabled\nnamespace\/irs-client-dev labeled\n\n$ kubectl label namespace irs-server-dev istio-injection=enabled\nnamespace\/irs-server-dev labeled<\/code><\/pre>\n<p><\/p>\n<h3 id=\"nastroyka-avtomaticheskogo-vnedreniya-linkerd\">Configuring Automatic Linkerd Injection<\/h3>\n<p><\/p>\n<p>To set up the injection of Linkerd sidecars, we use annotations (I added them manually through <code>kubectl edit<\/code>):<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">metadata:\n  annotations:\n    linkerd.io\/inject: enabled<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"plaintext\">$ k edit ns irs-server-dev \nnamespace\/irs-server-dev edited\n\n$ k get ns irs-server-dev -o yaml\napiVersion: v1\nkind: Namespace\nmetadata:\n  annotations:\n    linkerd.io\/inject: enabled\n  name: irs-server-dev\nspec:\n  finalizers:\n  - kubernetes\nstatus:\n  phase: Active<\/code><\/pre>\n<p><\/p>\n<h3 id=\"simulyator-otkazoustoychivosti-istio\">Istio Failover Simulator<\/h3>\n<p><\/p>\n<p>We created an Istio fault tolerance simulator to experiment with traffic unique to Shopify. We needed a tool to create arbitrary topologies that represent a specific part of our service graph with dynamic configurations for modeling specific workloads.<\/p>\n<p><\/p>\n<p>Shopify's infrastructure experiences a heavy load during flash sales. In this context, Shopify <noindex><a rel=\"nofollow\" href=\"https:\/\/www.shopify.com\/enterprise\/flash-sale\">recommends that sellers hold such sales more frequently<\/a><\/noindex>. Large clients sometimes give us a heads-up about scheduled flash sales. Others conduct them unexpectedly at any time of day or night.<\/p>\n<p><\/p>\n<p>We wanted our fault tolerance simulator to model workflows corresponding to the topologies and workloads that previously overloaded Shopify's infrastructure. The primary goal of using a service mesh is that we need reliability and fault tolerance at the network level, and it is crucial for us that the service mesh effectively handles workloads that had previously disrupted service operations.<\/p>\n<p><\/p>\n<p>At the core of the fault tolerance simulator is a worker node acting as a service mesh node. The worker node can be configured statically at startup or dynamically via REST API. We use dynamic worker node configuration to create workflows in the form of regression tests.<\/p>\n<p><\/p>\n<p>Here\u2019s an example of such a process:<\/p>\n<p><\/p>\n<ul>\n<li>We launch 10 servers as a <code>bar<\/code> service that returns a response <code>200\/OK<\/code> after 100 ms.<\/li>\n<li>We launch 10 clients \u2014 each sending 100 requests per second to <code>bar<\/code>.<\/li>\n<li>Every 10 seconds, we remove 1 server, monitoring errors <code>5xx<\/code> on the client.<\/li>\n<\/ul>\n<p><\/p>\n<p>At the end of the workflow, we examine logs and metrics to check if the test passed. This way, we learn about the performance of our service mesh and conduct regression testing to verify our assumptions about fault tolerance.<\/p>\n<p><\/p>\n<p><em>(Note: We are considering open-sourcing the Istio fault tolerance simulator, but we are not ready for that yet.)<\/em><\/p>\n<p><\/p>\n<h3 id=\"simulyator-otkazoustoychivosti-istio-dlya-benchmarka-service-mesh\">Istio Fault Tolerance Simulator for Service Mesh Benchmarking<\/h3>\n<p><\/p>\n<p>We configure several worker nodes of the simulator:<\/p>\n<p><\/p>\n<ul>\n<li><code>irs-client-loadgen<\/code>: 3 replicas, each sending 100 requests per second to <code>irs-client<\/code>.<\/li>\n<li><code>irs-client<\/code>: 3 replicas that receive requests, wait 100 ms and forward the request to <code>irs-server<\/code>.<\/li>\n<li><code>irs-server<\/code>: 3 replicas that return <code>200\/OK<\/code> after 100 ms.<\/li>\n<\/ul>\n<p><\/p>\n<p>With this configuration, we can measure a steady traffic flow between 9 endpoints. Sidecars at <code>irs-client-loadgen<\/code> and <code>irs-server<\/code> receive 100 requests per second, while <code>irs-client<\/code> \u2014 200 (incoming and outgoing).<\/p>\n<p><\/p>\n<p>We monitor resource usage through <noindex><a rel=\"nofollow\" href=\"https:\/\/www.datadoghq.com\/\">DataDog<\/a><\/noindex>, because we do not have a Prometheus cluster.<\/p>\n<p><\/p>\n<h2 id=\"rezultaty\">Results<\/h2>\n<p><\/p>\n<h3 id=\"paneli-upravleniya\">Control panels<\/h3>\n<p><\/p>\n<p>First, we examined CPU consumption.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/wd\/bb\/md\/wdbbmdzr0sx8tlfhmyinyglsr0i.png\"><img decoding=\"async\" alt=\"CPU Consumption Benchmark for Istio and Linkerd\" src=\"\/wp-content\/uploads\/ff1e892762132bd49e00fb319201c92f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<em>Linkerd dashboard ~22 milliwatts<\/em><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/nr\/1p\/ag\/nr1pagqdpichos1evmok6jafn7w.png\"><img decoding=\"async\" alt=\"CPU Consumption Benchmark for Istio and Linkerd\" src=\"\/wp-content\/uploads\/dc5e80d4abd81168cd944dc183882d9d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<em>Istio dashboard: ~750 milliwatts<\/em><\/p>\n<p><\/p>\n<p>The Istio dashboard uses about <strong>35 times more CPU resources<\/strong>, than Linkerd. Of course, everything is set to defaults, and a significant amount of CPU resources here is consumed by istio-telemetry (which can be disabled by foregoing some features). Even without this component, it still results in over 100 milliwatts, meaning <strong>4 times more<\/strong>, than Linkerd.<\/p>\n<p><\/p>\n<h3 id=\"sidecar-proksi\">Sidecar proxies<\/h3>\n<p><\/p>\n<p>Then we checked proxy usage. There should be a linear dependence on the number of requests, but each sidecar has some overhead that affects the curve.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ve\/ky\/bw\/vekybwloc_ffg8_pmrm6cf56tqq.png\"><img decoding=\"async\" alt=\"CPU Consumption Benchmark for Istio and Linkerd\" src=\"\/wp-content\/uploads\/deb802e6660b9b76da355d078b2fe88e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<em>Linkerd: ~100 milliwatts for irs-client, ~50 milliwatts for irs-client-loadgen<\/em><\/p>\n<p><\/p>\n<p>The results make sense since the client proxy receives twice as much traffic as the loadgen proxy: for each outgoing request from loadgen, the client has one incoming and one outgoing.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/81\/wh\/lo\/81whlom3ym23hp7cisg3tsgu8qs.png\"><img decoding=\"async\" alt=\"CPU Consumption Benchmark for Istio and Linkerd\" src=\"\/wp-content\/uploads\/99705fa2396694d3314839dd3c6a39fb.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<em>Istio\/Envoy: ~155 milliwatts for irs-client, ~75 milliwatts for irs-client-loadgen<\/em><\/p>\n<p><\/p>\n<p>We see similar results for Istio sidecars.<\/p>\n<p><\/p>\n<p>But overall, the Istio\/Envoy proxies consume <strong>approximately 50% more CPU resources<\/strong>, than Linkerd.<\/p>\n<p><\/p>\n<p>We see the same pattern on the server side:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ou\/xl\/bw\/ouxlbwvtilchju4qykltpesfz58.png\"><img decoding=\"async\" alt=\"CPU Consumption Benchmark for Istio and Linkerd\" src=\"\/wp-content\/uploads\/cb235290b27fed8c24f9b9be381b3d91.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<em>Linkerd: ~50 milliwatts for irs-server<\/em><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/cd\/1p\/ia\/cd1pia4q2sniccgybpy-uipuubu.png\"><img decoding=\"async\" alt=\"CPU Consumption Benchmark for Istio and Linkerd\" src=\"\/wp-content\/uploads\/2a087237c7d0f13907e836849cd953b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<em>Istio\/Envoy: ~80 milliwatts for irs-server<\/em><\/p>\n<p><\/p>\n<p>On the server side, the Istio\/Envoy sidecar consumes <strong>approximately 60% more CPU resources<\/strong>, than Linkerd.<\/p>\n<p><\/p>\n<h3 id=\"zaklyuchenie\">Conclusion<\/h3>\n<p><\/p>\n<p>The Istio Envoy proxy consumes over 50% more CPU than Linkerd in our modeled workload. The Linkerd dashboard consumes significantly fewer resources than Istio, particularly concerning core components.<\/p>\n<p><\/p>\n<p>We are still considering how to reduce these costs. If you have ideas, please share!<\/p>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452956\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u041c\u044b \u0432 Shopify \u0437\u0430\u043d\u044f\u043b\u0438\u0441\u044c \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435\u043c Istio \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 service mesh. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0432\u0441\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442, \u043a\u0440\u043e\u043c\u0435 \u043e\u0434\u043d\u043e\u0439 \u0432\u0435\u0449\u0438: \u044d\u0442\u043e \u0434\u043e\u0440\u043e\u0433\u043e. \u0412 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0430\u0445 \u0434\u043b\u044f Istio \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f: \u0421 Istio 1.1 \u043f\u0440\u043e\u043a\u0441\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 0,6 vCPU (\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0434\u0435\u0440) \u043d\u0430 1000 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u043e\u043d\u0430 \u0432 service mesh (\u043f\u043e 2 \u043f\u0440\u043e\u043a\u0441\u0438 \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f) \u0443 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-34366","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u041c\u044b \u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/benchmark-potrebleniya-tsp-dlya-istio-i-linkerd\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0426\u041f \u0434\u043b\u044f Istio \u0438 Linkerd | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u041c\u044b \u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/benchmark-potrebleniya-tsp-dlya-istio-i-linkerd\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:57:56+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:57:56+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47CPU Consumption Benchmark for Istio and Linkerd | ProHoster","description":"Introduction We at.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/benchmark-potrebleniya-tsp-dlya-istio-i-linkerd","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0426\u041f \u0434\u043b\u044f Istio \u0438 Linkerd | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u041c\u044b \u0432.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/benchmark-potrebleniya-tsp-dlya-istio-i-linkerd","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:57:56+00:00","article:modified_time":"2019-10-31T18:57:56+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34366","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 18:56:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:23:16","updated":"2026-01-21 18:56:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/34366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=34366"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/34366\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=34366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=34366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=34366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}