搜索结果: "java"

共找到 44 个页面

K8s Java DirectMemory OOM 诊断 — 堆内存充足但 OOMKilled 的根因与复现

标题匹配

title: K8s Java DirectMemory OOM 诊断 — 堆内存充足但 OOMKilled 的根因与复现

tags: [kubernetes, java, jvm, troubleshooting, memory, performance]

sources: [raw/articles/Kubernetes-Java容器GC正常-堆内存充足-却频频OOMKilled.md]

# K8s Java DirectMemory OOM 诊断

## 一、核心误区:-Xmx 不等于 Java 进程总内存

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 节点同时飙高 → 可能是流量/代码问题;单节点飙高 → 单机热点。

消息队列选型:Kafka、RocketMQ、RabbitMQ 对比与实战

tags: [architecture, database, messaging, java, troubleshooting]

- **优势**:原生 18 级延迟消息、原生事务消息(半消息 + 回查)、默认 16 次阶梯式重试、死信队列内置、Java 实现便于排查

- **劣势**:非 Java 生态支持弱(Python/Go 客户端不成熟)、社区活跃度不如前两者

- **适合**:业务消息场景、Java 技术栈、需要延迟/事务消息的团队

| 开源语言 | Erlang | Scala/Java | 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"]

| [[k8s-java-directmemory-oom-diagnosis]] | K8s Java DirectMemory OOM 诊断 — GC 正常/堆内存充足但 OOMKil |

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+)

K8s 资源限制配置指南 — Request / Limit / QoS / CPU Throttling

### Java 应用(Spring Boot / Tomcat)

Java 启动时需较多内存,稳定运行时相对稳定,但峰值可能更高。

- name: JAVA_OPTS

- [[k8s-java-memory-tuning-production-guide]] — Kubernetes 下 Java 内存调优完整指南 — 内存预算模型、生产参数配置、四层诊断流程、

- [[k8s-java-directmemory-oom-diagnosis]] — K8s Java DirectMemory OOM 诊断 — GC 正常/堆内存充足但 OOMKil

CPU 100% 故障排查实战:从告警到根因的全链路分析与 10 大场景

tags: [linux, troubleshooting, performance, java, jvm, case-study, command, monitoring]

**Java 进程优先看 GC:**

1. `top` 看到 Java 进程 CPU 900%+(16核)

| **JNI 调用** | Java 进程 us 高但无 Java 栈 | `jstack` 搜 `JNI`/`native` | 检查 native 库代码 |

java -Xms8g -Xmx8g \

Linux 服务器 CPU 飙高排查 — 完整方法论 + 应急响应实战

| **Java** | top + jstack | `top -H -p ` → `printf '0x%x\\n' ` → `jstack \| grep -A 20 ` |

### 案例 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 VM.native_memory`。

- 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 内存调优完整指南 — 内存预算模型、生产参数配置、四层诊断流程、

Linux kill 命令高阶实战指南

| 1 (SIGHUP) | 重载配置 | nginx、redis、Java 热加载配置,无需重启进程 |

# 只杀 root 用户的 java 进程,避免误杀

pkill -u root java

针对多进程服务(Python 多进程、Java 多实例),普通杀进程会残留子进程,用进程组一键清空:

注册中心选型 — Nacos / Zookeeper / Consul 深度对比

- Java 微服务生态心智占比不如 Nacos

> **结论:** 绝大多数国内 Java 微服务团队的首选。

| Java 微服务生态 | **很强** | 强但偏传统 | 中等 |

接口限流 5 种算法详解:计数器 / 滑动窗口 / 令牌桶 / 漏桶 / Redis+Lua

tags: [performance, architecture, microservices, java]

```java

```java

K8s Hairpin 发夹回流故障—Pod 无法访问自身 Service 深度解析

某核心 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

Wiki Index

- [[java-cpu-100-case-study]] — Java 应用 CPU 100% 排查实战(四步法 + 四大原因 + 真实案例)

- [[k8s-java-directmemory-oom-diagnosis]] — K8s Java DirectMemory OOM 诊断 — GC 正常/堆内存充足但 OOMKilled 的根因分析、故障复现代码与生产配置方案

- [[k8s-java-memory-tuning-production-guide]] — Kubernetes 下 Java 内存调优完整指南 — 内存预算模型、生产参数配置、四层诊断流程、GC 选型、发布策略

API 性能排障面试实战 — 从 200ms 飙到 3 秒的排查思路

tags: [troubleshooting, performance, database, mysql, redis, java, monitoring, networking]

Java 8 + CMS 场景下,三种快速定位方法:

线上故障排查清单 — 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 # Java/log4j

Linux Load Average 完全解读 — 内核原理 / 排查方法论 / 容器环境实战

**深入工具:** `perf top -p ` 或 `perf record -g` 生成火焰图。Java → async-profiler,Go → pprof。

同时失真的还有 `/proc/cpuinfo`(显示宿主机全部核数)和 `/proc/stat`(宿主机的 CPU 统计)。Java/Node.js 等运行时如果用 Load Average 做自适应调优,在容器内全部失效。

Linux 系统性能排查全景指南 — USE 方法论 + 四维排查 + eBPF 实战

**典型案例:** `perf top` 看到 `GCTaskThread::run()` 占 45% → Java Full GC 打满 CPU → 排查方向转向 JVM 堆内存。

**对策:** 调大 `resources.limits.cpu`,或检查 Java GC 线程数 / Go `GOMAXPROCS` 是否误识别了宿主机物理核数。

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

Nginx 报错排查方法论 — 8 步决策树

- **上游层**:Tomcat/PHP-FPM/Java 应用/后端服务

**现象**:access.log 中 499 比例 12%,后端 Java 无报错。`awk -F'urt='` 提取 `$upstream_response_time` 发现大量 >1s,甚至 9.4s。

Wiki Schema

- java: Java 应用层排障

Redis 连接管理与熔断治理 — 连接数打满 / 僵尸连接 / 雪崩防护

```java

Jenkins + Ansible 集成实战 — CI/CD 配置管理流水线

├── roles/ # common/, nginx/, java/

服务器网络排障方法论 — 分层定位七步法

- [[online-troubleshooting-checklist]] — 四维排查速查清单(CPU/磁盘/内存/网络 + Java 工具 jstack/jmap/jstat/tcpdump)

线上服务端口连不上?完整排查指南(从进程到客户端)

ps aux | grep java

资源配额 / 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 日志分析与 4xx/5xx/超时故障排查实战

gzip_types text/plain text/css application/javascript application/json application/xml;

生产级 Nginx 性能优化 — 从内核到 K8s 全链路

gzip_types text/plain text/css text/javascript ...