监控持久卷性能

Posted

技术标签:

【中文标题】监控持久卷性能【英文标题】:Monitoring persistent volume performance 【发布时间】:2019-07-14 07:43:15 【问题描述】:

用例

我在 Kubernetes 中运行一个 kafka 集群,它在很大程度上依赖于适当的磁盘性能(IOPS、吞吐量等)。我正在使用 Google 的计算引擎磁盘 + Google kubernetes 引擎。因此我知道我创建的磁盘有以下近似限制:

IOPS(读/写):375 / 750 吞吐量(以 MB/s 为单位)(读/写):60 / 60

问题

尽管我知道大约 IOPS 和吞吐量限制,但我不知道我目前实际使用的是什么。我想用 prometheus + grafana 监控它,但我找不到任何可以导出持久卷的磁盘 io 统计信息的东西。我发现最好的是来自 kubelet 的磁盘空间统计信息:

kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_available_bytes

问题

我必须监控(最好通过 prometheus)附加在 Kubernetes 中的我的 kafka 持久卷的磁盘 io 使用情况?

编辑:

我发现的另一个发现是使用 node-exporter 的 node_disk_io 指标:

rate(node_disk_io_time_seconds_total[5m]) * 100

不幸的是,结果不包含节点名,甚至不包含持久卷(声明)名称。相反,它有device(例如'sdb')和instance(例如'10.90.206.10')标签,它们是唯一可以让我以某种方式监控特定持久卷的标签。这些标签的缺点是它们是动态的,并且可以随着 pod 重启或类似情况而改变。

【问题讨论】:

【参考方案1】:

您应该能够使用 Stackdriver 获得您正在寻找的指标。检查新的Stackdriver Kubernetes Monitoring。

您可以使用此QWikiLab 来测试工具,而无需在您的环境中安装。

【讨论】:

【参考方案2】:

您可以使用Stackdriver monitoring查看实例的I/O磁盘。您可以使用 Cloud Console 并进入虚拟机实例--> 监控页面找到它。

【讨论】:

我可以在堆栈驱动程序监控中看到所需的图表,并且可以在 Grafana 中使用堆栈驱动程序,但是我找不到这些指标在堆栈驱动程序中的存储位置。因此我无法将它与 Grafana 一起使用。 GCP 定义的指标存储在我们的内部平台中。您可以将此文档 [cloud.google.com/blog/products/management-tools/… 用于 Grafana 或将此 [cloud.google.com/monitoring/kubernetes-engine/prometheus] 用于 Prometheus 用于 Stackdriver。

以上是关于监控持久卷性能的主要内容,如果未能解决你的问题,请参考以下文章

服务性能监控指标

Redis性能指标监控

Redis性能指标监控

Redis性能监控指标汇总

Redis必会的性能监控指标汇总

Redis实战专题「性能监控系列」全方位探索Redis的性能监控以及优化指南