Home avatar

蜷缩的蜗牛

专注云原生运维

Grafana Mimir 和 VictoriaMetrics 之间的性能测试

Grafana 实验室的 Mimir 是一个在 AGPLv3 许可下新的时间序列数据库,该工程团队从 Cortex TSDB 中汲取精华,同时降低了复杂性并提高了可扩展性。

根据 Grafana 实验室的测试,Mimir 可以扩展到 10 亿个活跃时间序列和 5000 万个样本/秒的摄取率,该基准测试要求运行一个具有 7000 个 CPU 核心和 30TiB 内存的集群,这已经是我听说的最大、最昂贵的时间序列数据库的公共基准测试了。要重现这样规模的基准测试并不那么容易,幸运的是,在大多数情况下,用户的工作负荷要求要低得多,比较容易模拟。在本文我们将尝试比较 VictoriaMetricsGrafana Mimir 集群在相同硬件上的中等工作负载下运行的性能和资源使用情况。

Iptable的概念

Iptales四表五链

四表五链关系概览

raw 表mangle 表nat 表filter 表
PREROUTING 链
INPUT 链
FORWARD 链
OUTPUT 链
POSTROUTING 链

Prometheus Operator 常用指标

Prometheus Operator 安装完成后会有很多默认的监控指标,一不注意就大量的报警产生,所以我们非常有必要了解下这些常用的监控指标,有部分指标很有可能对于我们自己的业务可有可无,所以可以适当的进行修改,这里我们就来对常用的几个指标进行简单的说明。

1. Kubernetes 资源相关

1.1 CPUThrottlingHigh

关于 CPU 的 limit 合理性指标。查出最近5分钟,超过25%的 CPU 执行周期受到限制的容器。表达式:

1
2
3
4
sum(increase(container_cpu_cfs_throttled_periods_total{container!="", }[5m])) by (container, pod, namespace)
          /
sum(increase(container_cpu_cfs_periods_total{}[5m])) by (container, pod, namespace)
          > ( 25 / 100 )

相关指标:

    • container_cpu_cfs_periods_total:容器生命周期中度过的 cpu 周期总数
  • container_cpu_cfs_throttled_periods_total:容器生命周期中度过的受限的 cpu 周期总数

Istio性能指标

Istio 指标

Istio 自己的 Metrics

标准指标说明

参考:https://istio.io/latest/docs/reference/config/metrics/

Metrics

对于 HTTP、HTTP/2 和 GRPC 流量,Istio 默认生成以下指标:

  • Request Count (istio_requests_total): This is a COUNTER incremented for every request handled by an Istio proxy.
  • Request Duration (istio_request_duration_milliseconds): This is a DISTRIBUTION which measures the duration of requests.
  • Request Size (istio_request_bytes): This is a DISTRIBUTION which measures HTTP request body sizes.
  • Response Size (istio_response_bytes): This is a DISTRIBUTION which measures HTTP response body sizes.
  • gRPC Request Message Count (istio_request_messages_total): This is a COUNTER incremented for every gRPC message sent from a client.
  • gRPC Response Message Count (istio_response_messages_total): This is a COUNTER incremented for every gRPC message sent from a server.

Envoy性能指标

Envoy 指标

Envoy 指标概述

Envoy 的主要目标之一是使网络易于理解。 Envoy 会根据其配置方式产生大量统计信息。一般来说,统计数据(指标)分为三类:

  • Downstream:Downstream 指标与外来的连接/请求有关。它们由 listenerHTTP connection manager(HCM)TCP proxy filter 等产生。
  • Upstream:Upstream 指标与外向的连接/请求有关。它们由 connection poolrouter filtertcp proxy filter等产生。
  • ServerServer 指标信息描述 Envoy 服务器实例的运作情况。服务器正常运行时间或分配的内存量等统计信息。

在最简单场景下,单个 Envoy Proxy 通常涉及 DownstreamUpstream 统计数据。这两种指标反映了取该 网络节点 的运行情况。来自整个网格的统计数据提供了每个 网络节点 和整体网络健康状况的非常详细的汇总信息。Envoy 的文档对这些指标有一些简单的说明。

Istio组件详解

在前两篇博客中:

我向你详细介绍了 Istio 数据平面中的流量,但数据平面并不能孤立的存在,本文将向你展示 Istio 中的控制平面和数据平面各组件的端口及其功能,有助于你了解这些流量之间的关系及故障排查。

Sidecar 中的流量类型及 Iptables 规则详解

我在之前的一篇博客中讲解过 Istio 中 sidecar 的注入、使用 iptables 进行透明流量拦截及流量路由的详细过程,并以 Bookinfo 示例中的 productpage 服务访问 reviews 服务,和 reviews 服务访问 ratings 服务为例绘制了透明流量劫持示意图。在那个示意图中仅展示了 reviews pod 接收流量和对外访问的路由,实际上 sidecar 内的流量远不止于此。

0%