promethues监控node节点的内存使用率比真实节点free 的高,为什么
时间: 2023-05-25 22:03:18 浏览: 118
有可能是由于Prometheus在收集节点指标时,会占用一定的内存资源,导致监控到的节点内存使用率比真实节点的free要低。此外,Prometheus的内存使用率可能也包含了缓存等暂时性的内存占用,而真实节点的free只计算了空闲的真实内存部分,也会出现该情况。另外,如果节点存在内存泄漏等问题,也可能导致Prometheus监控到的内存使用率比真实节点的free高。最好的解决方法是检查节点的内存使用情况并修复相关问题。
相关问题
prometheus节点CPU、内存、磁盘使用率的报警规则 以及 node-exporter应建的报警规则 均以yaml文件 promql 格式表示
好的,以下是 prometheus 节点 CPU、内存、磁盘使用率的报警规则和 node-exporter 应建的报警规则的 yaml 配置文件示例:
1. prometheus 节点 CPU、内存、磁盘使用率的报警规则
```yaml
groups:
- name: prometheus_rules
rules:
- alert: NodeCPUUsageHigh
expr: 100 * (1 - avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance)) > 90
for: 5m
labels:
severity: warning
annotations:
summary: "CPU usage is high on instance {{ $labels.instance }}"
description: "CPU usage is high on instance {{ $labels.instance }} (value: {{ $value }})."
- alert: NodeMemoryUsageHigh
expr: 100 * (node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes > 90
for: 5m
labels:
severity: warning
annotations:
summary: "Memory usage is high on instance {{ $labels.instance }}"
description: "Memory usage is high on instance {{ $labels.instance }} (value: {{ $value }})."
- alert: NodeDiskUsageHigh
expr: 100 * node_filesystem_size_bytes{fstype!="tmpfs", fstype!="rootfs"} - node_filesystem_free_bytes{fstype!="tmpfs", fstype!="rootfs"} > 90 * node_filesystem_size_bytes{fstype!="tmpfs", fstype!="rootfs"}
for: 5m
labels:
severity: warning
annotations:
summary: "Disk usage is high on instance {{ $labels.instance }}"
description: "Disk usage is high on instance {{ $labels.instance }} (value: {{ $value }})."
```
2. node-exporter 应建的报警规则
```yaml
groups:
- name: node_exporter_rules
rules:
- alert: NodeCPUUsageHigh
expr: 100 * (1 - avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance)) > 90
for: 5m
labels:
severity: warning
annotations:
summary: "CPU usage is high on instance {{ $labels.instance }}"
description: "CPU usage is high on instance {{ $labels.instance }} (value: {{ $value }})."
- alert: NodeMemoryUsageHigh
expr: 100 * (node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes > 90
for: 5m
labels:
severity: warning
annotations:
summary: "Memory usage is high on instance {{ $labels.instance }}"
description: "Memory usage is high on instance {{ $labels.instance }} (value: {{ $value }})."
- alert: NodeDiskUsageHigh
expr: 100 * node_filesystem_size_bytes{fstype!="tmpfs", fstype!="rootfs"} - node_filesystem_free_bytes{fstype!="tmpfs", fstype!="rootfs"} > 90 * node_filesystem_size_bytes{fstype!="tmpfs", fstype!="rootfs"}
for: 5m
labels:
severity: warning
annotations:
summary: "Disk usage is high on instance {{ $labels.instance }}"
description: "Disk usage is high on instance {{ $labels.instance }} (value: {{ $value }})."
- alert: NetworkTrafficHigh
expr: sum(rate(node_network_receive_bytes_total[5m]) + rate(node_network_transmit_bytes_total[5m])) by (instance) > 1e+08
for: 5m
labels:
severity: warning
annotations:
summary: "Network traffic is high on instance {{ $labels.instance }}"
description: "Network traffic is high on instance {{ $labels.instance }} (value: {{ $value }})."
- alert: ProcessCountHigh
expr: count(processes) by (instance) > 600
for: 5m
labels:
severity: warning
annotations:
summary: "Process count is high on instance {{ $labels.instance }}"
description: "Process count is high on instance {{ $labels.instance }} (value: {{ $value }})."
- alert: SystemLoadHigh
expr: node_load1 > 2.5 or node_load5 > 2 or node_load15 > 1.5
for: 5m
labels:
severity: warning
annotations:
summary: "System load is high on instance {{ $labels.instance }}"
description: "System load is high on instance {{ $labels.instance }} (value: {{ $value }})."
```
需要注意的是,上述示例中的 promql 表达式只是简单的示例,具体的阈值和表达式应该根据实际情况进行调整。另外,需要将上述 yaml 配置文件保存为一个文件,比如 node-exporter-rules.yaml,并将该文件加入到 Prometheus 的配置文件中以启用这些报警规则。
trino 命令执行当前cpu使用率,内存使用率,进程等信息
在Trino中,要获取当前的CPU使用率、内存使用率以及有关进程的信息,你可以使用`SHOW SYSTEM STATUS`命令,它显示了关于系统运行的各种统计信息。以下是如何获取特定信息:
1. **CPU使用率**:
```sql
SELECT `node.cpu_percent`, `query_pool.queue_current` AS active_queries
FROM system.runtime.nodes;
```
这将返回每个节点的CPU百分比,并展示活跃查询的数量。
2. **内存使用率**:
```sql
SELECT `node.memory_status`, `system_memory.total_bytes`, `system_memory.free_bytes`
FROM system.runtime.nodes;
```
查看每个节点的总内存和可用内存。
3. **进程信息(查询相关)**:
```sql
SELECT * FROM system.runtime.queries;
```
可以查看所有正在运行的查询,包含查询ID、用户、开始时间、结束时间以及资源使用情况。
请注意,以上查询结果可能会因版本差异而略有不同,实际执行时请确认官方文档的最新指南。另外,如果你想要更深入地了解进程状态,可能需要使用更复杂的查询或者通过Trino的日志文件来获得详细信息。
阅读全文