LoginSignup
25
22

More than 5 years have passed since last update.

httpsでリクエストをするとslab cacheが増えて解放されない

Last updated at Posted at 2016-02-05

httpsでリクエストをするとslab cacheが増えて解放されない

他にも記事があるけど自分もハマったので。

apiで運用していると直面する問題

  • 他のサイトからデータを収集しているサーバー
  • マイクロサービスアーキテクチャでapi連携しているサーバー
  • 内部のAPIサーバをhttpからhttpsに切り替えると起きる
  • 常駐するデーモンやcronで叩かれるコマンド、プログラムが終了しても残るのが特徴

リソースモニタ

  • 以下のグラフのように黄色のslab cacheがジリジリ増えてきて最終的にメモリ不足になる

memory-day.png

対応方法

  • 二つの方法がある

ジリジリ増えるならcronで1日一回以下のコマンドを実行

/bin/echo 2 > /proc/sys/vm/drop_caches

一気に増えるなら環境変数を設定する

やり方は2パターンあるらしい

export NSS_SDB_USE_CACHE="yes"
export TMPDIR=/dev/shm

おまけ

slabの中身の確認

slabtopコマンドでどのくらいの容量になっているかわかります

slabtop
115563 115410  99%    0.19K   5503   21     22012K dentry

ps

httpsリクエストでのslabキャッシュの影響はlibcurl使ってるphpやapacheでよく起きます。他にはクラウドを操作するコマンドなど。
nodejsはlibcurl使っていないので起きない。

参考

アプリケーション内でhttpsによる外部APIを叩いているサーバのメモリ使用量が増加し続ける件について
slab肥大化とdentry_cacheに辿り着くまでの話
aws sdkを使っているとslabキャッシュが増大化していく
サーバーのメモリが少しずつ圧迫される原因と対策を調べてみた

25
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
22