如何通过单次OOM事件分析Redis内存使用情况?

2026-05-17 01:060阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计5006个文字,预计阅读时间需要21分钟。

如何通过单次OOM事件分析Redis内存使用情况?

前言,最近,有用户通过redis的hmset命令写入了一个单个field,值为1MB,执行了总大小100MB左右的命令,容器内存限制为512MB,执行时触发了oom+killer。最后查看+/var/log/syslog日志,发现异常。

前言

最近,有用户反馈自己通过redis的hmset命令写入了一个单个field为1mb,总大小100m左右的命令,在512mb内存限制的容器当中执行,结果却触发了oom killer。最后查看/var/log/syslog日志,发现内容如下。并且:这个oom是在开启aof持久化的时候触发的

你不禁会发出疑问:一个100MB的命令怎么会让内存限制为512MB的Redis实例被kill掉呢?

下面,我先列举一些关键的信息,然后再和大家一起分析。

  • Redis版本:5.0.9
  • Docker容器内存限制512MB。
  • 操作系统,并关闭内存交换。
阅读全文

本文共计5006个文字,预计阅读时间需要21分钟。

如何通过单次OOM事件分析Redis内存使用情况?

前言,最近,有用户通过redis的hmset命令写入了一个单个field,值为1MB,执行了总大小100MB左右的命令,容器内存限制为512MB,执行时触发了oom+killer。最后查看+/var/log/syslog日志,发现异常。

前言

最近,有用户反馈自己通过redis的hmset命令写入了一个单个field为1mb,总大小100m左右的命令,在512mb内存限制的容器当中执行,结果却触发了oom killer。最后查看/var/log/syslog日志,发现内容如下。并且:这个oom是在开启aof持久化的时候触发的

你不禁会发出疑问:一个100MB的命令怎么会让内存限制为512MB的Redis实例被kill掉呢?

下面,我先列举一些关键的信息,然后再和大家一起分析。

  • Redis版本:5.0.9
  • Docker容器内存限制512MB。
  • 操作系统,并关闭内存交换。
阅读全文