Successfully reported this slideshow.
Your SlideShare is downloading. ×

PHP-Ninjaの裏側

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 53 Ad

More Related Content

Slideshows for you (20)

Similar to PHP-Ninjaの裏側 (20)

Advertisement

More from Takayuki Miyauchi (20)

PHP-Ninjaの裏側

  1. 1. PHPーNinjaの裏側 WordPress高速化のテクニック PHPカンファレンス関西 2012 2012年5月12日 宮内 隆行
  2. 2. 自己紹介
  3. 3. 株式会社デジタルキューブで バックエンドエンジニアやってます。
  4. 4. ninjax.cc Nginxのエンタープライズサポートを 行なっています。
  5. 5. WP Total Hacksなどの WordPressプラグインを作ってます。
  6. 6. ✓ twitter @miya0001 ✓ ブログ http://firegoby.jp/
  7. 7. 今日のおしながき
  8. 8. ✓ PHP-Ninjaとは? ✓ Nginxのご紹介 ✓ Nginx導入の際の勘所。 ✓ その他のオトクな情報♥
  9. 9. php-ninja.com
  10. 10. PHP-Ninjaって?
  11. 11. ✓ ファーストサーバーのクラウド基盤 Z- Cloudを利用したWordPressのPaaS サービス。 ✓ ファーストサーバーとデジタルキューブの 技術陣が結集して、超高速な WordPress環境を提供。 ✓ 月間300万PVを想定!
  12. 12. どれぐらい速い?
  13. 13. レンタルサーバー 20リクエスト/秒ぐらい チューニング済みの 100リクエスト/秒ぐらい LAMP環境 PHP-Ninja 5,000∼8,000/秒
  14. 14. 10,000リクエストを 7,078リクエスト/秒で処理
  15. 15. なぜ速い?
  16. 16. Z-Cloudが速い
  17. 17. ✓ クラウド基盤の開発元は、 あのNode.jsのjoyent社。 ✓ インフラが国内。 ✓ 技術に定評があるファーストサー バーが提供
  18. 18. ファイルシステムが速い ✓ OSのファイルシステムに ZFSを採用。 ✓ ディスクのI/Oが超高速。
  19. 19. CPUバーストがすげー ✓ 高負荷時にCPUのコアをダイナミックに増 減します。 ✓ 完全な オートスケール。
  20. 20. WEBサーバーに Nginxを採用!
  21. 21. Nginxってなによ?
  22. 22. ロシアで開発された 高速で軽量なWEBサーバー
  23. 23. 名だたるIT企業が続々と採用
  24. 24. Nginxの特徴
  25. 25. C10K問題 (クライアント1万問題) ご存知ですか?
  26. 26. ✓あまりにもクライアント数が増え るとハードウエアの性能に関係な く、サーバーがパンクする。 ‣ プロセスIDが枯渇しちゃう。
  27. 27. NginxはC10Kに対応するた めに開発されました。 従来のWebサーバでは同時接続数が増えると、プロセス 数やスレッド数が増えて、メモリを食いつぶしたり、コ ンテキストスイッチのオーバーヘッドが大きくなること により本来の処理に時間が割けなくなったりします。 nginxではマルチスレッドを使わずに、イベント駆動の アーキテクチャを採用することにより、このC10K問題 に対応するような仕組みを設けております。このため、 メモリの使用量も抑えることができ、メモリが少ない サーバでもそれなりに快適に動作します。 出展: http://heartbeats.jp/hbblog/2012/01/nginx01.html
  28. 28. メモリ消費を予測しやすい メモリ使用量 それ以外 イベントドリブンのWEB サーバー(Nginxなど) 同時接続数
  29. 29. 驚くほど優秀なリバースプロキシ
  30. 30. PHP-NInjaでは、 これらの技術を採用することで 超高速なWordPress環境を 実現しました。
  31. 31. しかしWEBアプリケーションで リバースプロキシを 導入するにはコツも必要です。
  32. 32. 動的サイトを静的にキャッシュ しちゃうがゆえの悩みがっ!
  33. 33. WordPressではコメント投稿者の情 報をCookieを使って保存して、次回以 降も再利用できるようにしています。 リバースプロキシはこれもキャッシュします。
  34. 34. php-ninjaではAjax化することで、 この問題を解決しています。
  35. 35. コメントが投稿されても 反映されないじゃん! そりゃそうです。 静的にキャッシュされてますので。。。
  36. 36. コメント投稿時にキャッシュをクリア するプラグインをご用意しました。
  37. 37. 予約投稿が公開されない...。 静的にキャッシュされてますので、 そもそもPHPにリクエストが来ない。。。
  38. 38. 予約投稿があるときは Ajaxでバックエンドにリクエストを 送るようにしました。
  39. 39. つまり、動的に変更したい部分は、 Ajaxを駆使する必要があります。
  40. 40. あと、キャッシュしてほしくないペー ジは、header()でキャッシュしない ようにレスポンスヘッダを送ってしま いましょう。
  41. 41. というわけで 今日のまとめ
  42. 42. PHP-Ninjaは 笑けるほど速い!
  43. 43. CPUバーストで完全なオート スケールを実現してるんだよ!
  44. 44. NginxはC10Kに対応して るんだぜ!
  45. 45. Nginxをリバースプロキシ として導入すると超高速化す るよ!
  46. 46. 静的にキャッシュしちゃうの でいろいろとノウハウが必要 だよ!
  47. 47. ただいまから 耳寄り情報のお時間
  48. 48. 複数のWordPressを一元管理 http://wp.remotemanager.me/
  49. 49. PHP-Ninjaに手が出ない...orz
  50. 50. 貧乏なあなたへ!
  51. 51. サーバーを移行することなく、 一瞬にしてWordPressが高速化する 魔法のようなサービスを始めます。
  52. 52. ありがとうございました。

Editor's Notes

  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

×