首页 > 其他分享 >k8s下服务做threaddump和heapdump操作过程

k8s下服务做threaddump和heapdump操作过程

时间:2023-05-24 10:55:55浏览次数:40  
标签:blue yonyou threaddump kjhs f9667046 heapdump k8s b455b8d56 cwy2

1. #查询节点的资源使用情况

kubectl -n kjhs-yonyou top nodes

 

2.#查询每个服务的资源使用情况

kubectl -n kjhs-yonyou top pod

 

3.#做theaddump和heapdump文件

#找一个内存使用最大的服务,进入容器中做dump文件

kubectl -n kjhs-yonyou exec -it f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd sh (f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd为服务节点名称)

 #进入容器之后先检查下是否有jstack和jmap命令,如果是oracle jdk就会有这两个命令;如果不存在就把jdk拷贝到容器中;

jstack -help

 jmap -help

#查看对应服务的java进程 

ps -ef|grep java

 #做threaddump文件操作,建议做3次

jstack 1 > /home/admin/app/f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-threaddump-`date +%Y%m%d%H%M%S`.txt

 #做heapdump文件,建议正常情况做一次,发生full gc做一次

jmap -dump:format=b,file=/home/admin/app/f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-heapdump-`date +%Y%m%d%H%M%S`.hprof 1

#压缩heapdump文件

gzip f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-heapdump-20230524103142.hprof

 

 

4.#把上面做的四个文件拷贝出来(从容器中拷贝到master服务器中)

kubectl cp -n -kjhs-yonyou f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd:/home/admin/app/f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-heapdump-20230524103142.hprof.gz /root/f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-heapdump-20230524103142.hprof.gz
kubectl cp -n -kjhs-yonyou f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd:/home/admin/app/f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-threaddump-20230524102618.txt /root/f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-threaddump-20230524102618.txt
kubectl cp -n -kjhs-yonyou f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd:/home/admin/app/f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-threaddump-20230524102638.txt /root/f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-threaddump-20230524102638.txt
kubectl cp -n -kjhs-yonyou f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd:/home/admin/app/f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-threaddump-20230524102650.txt /root/f9667046-kjhs-yonyou-agla-cwy2-blue-b455b8d56-gs6hd-threaddump-20230524102650.txt

 

5.#对这四个文件进行分析

 

标签:blue,yonyou,threaddump,kjhs,f9667046,heapdump,k8s,b455b8d56,cwy2
From: https://www.cnblogs.com/zengwb/p/17427368.html

相关文章

  • K8S-学习笔记-001-容器Docker和K8S
    K8S-学习笔记-001-容器Docker和K8S容器是什么?简单来说,它就是个小工具,可以把你想跑的程序,库文件,配置文件都一起“打包”。在任何一个计算机的节点上,都可以使用这个打好的包。有了容器,一个命令就能把你想跑的程序跑起来,做到了一次打包,就可以到处使用。比如:可以把整套Zabbix环境(httpd......
  • Kubernetes(k8s)最大启动时长研究
    一、前言应用部署在Kubernetes(k8s)上,有些应用启动慢一些,没启动好就又被k8s重启了二、处理过程1.看日志[2023-05-2314:38:52.249]|-INFO|-[background-preinit]|-o.h.v.i.u.Version[0]|-[TID:N/A]|-HV000001:HibernateValidator6.1.7.Final[2023-05-2314:40:11.817]|-......
  • 阿里云vpc下面部署自建k8s一些注意事项
    简介这几天接手了一个政府单位项目,所有的资源均为云资源,而且是阿里云vpc机器。在部署k8s的过程中发现我部署的k8s跨主机网段不通。折腾了我好几天最后发现问题是我在vpc里面是用的不是规定的cidr,我是用的是172.235.0.0修改到规定的cidr清空etcd删除网络重装k8s即可。解决阿......
  • k8s Error: failed to prepare subPath for volumeMount "custom-logo" of container
    前言使用k8s挂载卷文件时,使用了hostPath,type:FilevolumeMounts:-mountPath:/usr/share/grafana/public/img/grafana_icon.svgname:custom-logosubPath:grafana_icon.svgvolumes:-hostPath:path:/root/test/logo.......
  • Rancher和K8s安全问题
    原生K8S      Rancher修改K8s服务参数            kube-api:always_pull_images:falsepod_security_policy:falsesecrets_encryption_config:enabled:falseservice_node_port_range:0-65535......
  • 如何对k8s中docker registry secret中保存的docker的用户名、密码进行解密?
    在k8s的dockerregistrysecret中,保存的是docker的用户名、密码的信息,并且是使用加密的方式进行保存的 [root@nccztsjb-node-11~]#kubectlgetsecret-nyonbipc87e2267-1001-4c70-bb2a-ab41f3b81aa3-oyamlapiVersion:v1data:.dockerconfigjson:eyJhdXRocyI6ey......
  • 如何借助Kafka持久化存储K8S事件数据?
    大家应该对KubernetesEvents并不陌生,特别是当你使用kubectldescribe命令或EventAPI资源来了解集群中的故障时。 $kubectlgetevents15mWarningFailedCreate......
  • 当k8s拉镜像出现问题时 需要修改 /etc/containerd/config.toml 配置
    找到plugins."io.containerd.grpc.v1.cri".registry添加此两处配置 [plugins."io.containerd.grpc.v1.cri".registry.configs][plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.16.185:8088".tls]insecu......
  • k8s 1.24.14 Ingress-nginx 的部署
    前言:本次部署使用了高可用的形式,会在每个node节点做亲和性(master不部署),让每一个pod都部署上去,然后加入NGINX去过负载,这样我们之间用NGINX的80端口访问域名就可以了。MountVolume.SetUpfailedforvolume"webhook-cert":secret"ingress-nginx-admission"notfound。......
  • 配置k8s的一个serviceaccount具有管理员权限并获取他的token
    创建sa账户/授定管理员角色权限cat>sa.yaml<<eofapiVersion:v1kind:ServiceAccountmetadata:name:kubepi-usernamespace:kube-systemeofcat>rolebe.yaml<<eofapiVersion:rbac.authorization.k8s.io/v1kind:ClusterRoleBindingmetadata:na......