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
がいっぱいになってしまうことがあります。
ベストプラクティス¶
セッションデータの保存には RDB か KVS を使いましょう。
(中略)詳細は書籍 自走プログラマー をご参照ください