web-dev-qa-db-ja.com

セッションストレージにmemcache(冗長)を使用しているときにphp / Apacheセグメンテーション違反をデバッグ/修正するにはどうすればよいですか?

  • os:debian squeeze(up2date)
  • 2 Apache mod phpwebserver
  • 2memcacheサーバー

冗長セッションストレージに2つのmemcacheサーバーを使用するApachemod_phpノードを使用する必要があります( https://serverfault.com/a/165584 のバリアント3を使用)。

memcache.ini

extension=memcache.so

[memcache]
memcache.dbpath="/var/lib/memcache"
memcache.maxreclevel=0
memcache.maxfiles=0
memcache.archivememlim=0
memcache.maxfilesize=0
memcache.maxratio=0

memcache.allow_failover=1
memcache.hash_strategy=consistent
memcache.session_redundancy=3

php.ini

session.save_handler = memcache
session.save_path="tcp://192.168.0.11:11211?persistent=1&weight=1&timeout=1&retry_interval=15,tcp://192.168.0.19:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

1つのmemcacheサーバーのみを使用してすべてが正常に機能し、2つまたは2つの冗長サーバーでも非常にうまく機能します。セッションは両方のサーバーに書き込まれます(phpmemcache adminで確認できます)が、1つのノードを強制終了する(1つのmemcacheサーバーを停止する)とすぐに問題が発生します。

memcacheサーバーは、1つの「マスター」サーバーと1つの「2番目の」サーバーを持っているように見えます。 2番目のサーバーを強制終了しても問題は少なくなりますが、1番目のmemcacheサーバーをシャットダウンすると(2番目のサーバーが稼働している)、Apacheエラーログは接続試行ごとにセグメンテーション違反でいっぱいになります。

私もmemcache.session_redundancy=3しかし、バグのために値3があります https://bugs.php.net/bug.php?id=58585

ps。 Firefoxを使用する場合: https://addons.mozilla.org/en-US/firefox/addon/its-all-text 「areあなたは人間的な」serverfaultのもの...

1
c33s

同じエラーが発生しました。 新しいmemcacheバージョン をインストールする必要があります。私は3.04を持っていましたが、あなたが言うように失敗しました。3.07ではApacheはクラッシュしていません。 memcachedサーバーの1つを停止でき、2番目のサーバーはApacheのセグメンテーション違反なしで障害をサポートします。

2