104:セッションデータの保存にはRDBかKVSを使おう

プログラミング迷子: DISKがいっぱいなので増設します

  • 後輩W: /tmp のDISK容量増やすにはどうすればいいですか?

  • 先輩T:お、なんで /tmp の容量を増やしたいの?

  • 後輩W:DISK FULLエラーが出て、調べてみたら /tmp がいっぱいで書き込めなくなったみたいなので。

  • 先輩T:それ、先に何が /tmp の容量を食ってるか調べたほうがいいよ。たぶん セッション じゃないかな……。

  • -10分後-

  • 後輩W: session-xxxx っていうファイルがたくさんあったので、これを消します。

  • 先輩T:待って待って、消したらログインしてる人に影響が出るし、消してもまた作られるよ。それに、開発サーバーと違って本番ではサーバーが2台あるから、今のままだとユーザーのログイン状態が安定しないような不具合の原因になるよ。

セッションは、ユーザーの一時的な情報を保存するのに使われます。 たとえば、ユーザーのログイン状態や、ショッピングカートの内容などです。

セッションのデータをどこに持つかは、Webアプリケーションサーバーで決めることができます。 ユーザーのブラウザ上に保存したり、サーバーのファイルシステムやメモリ、データベースなどを選択可能です。 DjangoなどのWebアプリケーションフレームワークをよくわからないまま使っていると、 サーバーのファイルシステムにセッションを保存するように設定してしまい、 セッションを格納したファイルで /tmp がいっぱいになってしまうことがあります。

ベストプラクティス

セッションデータの保存には RDBKVS を使いましょう。

cover

(中略)詳細は書籍 自走プログラマー をご参照ください

関連