Google Cloud Platform:如何监控VM实例的内存使用情况

时间:2017-05-16 01:40:53

标签: memory memory-management google-cloud-platform google-compute-engine

我最近执行了迁移到Google Cloud Platform的操作,我非常喜欢它。

但是,我无法找到监控虚拟机内存使用情况的方法。正如您在附件中看到的那样,控制台提供有关CPU,磁盘和网络的利用率信息,但不提供有关内存的信息。

在不知道正在使用多少内存的情况下,如何理解是否需要额外内存?

enter image description here

6 个答案:

答案 0 :(得分:13)

通过在GCE VM中安装Stackdriver agent,可以监视其他metrics内存。 Stackdriver还提供alerting and notification功能。然而,代理度量标准仅适用于premium tier accounts

答案 1 :(得分:6)

您可以使用/ proc / meminfo虚拟文件系统获取有关当前内存使用情况的信息。您可以创建一个简单的bash脚本,从/ proc / meminfo中读取内存使用情况信息。该脚本可以作为cron作业服务定期运行。如果内存使用量超过给定阈值,脚本可以发送警报电子邮件。

请参阅此链接:http://www.pakjiddat.pk/articles/all/monitoring-cpu-and-memory-usage-on-linux

答案 2 :(得分:5)

目前,stackdriver agent仅支持对E2系列RAM的监视。不支持其他实例类型,例如N1,N2...。

请参阅支持的最新文档。 https://cloud.google.com/monitoring/api/metrics_gcp#gcp-compute

Stackdriver merics

答案 3 :(得分:1)

此处是最新答案。

如何查看GCP中的内存使用情况?

  1. 在虚拟机上安装代理。不到5分钟。
curl -sSO https://dl.google.com/cloudagents/add-monitoring-agent-repo.sh
sudo bash add-monitoring-agent-repo.sh
sudo apt-get update
sudo apt-get install stackdriver-agent

该代码段应安装该代理程序的最新版本,但有关最新指南,您始终可以参考 https://cloud.google.com/monitoring/agent/installation#joint-install

  1. 安装一两分钟后,您应该在GCP的“监视”部分中看到其他指标。 https://console.cloud.google.com/monitoring

where to search for memory metrics in GCP

说明以及为什么默认情况下它不可见?

可以在不同位置收集指标(例如CPU使用率或内存使用率)。例如,CPU使用率是主机(运行虚拟机并带有特殊软件的计算机)可以收集的一条信息。 与内存使用情况和虚拟机有关的是管理它的底层操作系统(虚拟机的操作系统)。主机不能真正知道使用了多少,因为在给该虚拟机的内存中可以看到的全部是字节流。

这就是为什么要在该虚拟机中安装 agents 的想法,以便从内部收集指标并将其运送到可以解释的地方。那里有许多类型的代理,但是Google推广了自己的代理 Monitoring Agent -并将其很好地集成到了整个GCP套件中。

答案 4 :(得分:0)

座席指标页面可能会有用: https://cloud.google.com/monitoring/api/metrics_agent

您需要安装stackdriver。请参阅:https://app.google.stackdriver.com/?project=“您的项目名称”

stackdriver指标页面将提供一些指导。您需要更改“项目名称”(例如 sinuous-dog-133823 )以适合您的帐户:

https://app.google.stackdriver.com/metrics-explorer?project=sinuous-dog-133823&timeSelection={"timeRange":"6h"}&xyChart={"dataSets":[{"timeSeriesFilter":{"filter":"metric.type=\"agent.googleapis.com/memory/bytes_used\" resource.type=\"gce_instance\"","perSeriesAligner":"ALIGN_MEAN","crossSeriesReducer":"REDUCE_NONE","secondaryCrossSeriesReducer":"REDUCE_NONE","minAlignmentPeriod":"60s","groupByFields":[],"unitOverride":"By"},"targetAxis":"Y1","plotType":"LINE"}],"options":{"mode":"COLOR"},"constantLines":[],"timeshiftDuration":"0s","y1Axis":{"label":"y1Axis","scale":"LINEAR"}}&isAutoRefresh=true

此REST调用将使您获得CPU使用率。您将需要修改参数以适合您的项目名称(例如 sinuous-dog-133823 )和其他需要满足的参数。

GET /v3/projects/sinuous-cat-233823/timeSeries?filter=metric.type="agent.googleapis.com/memory/bytes_used" resource.type="gce_instance"& aggregation.crossSeriesReducer=REDUCE_NONE& aggregation.alignmentPeriod=+60s& aggregation.perSeriesAligner=ALIGN_MEAN& secondaryAggregation.crossSeriesReducer=REDUCE_NONE& interval.startTime=2019-03-06T20:40:00Z& interval.endTime=2019-03-07T02:51:00Z& $unique=gc673 HTTP/1.1
Host: content-monitoring.googleapis.com
authorization: Bearer <your token>
cache-control: no-cache
Postman-Token: 039cabab-356e-4ee4-99c4-d9f4685a7bb2

答案 5 :(得分:0)

VM 内存指标默认不可用,它需要 Cloud Monitoring Agent 1

您显示的 UI 是 Dataprooc,它已经安装了代理,但默认情况下处于禁用状态,您不必重新安装它。要为 Dataproc 集群启用 Cloud Monitoring Agent,请在创建集群时设置 type UserStatic = typeof Model & { associate: (models: any) => void } & { new(values?: Record<string, unknown>, options?: BuildOptions): UserInstance } const User = <UserStatic>database.define('users', { ... 2。然后,您可以在 Cloud Monitoring 界面(尚未与 Dataproc 界面集成)中监控虚拟机内存并创建提醒。