查看容器内的 java 内存堆栈

进入容器

pod_name=baymax-service-6bf9657bc5-wc9s2

kubectl exec -it ${pod_name} bash

查看 java 进程 id

pstree -p | head

image.png

查看 java 内存配置

# jinfo -flag MaxHeapSize <pid>
jinfo -flag MaxHeapSize 1

image.png

java 内存配置: 3892314112 = 3.625G

查看服务器内存

pod_name=baymax-service-6bf9657bc5-wc9s2

node_name=$(kubectl describe pod ${pod_name} | awk '/^Node:/{print $2}' | cut -d/ -f1)
kubectl get node $node_name -ojson | jq '.status.capacity'

image.png

服务器内存:65808244K = 62.76G

测试用例

环境进程1进程2其他
物理机使用cgroup 限制cpu,使用 jvm 限制内存使用cgroup 限制cpu,不限制内存
物理机使用docker 限制 cpu 和内存使用docker 限制 cpu 和内存
k8s使用 k8s 限制 cpu 内存使用 k8s 限制 cpu 内存

监控用例

  1. Java程序 使用 jvm 指令
  2. 服务器 node-exporter 监控(每秒刷新一次)

王伟杰
0 声望2 粉丝

下一篇 »
kustomize 实践