2021-12-28技术 jvm容器化内存感知实践 docker容器本身需要设置容器的最大可使用内存(防止单个容器消耗节点大量的资源),跑在容器中的jvm进程也需要设置内存,防止内存占用过大被容器Kill,所以如何优雅的在容器化中设置内存是一个很有必要了解的话题。 jdk 8u131+ java 9+ 使用参数开启实验性功能 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimit... 阅读全文...
2021-12-22技术 ingress传递头信息 在ningx-ingress中内置提供一些annotation 在不手动手动改ingress-controller的情况下可以提供一些方便的操作。 apiVersion: extensions/v1beta1kind: Ingressmetadata: annotations: kubectl.kubernetes.io/last-applied-configuration: "" ... 阅读全文...
2021-11-11技术 在k8s中收集jvm异常dump文件到OSS 现状 加参数 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=logs/test.dump 可以实现在jvm发生内存错误后 会生成dump文件 方便开发人员分析异常原因。 当运行在k8s中,如果进程发生错误 导出dump文件后 ,k8s会重启dokcer容器,上一次崩溃生成的dump文件就没有了。如果应用并没有完全崩溃 此时极其不稳定 ... 阅读全文...
2021-11-10技术 基于alpine构建jdk镜像遇到的坑 alpine常用于作为docker的基础镜像,因为它很小,功能精简,基本上没有啥漏洞,记录一下最近用alpine作为基础镜像构建java 8镜像 下面的问题在oracle jdk openjdk都会出现 。 错误一java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager 这个错误一般出现... 阅读全文...
2021-08-23技术 docker删除<none>标签镜像 被打上<none>标签的镜像指的是没有标签并且没有被容器使用的镜像。如果不清理这种镜像会大量占用机器磁盘。记录2种自身工作中常用的删除方法。 第一种删除方式执行下面shell 并输入y docker image prune 第二种方式删除 利用awk来获取镜像id 执行docker rmi删除 docker rmi $(docker images | grep "none" | ... 阅读全文...
2021-08-05技术 kubernetes-kubeadm创建集群 这一节基本上会遇到很多异常错误信息,需要耐心的去解决它,跟环境等很多因素有关系。 初始化集群在master 机器上初始化集群 会自动拉取相关的镜像 需要等待一下 kubeadm init --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.96.0.0/12 --pod-network-ci... 阅读全文...
2021-08-04技术 kubernetes-kubeadm安装 kubeadm是目前官方最推荐的安装方式,既可以用于安装学习玩一下,也可以用来安装高可用集群。这里的操作系统都是以centos7为例 其他系统类似。 环境准备 master 192.168.0.213work 192.168.0.212work 192.168.0.211 需要在3台服务器上执行一下配置更改。 cat <<EOF | sudo tee /etc/modules-... 阅读全文...
2020-12-11技术 找出JVM中最耗cpu的线程 1、top命令查找出cpu最高的java进程pid 2、top -Hp 命令找出进程内最耗线程的pid top -Hp 22293 3、获取到上一步线程的pid后 将pid 16进制输出 # printf '%x\n' 228015911 4 使用jstack命令找出线程信息 jstack 进程pid |grep 16进制后的线程号 # jstack 22293|grep 5911"D... 阅读全文...
2020-08-21技术 更好用 更简单的Java缓存框架 jscache 比Spring Cache 更好用 更简单的缓存工具 jscache 取名意义为 java simple cache,基于AOP实现,支持注解到接口 自定义单个缓存过期时间配置 ttl,轻松扩展缓存实现,默认实现了jedis,spring-data-redis,还有一个基于本地内存的map。 源码仓库 https://github.com/peachyy/jscache.git 注解AP... 阅读全文...