java
eBPF 求证坊间传闻:Java GC 日志可导致整个 JVM 服务卡顿?
· ☕ 9 åˆ†é’Ÿ
实现世界的 Java 应用,都会记录 GC 日志。但不是所有人都知道小小的日志可能导致整个 JVM 服务卡顿。本文尝试用 eBPF 等分析方法,去证明具体环境下,问题的存在与否。

eBPF 求证坊间传闻:mmap + Java Safepoint 可导致整个 JVM 服务卡顿?
· ☕ 7 åˆ†é’Ÿ
Java 离不开 Safepoint。但不是所有人都知道方便的 mmap 映射文件,可能会导致整个 JVM 服务由于 safepoint 到达延时而卡顿。本文尝试用 eBPF 等分析方法,去证明具体环境下,问题的存在与否。

分析 Java 应用在 Istio 下的 warm up
· ☕ 7 åˆ†é’Ÿ
Java 应用的 warm up(预热),包括类加载、编译、应用自身初始化(如连接池)等。在 Istio 环境下,两个技术栈叠加,又有微妙的化学反应

Java 容器化的历史坑(史坑) - 资源限制篇
· ☕ 5 åˆ†é’Ÿ
由来 时间回到 2017 年,老东家要上 Kubernetes 了,有幸参与和学习(主要是学习)。当时遇到的一了所有 Java 容器化者都遇到的坑:JDK8 不为容器化设计综合症。最简单

Java 内置 Class Loader
· ☕ 3 åˆ†é’Ÿ
内置 Classloader Class loaders load classes and resources present on their respective classpath: System or application class loaders load classes from the application classpath Extension class loaders search on the Extension classpath (JRE/lib/ext) Bootstrap class loader looks on the Bootstrap classpath (JRE/lib/rt.jar) We can customize the default class loading behavior as well. We can explicitly specify the class loader while loading a class dynamically. However, we should note that

Opentelemetry Java Agent 浅度解构
· ☕ 2 åˆ†é’Ÿ
https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/contributing/javaagent-jar-components.md Conf Creating spans around methods with otel.instrumentation.methods.include Ref: https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/manual-instrumentation.md Format is "java -Dotel.instrumentation.methods.include=my.package.MyClass1[method1,method2];my.package.MyClass2[method3]" Classloader [arthas@16908]$ classloader -t +-BootstrapClassLoader +-io.opentelemetry.javaagent.bootstrap.AgentClassLoader@379619aa +-sun.misc.Launcher$ExtClassLoader@41fa769c +-com.taobao.arthas.agent.ArthasClassloader@3697b340 +-sun.misc.Launcher$AppClassLoader@18b4aac2 +-java.net.URLClassLoader@71b2d611 +-java.net.URLClassLoader@69cd1085 | +-WebAppClassLoader=266661735@fe4ef67 | | +-com.mycom.sig.foundation.servicediscovery.ExtendedClassLoader@573f7aae | +-WebAppClassLoader=Server Initiated@1ccb04b3 | | +-com.mycom.sig.foundation.servicediscovery.ExtendedClassLoader@4b3b9a06 | | +-jnr.ffi.provider.jffi.AsmClassLoader@73cb9ccb | | +-jnr.ffi.provider.jffi.AsmClassLoader@7c380e94 | | +-jnr.ffi.provider.jffi.AsmClassLoader@69ec5d1f | +-WebAppClassLoader=OAuth Server@10d98940 | | +-com.mycom.ece.common.svcfinder.ExtendedClassLoader@3528968e | | +-com.mycom.sig.foundation.servicediscovery.ExtendedClassLoader@2919aff3 | | +-jnr.ffi.provider.jffi.AsmClassLoader@1b0e6bac | | +-jnr.ffi.provider.jffi.AsmClassLoader@2f12d8d1 | | +-jnr.ffi.provider.jffi.AsmClassLoader@73123f21 | +-WebAppClassLoader=1133988396@43974a2c | +-com.mycom.sig.foundation.servicediscovery.ExtendedClassLoader@39d87c5f +-java.net.URLClassLoader@1b4c457c +-java.net.URLClassLoader@3a477cf5 Affect(row-cnt:24)