月刊1400万PVほどのPC・モバイルサイトのセッション保存先としてmemcacheを使っているのですが、かなり頻繁に(多いときは1時間に数十回)下記のエラーが発生します。

PHP Warning: Unknown: Failed to write session data (memcache). Please verify that the current setting of session.save_path is correct (tcp://192.168.0.51:11211) in Unknown on line 0
少々厄介なのですが、この問題を解決する方法をご存じの方はいらっしゃいませんでしょうか?

行った対策:
http://ja.pastebin.ca/1457941
※ 長文のため、こちらに記載しました。

【WEBサーバ環境】
・CentOS 5.3 64bit
・PHP 5.2.6
・pecl memcache 2.2.5
・session_nameはPHPSESSIDではなく、SSIDに変更

【WEBサーバ環境で設定されているphp.iniの該当箇所】
session.save_handler = memcache
session.save_path = tcp://192.168.0.51:11211

【memcacheサーバ環境】
・CentOS 5.3 64bit
・Memcache 1.2.6(最大割り当ては1.2GB)
※ WEBサーバが複数あるため、セッションの保存先を同じLANに存在する1台のMemcacheサーバを指定して稼働させています。

もし解決法をご存じの方や試してみて見ると良さそうな事、その他不具合を減らす方法などがございましたら、お知恵を貸して頂けますでしょうか。何卒お願い致します。

回答の条件
  • 1人2回まで
  • 登録:2009/06/13 01:44:14
  • 終了:2009/06/20 01:45:02

回答(1件)

id:QuestR2 No.1

QuestR2回答回数435ベストアンサー獲得回数132009/06/13 02:48:14

ポイント60pt

>※ WEBサーバが複数あるため、セッションの保存先を同じLANに存在する1台のMemcacheサーバを指定して稼働させています。

セッションはWEBサーバー毎に独自に設定されるので、このように共有すると、バッティングします。

  • id:ko-takada
    pastebinに投稿した内容をこちらに貼り付けます。

    MEMCACHE INFOによると、空きは200MB以上常にあるのでFreeが一時的に不足しているという事ではない上、
    リクエスト回数の平均は14.92 cache requests/secondと、それほど極端に多い訳ではありません。
    また、この不具合が増える時間帯は毎日異なり、アクセスが集中する時間やnetstatでの接続数の上下具合との因果性は見られませんでした。
    当初メモリ割り当ては1GBで空き容量が200MBを割る程度だったのですが余裕を持って1.2GBにしてみても変化はありませんでした。

    次に、session.save_pathにpersistent=1&weight=2&timeout=2&retry_interval=15などを指定すると
    session.nameで指定した物ではなくオリジナルのPHPSESSIDとなる為、リトライ先を増やす形で
    以下の様にカンマでつなげた所、特に上記のエラーが発生する量に変化はありませんでした。
    session.save_path = tcp://192.168.0.51:11211,tcp://192.168.0.51:11211,tcp://192.168.0.51:11211

    そして次にpeclのmemcacheを2.2.5-stableから3.0.4-betaに変更した所、
    PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 21777846 bytes) in Unknown on line 0
    というエラーが多発し、メモリオーバーフローしたような雰囲気でサーバがハングアップします。
  • id:ko-takada
    補足をします。
    Failed to write session dataとなった時に起こる症状としては、セッションに保存してあったデータが消えてしまいます。
  • id:ko-takada
    /etc/sysconfig/memcached のファイルでは最大同時接続数を2000から10000に変更しておりますが、この症状が発生します。

    $ cat /etc/sysconfig/memcached
    PORT="11211"
    USER="nobody"
    MAXCONN="10000"
    CACHESIZE="2000"
    OPTIONS=""
  • id:tamupon
    はじめまして

    tamuponと申します。

    私が関わってる案件でも同現状が発生して困っております。

    当事象は解決されていれば、解決方法教えて頂ければ助かります。

    よろしくお願いします!!!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません