Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
189
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@y_matsuwitter

Redisを使う時は見積の二倍の容量必要だよね、という話

ある日Redisのログを眺めるとこんな子が大量に現れてて焦った。

redis.log
[15487] 04 Aug 21:02:37.523 * 1 changes in 900 seconds. Saving...
[15487] 04 Aug 21:02:37.523 # Can't save in background: fork: Cannot allocate memory

redis-cli infoしても、使用してるメモリは全体の半分ちょっとだったし、空きは十分にある…

答えは
Redis Administration
http://redis.io/topics/admin
に書いてありました。

原因と解決策

redisのバックアップが走る際、おそらく現状使用している量と同じだけのallocateを要求しているために、redis自体はメモリ使用が50%強だとしても、バックアッププロセスが落ちてしまう模様。

解決は簡単で、Redis Administrationに書いてあるとおり、応急処置的に

sysctl vm.overcommit_memory=1

を設定して、allocateを許可してあげればいい。

あとは、/etc/sysctl.confへ以下を追記。

vm.overcommit_memory = 1

見積の2倍は用意しよう

結論として、Redisを運用する際は見積もりして必要だと思われた容量の2倍は出来るだけ用意しといたほうが安定運用できますよ、という話。

189
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
189
Help us understand the problem. What is going on with this article?