要查看 Pod中 server 的资源使用情况(CPU 和内存),你需要使用 Kubernetes 的监控工具。最常用的是 kubectl top 命令。
✅ 方法一:使用 kubectl top(推荐)
1. 查看 Pod 的 CPU 和内存使用
            
            
              bash
              
              
            
          
          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. 查看节点资源使用(辅助判断)
            
            
              bash
              
              
            
          
          kubectl top node cpu4
        (因为该 Pod 运行在 NODE=cpu4)
查看节点整体负载,判断是否资源紧张。
✅ 方法二:查看 Pod 的资源请求与限制(Resource Requests & Limits)
            
            
              bash
              
              
            
          
          kubectl get pod server -n data-platform-test -o jsonpath='{.spec.containers[*].resources}'
        或更易读的格式:
            
            
              bash
              
              
            
          
          kubectl get pod server -n data-platform-test -o wide
        然后查看其 YAML 中的 resources 配置:
            
            
              bash
              
              
            
          
          kubectl get pod server -n data-platform-test -o yaml | grep -A 5 "resources:"
        输出示例:
            
            
              yaml
              
              
            
          
          resources:
  requests:
    memory: "2Gi"
    cpu: "500m"
  limits:
    memory: "4Gi"
    cpu: "2000m"
        这表示:
- 请求:启动时保证 0.5 核 CPU、2GB 内存
 - 限制:最多使用 2 核 CPU、4GB 内存
 
💡 结合
kubectl top的实际使用量,可判断是否合理。
✅ 方法三:查看实时日志和 JVM 内部状态(深入分析)
1. 进入容器查看 JVM 内存(如你之前做的)
            
            
              bash
              
              
            
          
          kubectl exec -it server -n data-platform-test -- /bin/bash
        然后运行:
            
            
              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 | 查看日志中的错误和性能信息 | 
🔍 示例:完整诊断流程
            
            
              bash
              
              
            
          
          # 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 无法使用。