デフォルトのファイルベースでのセッション管理と比べて 複数のWEBサーバ間でセッション共有してくれたり、今更感はあるけど 幸せになれそうなのでやってみます。 ちなみにNginx+FastCGI環境です。 導入 インストール PHPがインストールされている前提です。 PHPのモジュールにはmemcachedを使用します。memcache(激似)というものもありますが、有志の比較によると現状こちらの方が早いとの事なので。絶賛開発合戦中なので将来的にはわかりませんが。
![PHPセッションをmemcachedで管理する件 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/f3d4ac99342517a667fa795f3b1346f932584473/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UEhQJUUzJTgyJUJCJUUzJTgzJTgzJUUzJTgyJUI3JUUzJTgzJUE3JUUzJTgzJUIzJUUzJTgyJTkybWVtY2FjaGVkJUUzJTgxJUE3JUU3JUFFJUExJUU3JTkwJTg2JUUzJTgxJTk5JUUzJTgyJThCJUU0JUJCJUI2JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lMDFjMTUxYWRkMDM4YjM3OGNlYmNkOGUwNTYwNDc1YQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwc3VwZXJ0YWloZWkwMiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NWNhZGQ1NjA5N2EzMWQ2ZWU5MTQ2YjM0MGQyOTVlMmE%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Df43d793198b95c4d853531e2bf614ede)
Webサービスでは、世界中からのトラフィックを捌く必要があるため、いくらチューニングしようとも一台のRDBMSでは捌ききることが出来ないのが常だ。MySQLは最初からマスター・スレーブ型のレプリケーション機能が搭載されており、スレーブをたくさんぶら下げることによって参照の負荷をスレーブに割り振るというスケールアウトによってその問題に対処してきた。スレーブによるスケールアウトは、参照(=PV)が多いWebサイトと非常に相性が良く、幾多のWebサイトにおいて実績を作ってきているし、まだまだ利用されている。 しかしながら、サイトのトラフィックが劇的に増加してくるようになると、レプリケーションによる負荷分散では追いつかなくなってきた。そこで人々がとった選択肢は、memcachedを利用することである。memcachedはインメモリ型の高速なKVSであり、参照・更新性能はMySQLより格段に高い。M
複数のWebサーバでロードバランス環境を構築する際には、セッション情報の保持を考慮しなければならない。初期設定のPHPは、セッション情報をファイルとして保持しているため、異なるWebサーバに処理が割り振られるとセッション情報が消失してしまうからだ。こういった環境においてセッションを維持する方法は2つある。 セッション維持方法 同じユーザは同じサーバに割り振る セッション情報をサーバ間で共有する 1の手法は、Webサーバに手を加えなくて良い反面、Webサーバが故障した場合はセッション情報が失われる。2の方法はセッション情報の共有コストが発生するが、サーバ故障による障害を防げるし、負荷状況に応じて動的にWebサーバの数を増減させることもできる。そこで、2の方法をつかってセッション情報の共有を試してみた。幸い、PHPにはmemcachedを用いたセッション管理機能がある。この機能を適切に設定する
ざっくり概要 ピークで3000req / sec 毎分コンテンツ更新要求 コンテンツ更新の際は他所からデータをapi経由で受け取る コンテンツ更新にはTheSchwartzを使用 なコンテンツを色々してきたログ。 尚、ここに書く技術は大半が周囲のギークな方々にサポートしてもらったもので、僕自身が何かしたわけではない。残念すぎる。 構成 internet -> www(squid -> apache) -> app(memcached -> app) -> db フロントエンド wwwサーバがapacheとsquidを動かしている。apacheがリクエストを受け、squidのキャッシュが有ればそれを返し、無ければバックエンドのappサーバへproxy。 バックエンド appサーバがmemcachedとアプリを動かしている。 それぞれ冗長化してるけど、リクエスト数の割に台数は少ない。 技術があ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く