搜索结果: "java"
共找到 34 个页面
K8s 下 Java 内存调优完整指南 — 预算模型、生产配置与治理体系
标题匹配title: K8s 下 Java 内存调优完整指南 — 预算模型、生产配置与治理体系
tags: [kubernetes, java, jvm, memory, performance, troubleshooting, architecture]
sources: [raw/articles/容器里的-JVM-不只是--Xmx-Kubernetes-下-Java-内存调优的原理-架构与生产实战.md]
# K8s 下 Java 内存调优完整指南
**Heap(堆):** 承载绝大多数 Java 对象。影响因素:请求并发、对象生命周期、缓存大小、批量任务。JVM 监控最关注的部分,但**远非全部**。
Java 应用 CPU 100% 排查实战 — 从告警到代码行的四步法
标题匹配title: Java 应用 CPU 100% 排查实战 — 从告警到代码行的四步法
tags: [linux, java, performance, troubleshooting, case-study, jvm]
# Java 应用 CPU 100% 排查实战
## 一、排查四步法(Java 特化版)
关注 `%CPU` 列。多个 Java 节点同时飙高 → 可能是流量/代码问题;单节点飙高 → 单机热点。
Docker 镜像优化完全指南:瘦身、构建加速与安全加固
**Java 应用 — Maven 多阶段构建:**
ENTRYPOINT ["java", "-XX:MaxRAMPercentage=75.0", "-jar", "app.jar"]
# ❌ shell形式:sh 是 PID 1,java 是子进程,收不到 SIGTERM
ENTRYPOINT java -jar app.jar
# ✅ exec形式:java 是 PID 1,能正确接收信号
Docker 生产环境踩坑指南 — 10 + 5 个常见问题
**Java 应用注意事项:**
docker run -e JAVA_OPTS="-Xmx768m" --memory=1g my-java-app
**原理:** 容器内的 PID 1 进程对信号处理有特殊要求。如果 PID 1 是 shell 脚本(如 `CMD ["/bin/sh", "-c", "java -jar app.jar"]`),shell 不转发 SIGTERM。
CMD ["java", "-jar", "app.jar"]
| [[pod-troubleshooting]] | Pod CrashLoopBackOff 排障(含 Java OOM/Exit Code 分析) |
JVM 容器 OOM 排障指南 — 堆外内存视角
tags: [kubernetes, java, troubleshooting, memory, container, performance]
Java 服务在容器中频繁 OOMKilled,但 JVM 堆内存利用率仅 70% 左右、看似充裕,这是最常见的「容器 OOM 但堆没问题」故障模型。
**释放机制陷阱:** DirectByteBuffer 的物理内存释放依赖于对应 Java 对象被 GC 回收时触发 `Cleaner` 去执行 `free`。隐含两个前提:
Java 8u40+ / Java 9+ 内置,最核心的堆外内存诊断工具:
# 推荐的 Java 容器启动参数(Java 10+)
Linux 服务器 CPU 飙高排查 — 完整方法论 + 应急响应实战
| **Java** | top + jstack | `top -H -p
### 案例 1:Java 线程死循环打满单核
```java
| [[online-troubleshooting-checklist]] | 四维排查速查清单(CPU/磁盘/内存/网络 + Java 工具 jstack/jmap/jstat/tcpdump) |
- [[java-cpu-100-case-study]] — Java 应用 CPU 100% 排查实战(四步法 + 四大原因 + 真实案例)
Linux 系统调优实战 — 接口响应从 500ms 降到 100ms 全复盘
> 日均千万级请求的 Java 微服务,P99 响应 500ms+。通过两周 Linux 系统级深度调优,降至 100ms 以内。本文完整复盘从发现问题到解决问题的全流程。
| 应用 | Java Spring Boot 微服务,Docker 容器部署 |
**问题:** CPU 上下文切换过于频繁,每秒超过 10 万次。Java 线程数过多导致大量调度开销。
ps -eLf | grep java | wc -l # Java 线程数
- Java `-XX:ParallelGCThreads=4` 限制 GC 线程
服务器性能五维排查 — CPU/内存/磁盘/网络/文件系统深度解析
**Java 特殊注意:** JVM 内存 ≠ -Xmx。包含堆 + 元空间 + 直接内存 + Native。用 `jcmd
- Java:合理设置 `-Xmx` / `-Xms`,避免 JVM 吃光内存
输出中可见一个 java 进程(PID: 12345),%CPU 稳定在 300%+,%MEM 偏高 → 目标进程。
一套操作下来刚好 60 秒,已找到可疑进程(PID 12345),排除了磁盘、网络、内存问题。后续用 `jstack`、`strace` 分析 Java 进程即可定位具体死循环或内存泄漏。
| [[k8s-java-memory-tuning-production-guide]] | Kubernetes 下 Java 内存调优完整指南 — 内存预算模型、生产参数配置、四层诊断流程、 |
Wiki Log
- Merged into: pod-troubleshooting(Exit Code 143/Java OOM/command override/三探针配合/8 步排查法)
- 文章为多主题排查清单(CPU/磁盘/内存/GC/网络 + Java 工具),与现有深度页面高度交叉
- Created concept: concepts/linux/java-cpu-100-case-study.md
- Java 应用 CPU 100% 排查四步法(top → top -Hp → jstack → grep)
## [2026-05-19] update | SCHEMA.md — 注册 java/jvm 标签
K8s 容量规划、Pod QoS 与成本优化实战指南
tags: [kubernetes, architecture, performance, monitoring, java, golang, messaging, tcp]
### Java 容器
JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=70 -XX:InitialRAMPercentage=70 ..."
- [[k8s-java-memory-tuning-production-guide]] — Kubernetes 下 Java 内存调优完整指南 — 内存预算模型、生产参数配置、四层诊断流程、
K8s 资源限制配置指南 — Request / Limit / QoS / CPU Throttling
### Java 应用(Spring Boot / Tomcat)
Java 启动时需较多内存,稳定运行时相对稳定,但峰值可能更高。
- name: JAVA_OPTS
- [[k8s-java-memory-tuning-production-guide]] — Kubernetes 下 Java 内存调优完整指南 — 内存预算模型、生产参数配置、四层诊断流程、
注册中心选型 — Nacos / Zookeeper / Consul 深度对比
- Java 微服务生态心智占比不如 Nacos
> **结论:** 绝大多数国内 Java 微服务团队的首选。
| Java 微服务生态 | **很强** | 强但偏传统 | 中等 |
接口限流 5 种算法详解:计数器 / 滑动窗口 / 令牌桶 / 漏桶 / Redis+Lua
tags: [performance, architecture, microservices, java]
```java
```java
Linux 内存管理深潜 — Buffer/Cache/Page Cache/Slab/回收/OOM 全链路
### Java/Go 应用专用
# Java:查看 JVM 内存(堆+元空间+Native)
- [[online-troubleshooting-checklist]] — 四维排查速查清单(CPU/磁盘/内存/网络 + Java 工具 jstack/jmap/jstat/tcpdump)
服务器负载过高排查 — 案例实战 / Netflix 60 秒法 / 常见根因
├─ iotop: Java 进程 320MB/s 写入,IO> 95.2%
├─ pidstat: Java PID=3456, 320MB/s
→ Java 进程仍在写入旧文件 app.log.1
线上故障排查清单 — CPU/磁盘/内存/GC/网络 四维速查
# 查看该线程的 Java 堆栈(-C5 显示上下文 5 行)
# Java 堆内存使用
Jenkins 多 Master 架构部署方案 — K8S + Gateway API
- name: JAVA_OPTS
| 中量级 | 1 | 1Gi | 2 | 2Gi | Java 编译、后端打包 |
Pod 排障 — CrashLoopBackOff / Exit Code 排查 / OOM / 探针 / 依赖服务 / ConfigMap
- **OOMKilled:** 增大 memory limits 或优化应用内存(Java 容器注意:`-Xmx` 设置 + 元空间/线程栈/直接内存等额外开销总和 < container limits)
- **健康检查:** 增大 `initialDelaySeconds`(Java/Go 建议 ≥30s);启动慢的服务务必加 **startupProbe** 避免 livenessProbe 误杀
Linux 磁盘空间排查 — 8 个命令 / 四种场景 / 生产清理流程
# java 3456 root 23w REG 202,1 2147483648 12345 /var/log/app/access.log (deleted)
kill -USR1
Linux Load Average 完全解读 — 内核原理 / 排查方法论 / 容器环境实战
**深入工具:** `perf top -p
同时失真的还有 `/proc/cpuinfo`(显示宿主机全部核数)和 `/proc/stat`(宿主机的 CPU 统计)。Java/Node.js 等运行时如果用 Load Average 做自适应调优,在容器内全部失效。
TCP 连接数爆表:攻击还是 Bug 排查指南
快速定位到 Nginx、MySQL 或 Java 应用等具体进程。
- **CLOSE_WAIT 泄漏**:Java 应用发布后 CLOSE_WAIT 缓慢上升至爆表 → 异常处理中未关闭 MySQL 连接 → 修复代码后重启
Nginx 502/504/Connection Reset 深度排查指南
cat /proc/$(pidof java)/limits | grep "open files"
lsof -p $(pidof java) | wc -l
Nginx 典型配置错误复盘 — 20+ 个踩坑点详解
gzip_types text/plain text/css text/javascript
application/json application/javascript
Wiki Index
- [[java-cpu-100-case-study]] — Java 应用 CPU 100% 排查实战(四步法 + 四大原因 + 真实案例)
- [[k8s-java-memory-tuning-production-guide]] — Kubernetes 下 Java 内存调优完整指南 — 内存预算模型、生产参数配置、四层诊断流程、GC 选型、发布策略
Wiki Schema
- java: Java 应用层排障
Jenkins + Ansible 集成实战 — CI/CD 配置管理流水线
├── roles/ # common/, nginx/, java/
服务器网络排障方法论 — 分层定位七步法
- [[online-troubleshooting-checklist]] — 四维排查速查清单(CPU/磁盘/内存/网络 + Java 工具 jstack/jmap/jstat/tcpdump)
资源配额 / OOMKilled / RBAC / 调度排障
- Java: JVM `-Xmx` 设为容器 limit 的 75-80%
存储排障 — PVC Pending / 挂载失败
- 建议 limits.memory 设为 requests.memory 的 1.5-2 倍(MySQL/Java 等)
CPU 飙高三命令排查法 — top → strace → /proc/PID/fd/ 实战
- [[java-cpu-100-case-study]] — Java 应用 CPU 100% 排查案例(jstack + HashMap 死链 + Full GC)
生产级 Linux 磁盘 IO 调优 — 从核心概念到实战落地
- [[online-troubleshooting-checklist]] — 四维排查速查清单(CPU/磁盘/内存/网络 + Java 工具 jstack/jmap/jstat/tcpdump)
Linux 服务器性能排查实战手册 — 三板斧/案例/阈值/参数速查
### CASE 01:Java Full GC 导致接口飙升至 8s
生产级 Nginx 性能优化 — 从内核到 K8s 全链路
gzip_types text/plain text/css text/javascript ...