查看容器内的 java 内存堆栈
进入容器
pod_name=baymax-service-6bf9657bc5-wc9s2
kubectl exec -it ${pod_name} bash
查看 java 进程 id
pstree -p | head
查看 java 内存配置
# jinfo -flag MaxHeapSize <pid>
jinfo -flag MaxHeapSize 1
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'
服务器内存:65808244K = 62.76G
测试用例
环境 | 进程1 | 进程2 | 其他 |
---|---|---|---|
物理机 | 使用cgroup 限制cpu,使用 jvm 限制内存 | 使用cgroup 限制cpu,不限制内存 | |
物理机 | 使用docker 限制 cpu 和内存 | 使用docker 限制 cpu 和内存 | |
k8s | 使用 k8s 限制 cpu 内存 | 使用 k8s 限制 cpu 内存 |
监控用例
- Java程序 使用 jvm 指令
- 服务器 node-exporter 监控(每秒刷新一次)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。