<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>容器化 on </title>
    <link>/tags/%E5%AE%B9%E5%99%A8%E5%8C%96/</link>
    <description>Recent content in 容器化 on </description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Wed, 01 Apr 2026 10:00:00 +0800</lastBuildDate><atom:link href="/tags/%E5%AE%B9%E5%99%A8%E5%8C%96/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>K8s 容器化 Java 应用 JVM 配置笔记：JDK_JAVA_OPTIONS、MaxRAMPercentage 与 GC 选择</title>
      <link>/posts/java-jvm-k8s-2026/</link>
      <pubDate>Wed, 01 Apr 2026 10:00:00 +0800</pubDate>
      
      <guid>/posts/java-jvm-k8s-2026/</guid>
      <description>引言 在 2026 年的云原生环境中，Java 应用部署到 Kubernetes（K8s）已经比较常见。不过，很多团队仍然沿用早期 JVM 配置方式，这类配置在容器里不一定合适，也容易带来资源浪费或 OOMKilled。
Akamas 在 2026 年 2 月发布的一份调查1提到，60% 的 JVM 工作负载未明确配置 GC，不少部署没有显式设置堆内存上限。我把它当作一个值得参考的行业观察，而不是绝对结论。
Java 25 于 2025 年 9 月发布，是继 Java 21 之后的最新长期支持版本（LTS）。而 Java 26（非 LTS）也已于 2026 年 3 月正式发布。本文结合 Java 25/26 的一些新特性，以及 2026 年实验验证数据，整理我当前比较认可的一组 Kubernetes 容器化 JVM 参数思路。
核心前提：容器感知已是本能 Java 版本与容器感知 Java 版本 -XX:+UseContainerSupport 默认行为 Java 8u191 之前 ❌ 不支持容器感知 Java 8u191+ ✅ 支持，需手动启用 Java 10+ ✅ 默认启用，无需配置 Java 17/21/23/25/26 ✅ 默认启用，高度优化 我的经验是： 使用 Java 10+ 时，通常不需要再手动配置 -XX:+UseContainerSupport。JVM 已经能够读取 Cgroups v2 提供的内存限制和 CPU 配额。</description>
    </item>
    
  </channel>
</rss>
