当前位置: 首页 > news >正文

查看部署在K8S服务的资源使用情况

要查看 Pod中 server 的资源使用情况(CPU 和内存),你需要使用 Kubernetes 的监控工具。最常用的是 kubectl top 命令。


✅ 方法一:使用 kubectl top(推荐)

1. 查看 Pod 的 CPU 和内存使用
kubectl top pod server -n data-platform-test

输出示例:

NAME                        CPU(cores)   MEMORY(bytes)
server   250m         850Mi
  • CPU(cores):250m = 0.25 个 CPU 核心(25%)
  • MEMORY(bytes):850Mi = 850 MiB 内存

🔔 如果提示 error: metrics not available yet,说明 Metrics Server 未安装或未就绪。


2. 查看节点资源使用(辅助判断)
kubectl top node cpu4

(因为该 Pod 运行在 NODE=cpu4

查看节点整体负载,判断是否资源紧张。


✅ 方法二:查看 Pod 的资源请求与限制(Resource Requests & Limits)

kubectl get pod server -n data-platform-test -o jsonpath='{.spec.containers[*].resources}'

或更易读的格式:

kubectl get pod server -n data-platform-test -o wide

然后查看其 YAML 中的 resources 配置:

kubectl get pod server -n data-platform-test -o yaml | grep -A 5 "resources:"

输出示例:

resources:requests:memory: "2Gi"cpu: "500m"limits:memory: "4Gi"cpu: "2000m"

这表示:

  • 请求:启动时保证 0.5 核 CPU、2GB 内存
  • 限制:最多使用 2 核 CPU、4GB 内存

💡 结合 kubectl top 的实际使用量,可判断是否合理。


✅ 方法三:查看实时日志和 JVM 内部状态(深入分析)

1. 进入容器查看 JVM 内存(如你之前做的)
kubectl exec -it server -n data-platform-test -- /bin/bash

然后运行:

# 查看 Java 进程 PID
jps# 查看 GC 状态(假设 Java 进程 PID=7)
jstat -gc 7# 查看堆使用情况
jmap -heap 7# 查看大对象(可选)
jcmd 7 GC.class_histogram | head -20

✅ 方法四:使用可视化工具(长期监控)

如果你有以下工具,可以更直观查看:

工具用途
Metrics Server + HPA支持 kubectl top 和自动扩缩容
Prometheus + Grafana长期监控 CPU、内存、GC 时间等
kube-state-metrics查看 Pod 状态、重启次数等
ELK / Loki查看日志中的错误和性能信息

🔍 示例:完整诊断流程

# 1. 查看资源使用
kubectl top pod server -n data-platform-test# 2. 查看资源配置
kubectl get pod server -n data-platform-test -o yaml | grep -A 6 "resources:"# 3. 查看日志(是否有 OOM 或 GC 报错)
kubectl logs server -n data-platform-test --tail=100# 4. 进入容器查看 JVM 状态
kubectl exec -it server -n data-platform-test -- /bin/bash
jstat -gc <java-pid>

📌 总结

目标命令
实时 CPU/内存使用kubectl top pod <pod-name> -n <namespace>
资源请求/限制kubectl get pod -o yaml
JVM 内部 GC 状态jstat -gc <pid>
堆内存详情jmap -heap <pid>
日志分析kubectl logs

✅ 推荐先运行 kubectl top,这是最直接的方式。

如果你还没有安装 Metrics Server,请联系集群管理员安装,否则 kubectl top 无法使用。

http://www.lryc.cn/news/610685.html

相关文章:

  • 蓝桥杯----DS1302实时时钟
  • Could not load the Qt platform plugin “xcb“ in “无法调试与显示Opencv
  • 【升级打怪实录】uniapp - android 静态声明权限和动态请求权限的区别
  • AI+OA原生应用 麦当秀AIPPT
  • 用 PyTorch 实现一个简单的神经网络:从数据到预测
  • lesson32:Pygame模块详解:从入门到实战的2D游戏开发指南
  • 阿里云招Java研发咯
  • day 46 神经网络-简版
  • 从零用java实现小红书springboot_vue_uniapp(15)评论和im添加图片
  • vue和react的框架原理
  • Elasticsearch向量库
  • React18 严格模式下的双重渲染之谜
  • 使用maven-shade-plugin解决es跨版本冲突
  • DHTMLX重磅发布React Scheduler组件,赋能日程管理开发!
  • PDF 文本提取技术深度对比:基于规则与基于模型的两种实现
  • 数学建模-线性规划。
  • 2025国赛数学建模C题详细思路模型代码获取,备战国赛算法解析——层次分析法
  • Java+Redis+SpringBoot定时器-定时发布商品
  • UNet改进(30):SageAttention在UNet中的4-Bit量化实现详解
  • 多参数状态监测集成终端设备怎么选
  • 日常反思总结2025.8.5
  • 2025金九银十Java后端面试攻略
  • 关于为什么ctrl c退不出来SecureCRT命令行的原因及其解决方法:
  • 变频器实习DAY21 区分BU和SUB 区分BJT和MOS 体二极管
  • SAP-ABAP:SAP接口全生命周期核心规范-开发运维注意事项
  • 第十七天:原码、反码、补码与位运算
  • 【Unity笔记】Unity TextMeshPro 字体显示为方块的终极解决方案(含中文、特殊字符支持)
  • GitLab:一站式 DevOps 平台的全方位解析
  • GitHub 趋势日报 (2025年08月04日)
  • 【motion】HumanML3D 的安装2:psbody-mesh安装成功