搜索结果: "memory"

共找到 35 个页面

Redis 内存优化完全指南 — 数据结构/TTL/淘汰策略/Bigkey/碎片治理

tags: [redis, database, memory, production, performance, debugging]

sources: [raw/articles/redis-memory-optimization-guide.md]

可淘汰:配置合理的 maxmemory 和淘汰策略

**建议:** 内存敏感场景下,用 `MEMORY USAGE key` 实测真实占用,对比不同序列化方式。

但 Hash 不是永远更省 — field 名太长、field 太多、value 特别大时也可能膨胀。**结合 MEMORY USAGE 实测。**

Jenkins 多 Master 架构部署方案 — K8S + Gateway API

memory: "2Gi"

memory: "4Gi"

resourceRequestMemory: "512Mi"

resourceLimitMemory: "1Gi"

resourceRequestMemory: "128Mi"

JVM 容器 OOM 排障指南 — 堆外内存视角

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

├── Direct Memory ← NIO 的 DirectByteBuffer,-XX:MaxDirectMemorySize 控制

cgroup.memory.current = RSS(常驻物理内存)

+ Kernel Memory(slab、socket buffer 等)

jcmd VM.native_memory summary | grep "Internal"

K8s 容量规划、Pod QoS 与成本优化实战指南

| requests.memory | 调度 + 驱逐排序 | Pod 希望被保证的内存 | Scheduler + kubelet eviction |

| limits.memory | 运行 | 内存硬上限,超限后 OOMKilled | OOM killer / cgroup |

> ⚠️ 驱逐排序:BestEffort > 超 request 的 Burstable > Guaranteed。但 Guaranteed 超 memory limit 仍会被杀。

1. **历史资源水位** — CPU/Memory/Network/Disk 的 P50/P90/P95/P99

容器 RSS ≈ Heap + Metaspace + Direct Memory + Thread Stack + Code Cache + GC Native + JNI + glibc arena

K8s 下 Java 内存调优完整指南 — 预算模型、生产配置与治理体系

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

1. **`-Xmx` 只约束堆,`memory.limit` 约束容器总内存** — 堆调到容器上限 ≈ 主动制造 OOM

容器 memory.limit = 4Gi

├── Direct Memory ← Netty ByteBuf / NIO DirectByteBuffer

**Direct Memory:** Netty ByteBuf、Kafka 客户端缓冲、NIO DirectByteBuffer。特点是:吞吐好、GC 压力小、**但不受 -Xmx 约束**。必须设 `-XX:MaxDirectMemorySize`。

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

memory: "256Mi"

memory: "512Mi"

- **Memory**: **强烈建议 Request = Limit**,否则导致 OOMKill 优先级异常(见下文)

| Burstable | min(max(2, 1000 - 1000×memoryRequest/nodeMemory), 999) | 中等 |

kubectl describe pod | grep -E "QoS|Memory|Limit|Request"

Node 排障 — NotReady 九步排查 / Kubelet / 容器运行时 / 资源压力 / 证书 / 预防

MemoryPressure False KubeletHasSufficientMemory

| MemoryPressure | 内存不足 | 节点内存耗尽,OOM risk |

### 内存压力(MemoryPressure)

sudo dmesg | grep -i "out of memory" | grep -i "kubelet"

memory.available: "100Mi"

资源配额 / OOMKilled / RBAC / 调度排障

-o jsonpath='{.spec.containers[*].resources.limits.memory}'

| Burstable | min(max(2, 1000 - 1000×memoryRequest/nodeMemory), 999) | 中等 |

1. **增大 memory limits**(如果是正常业务增长)`kubectl patch deployment`

memory: "128Mi"

memory: "128Mi"

Linux 内存管理深潜 — Buffer/Cache/Page Cache/Slab/回收/OOM 全链路

tags: [linux, memory, performance, troubleshooting, monitoring, debugging]

dmesg | grep -i "out of memory\|killed process"

cat /sys/fs/cgroup/memory.max # 硬限制(字节),超过触发 OOM

cat /sys/fs/cgroup/memory.high # 软限制,超过触发回收但不杀进程

cat /sys/fs/cgroup/memory.low # 保护阈值,低于此值尽量不回收

服务器性能五维排查 — CPU/内存/磁盘/网络/文件系统深度解析

| `dmesg -T \| tail` | 最近内核报错 | OOM、磁盘错误、网络超时 | 出现 `Out of memory` 或 `hung_task` |

dmesg | grep -i "out of memory\|killed process" # OOM 日志

**Java 特殊注意:** JVM 内存 ≠ -Xmx。包含堆 + 元空间 + 直接内存 + Native。用 `jcmd VM.native_memory`。

| [[linux-memory-management-deep-dive]] | Linux 内存管理深潜(Buffer/Cache/Page Cache/Slab/回收/OOM/cgroup v2) |

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

Wiki Log

- Created raw: raw/articles/redis-memory-optimization-guide.md

- Created concepts: redis-memory-optimization(12 章节覆盖 key/value/数据结构/序列化/淘汰策略/bigkey/碎片/fork-COW/缓冲区/排查命令)

- Created concepts: linux-memory-management-deep-dive(配套 server-performance-four-dimensions 的内存专项深潜)

- Updated: server-performance-four-dimensions, redis-memory-optimization, linux-kernel-tuning-production(添加内存管理交叉引用)

- 文章与 [[server-performance-four-dimensions]] + cpu-spike / linux-load-average / linux-memory / network-troubleshooting 等多页高度重叠

Docker 生产环境踩坑指南 — 10 + 5 个常见问题

dmesg | grep -i "out of memory"

# JVM 堆内存 + native/direct buffer/mmap 等堆外内存之和 ≤ 容器 memory limit

docker run -e JAVA_OPTS="-Xmx768m" --memory=1g my-java-app

limit=$(docker inspect $name --format '{{.HostConfig.Memory}}')

Pod Pending 排障指南 — 7 个角度快速定位调度失败根因

**Events 关键词:** `Insufficient cpu` / `Insufficient memory` / `Insufficient ephemeral-storage`

# 0/5 nodes are available: 3 Insufficient memory.

| `node.kubernetes.io/memory-pressure` | 内存压力 | 默认 NoSchedule |

│ │ ├─ Insufficient cpu/memory → 方向一

Linux 高并发内核优化手册 — 文件句柄/网络/内存/调度/I/O/安全七维调优

tags: [linux, performance, networking, security, tcp, memory, scheduling]

vm.overcommit_memory = 1 # 允许内存超分(数据库/Redis 场景)

- **overcommit_memory = 1** — 允许内存超分,数据库、Redis 场景避免服务启动失败

- [[linux-memory-management-deep-dive]] — Linux 内存管理深潜

DevOps 技术面试指南 — 容器/云原生/内核 59 题

| 48 | cgroups 在 K8s 中的应用? | CPU(cfs_period_us/cfs_quota_us) + 内存(memory.limit_in_bytes/OOM) + IO(blkio) + PID(pids.max)。v1 内存泄漏→升级 v2 + systemd 驱动 | [[k8s-resource-limits-configuration]] |

| 13 | Redis 性能优化? | 合适数据结构 + TTL + pipeline + 持久化策略 + 哨兵/集群 + 内存分配 | [[redis-memory-optimization]] |

| [[redis-memory-optimization]] | Redis 内存优化 |

Pod 排障 — CrashLoopBackOff / Exit Code 排查 / OOM / 探针 / 依赖服务 / ConfigMap

- **OOMKilled:** 增大 memory limits 或优化应用内存(Java 容器注意:`-Xmx` 设置 + 元空间/线程栈/直接内存等额外开销总和 < container limits)

# Message: "0/3 nodes are available: 1 Insufficient memory, 2 node(s) had taints..."

- Pod 被 OOMKill → 退出码 137,调大 memory limits 或优化内存

Wiki Index

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

- [[linux-memory-management-deep-dive]] — Linux 内存管理深潜:Buffer/Cache/Page Cache/Slab/三级回收/OOM/cgroup v2

- [[redis-memory-optimization]] — Redis 内存优化完全指南:key设计/数据结构选型/序列化/bigkey/碎片/淘汰策略/TTL

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

| [[redis-memory-optimization]] | Redis 内存优化(客户端输出缓冲区 + 大响应排查) |

| [[server-performance-four-dimensions]] | 系统级 fd/memory 监控 |

线上故障排查清单 — CPU/磁盘/内存/GC/网络 四维速查

内存管理底层原理参见 [[linux-memory-management-deep-dive]](Buffer/Cache/Slab 全链路)。

| [[linux-memory-management-deep-dive]] | 内存 Buffer/Cache/OOM 全链路 |

K8s CI/CD 架构实战 — Jenkins / GitLab CI / Argo CD / Helm 全链路

memory: 4Gi

memory: 1Gi

K8s 高频问题一站式排查清单 — 10 大故障场景快速参考

| 节点资源压力(eviction) | 现有 Pod 被终止 | `The node was low on resource: memory` |

> ⚠️ **风险提醒:** CoreDNS 的 `resources.limits.memory` 不足会导致 OOM 重启,引发间歇性 DNS 超时——这是"服务一会好一会坏"的最常见原因。

Linux 系统调优实战 — 接口响应从 500ms 降到 100ms 全复盘

| [[linux-memory-management-deep-dive]] | 内存管理深潜(swappiness/cache 压力) |

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

Linux 硬件信息查询与软件管理命令速查 — CPU/内存/磁盘/网络/主板全覆盖

| `sudo dmidecode -t memory` | 查看物理内存插槽信息 |

| `sudo lshw -C memory` | 查看内存详细配置 |

服务器负载过高排查 — 案例实战 / Netflix 60 秒法 / 常见根因

vmstat 1 3 # procs/memory/io/system/cpu

free -h -w # memory pressure

Wiki Schema

- memory: 内存管理与优化

Redis 备份恢复实战 — 备份脚本 / 恢复流程 / 容灾方案

- [[redis-memory-optimization]] — Redis 内存优化完全指南(fork/COW 对 BGSAVE 的影响)

Redis 高可用 — 主从复制 / 哨兵 / 脑裂 / 集群踩坑

| [[redis-memory-optimization]] | 内存优化(淘汰策略场景参考) |

Redis 持久化机制 — RDB / AOF / 混合持久化

- [[redis-memory-optimization]] — Redis 内存优化完全指南(fork/COW 内存影响)

高并发四大手段:缓存 / 限流 / 削峰 / 幂等 — 各自解决什么问题?

- [[redis-memory-optimization]] — Redis 内存优化(缓存的存储层基础)

存储排障 — PVC Pending / 挂载失败

- 建议 limits.memory 设为 requests.memory 的 1.5-2 倍(MySQL/Java 等)

Java 应用 CPU 100% 排查实战 — 从告警到代码行的四步法

- [[linux-memory-management-deep-dive]] — Linux 内存管理(GC 根因涉及内存)

Linux 目录结构完全指南 — FHS 标准与运维实战

- [[linux-memory-management-deep-dive]] — Linux 内存管理(/proc/meminfo)

生产环境 Linux 内核参数调优 — 6 个必调参数

- [[linux-memory-management-deep-dive]] — Linux 内存管理深潜(vm.swappiness/vm.min_free_kbytes 等参数详解)

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

$ cat /proc/pressure/memory

Keepalived+Nginx 高可用实战 — 3 个隐藏坑位与生产级防护方案

logger "Memory usage too high: $MEM_USAGE%"; exit 1