Submit Search
本番環境で使いたいPHP
4 likes
3,453 views
Takuya Sato
1 of 41
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
More Related Content
PDF
Web時代の大富豪的プログラミングのススメ
Hideyuki Takeuchi
PDF
apachehereというPHPのBuiltin Serverっぽいやつをつくった
Junichi Ishida
PDF
RDS(MySQL)の利用と注意点
Hiroyasu Suzuki
PPTX
20140628 AWSの2014前半のアップデートまとめ
Yasuhiro Araki, Ph.D
PPTX
PHP7実環境ベンチ2016春
Ryo Tomidokoro
PPTX
Re: WebServer BenchMarking
Ryo Tomidokoro
PDF
PHPという概念が存在しない退屈な世界
Yoshihiro Ohsuka
PPTX
Varnish
Ayako Hatori
Web時代の大富豪的プログラミングのススメ
Hideyuki Takeuchi
apachehereというPHPのBuiltin Serverっぽいやつをつくった
Junichi Ishida
RDS(MySQL)の利用と注意点
Hiroyasu Suzuki
20140628 AWSの2014前半のアップデートまとめ
Yasuhiro Araki, Ph.D
PHP7実環境ベンチ2016春
Ryo Tomidokoro
Re: WebServer BenchMarking
Ryo Tomidokoro
PHPという概念が存在しない退屈な世界
Yoshihiro Ohsuka
Varnish
Ayako Hatori
What's hot
(20)
PDF
第4回 JAWS-UG Okayama 月額3.3円〜でレンタルサーバーを始める方法
Takeshi Furusato
PDF
初心者向けWebinar AWS上でのファイルサーバ構築
Amazon Web Services Japan
KEY
NHN techcon-20120519-fujimoto
Masaki Fujimoto
PDF
お金をかけないDBチューニング
Kazuya Sato
PPTX
Mvp road show_0830_rev1
Takano Masaru
PDF
サーバーのおしごと
Yugo Shimizu
PPTX
今週やった事
Aira Sakajiri
PPTX
Rust で簡易 HTTP サーバーを作ってみよう
Yuki Toyoda ✲
PDF
Capistrano in practice - WebCareer
Kyosuke MOROHASHI
PDF
Rds徹底入門
Junpei Nakada
PDF
Rubyを使った分散全文検索ミドルウェア
Kouhei Sutou
PDF
AWS Auroraよもやま話
Akira Miki
PDF
とあるApi
Wataru Shinohara
PDF
Dockerizeして 大変だった話、幸せになった話
Akira Miki
PDF
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
tama200x Kobayashi
PDF
採用LT「まだお祈りデプロイで消耗してるの?」
Takayuki Fukumoto
PDF
20120427西区勉強会
Junji Manno
PDF
オンプレ Rancher Server × ML基盤 をはじめます
YASUKAZU NAGATOMI
PDF
20130330 JAWS-UG広島 美人CDP
真吾 吉田
PDF
Webサーバの性能測定
Ryo Maruyama
第4回 JAWS-UG Okayama 月額3.3円〜でレンタルサーバーを始める方法
Takeshi Furusato
初心者向けWebinar AWS上でのファイルサーバ構築
Amazon Web Services Japan
NHN techcon-20120519-fujimoto
Masaki Fujimoto
お金をかけないDBチューニング
Kazuya Sato
Mvp road show_0830_rev1
Takano Masaru
サーバーのおしごと
Yugo Shimizu
今週やった事
Aira Sakajiri
Rust で簡易 HTTP サーバーを作ってみよう
Yuki Toyoda ✲
Capistrano in practice - WebCareer
Kyosuke MOROHASHI
Rds徹底入門
Junpei Nakada
Rubyを使った分散全文検索ミドルウェア
Kouhei Sutou
AWS Auroraよもやま話
Akira Miki
とあるApi
Wataru Shinohara
Dockerizeして 大変だった話、幸せになった話
Akira Miki
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
tama200x Kobayashi
採用LT「まだお祈りデプロイで消耗してるの?」
Takayuki Fukumoto
20120427西区勉強会
Junji Manno
オンプレ Rancher Server × ML基盤 をはじめます
YASUKAZU NAGATOMI
20130330 JAWS-UG広島 美人CDP
真吾 吉田
Webサーバの性能測定
Ryo Maruyama
Ad
Viewers also liked
(8)
PPT
2009年のPHPフレームワーク
Takuya Sato
PDF
徹底攻略!PHP5.4
Takuya Sato
PPTX
ここがすごい! なぞとPHP5.3
Takuya Sato
PDF
Silex入門
Takuya Sato
PDF
フレームワーク使おうぜ!
Takuya Sato
PDF
Vue.js入門
Takuya Sato
PDF
MuninとZABBIXで効率的トラブルシューティング
Masahito Zembutsu
PDF
障害対応・運用におけるトリアージ的対応とZabbixの活用
Masahito Zembutsu
2009年のPHPフレームワーク
Takuya Sato
徹底攻略!PHP5.4
Takuya Sato
ここがすごい! なぞとPHP5.3
Takuya Sato
Silex入門
Takuya Sato
フレームワーク使おうぜ!
Takuya Sato
Vue.js入門
Takuya Sato
MuninとZABBIXで効率的トラブルシューティング
Masahito Zembutsu
障害対応・運用におけるトリアージ的対応とZabbixの活用
Masahito Zembutsu
Ad
Similar to 本番環境で使いたいPHP
(20)
PDF
⑮jQueryをおぼえよう!その1
Nishida Kansuke
PDF
Amazon RDS (MySQL) 入門
Manabu Shinsaka
PDF
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
PDF
社内Chef勉強会
Masaaki Uchida
PPTX
初心者向け負荷軽減のはなし
Oonishi Takaaki
PPTX
ちゃんとWeb会議
Masayuki Abe
PDF
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
Katsuhiro Miura
PDF
【Hpcstudy】みんな、ベンチマークどうやってるの?
Seiichiro Ishida
PDF
初心者がOpenIndianaで自宅サーバを作ったよって話
Masataka Tsukamoto
PDF
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
PDF
Webサーバ勉強会#4
oranie Narut
PDF
sysloadや監視などの話(仮)
Takanori Sejima
PPTX
Osoljp201204
Masataka Tsukamoto
PPTX
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
非同期系統の基礎
segayuu
PDF
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Katsushi Yamashita
PDF
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
PDF
とある Perl Monger の働き方
Yusuke Wada
PDF
anybuild/Hosting casual #1
Ryo Kuroda
PDF
B 2-1 はじめての Windows Azure
GoAzure
⑮jQueryをおぼえよう!その1
Nishida Kansuke
Amazon RDS (MySQL) 入門
Manabu Shinsaka
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
社内Chef勉強会
Masaaki Uchida
初心者向け負荷軽減のはなし
Oonishi Takaaki
ちゃんとWeb会議
Masayuki Abe
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
Katsuhiro Miura
【Hpcstudy】みんな、ベンチマークどうやってるの?
Seiichiro Ishida
初心者がOpenIndianaで自宅サーバを作ったよって話
Masataka Tsukamoto
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
Webサーバ勉強会#4
oranie Narut
sysloadや監視などの話(仮)
Takanori Sejima
Osoljp201204
Masataka Tsukamoto
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
非同期系統の基礎
segayuu
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Katsushi Yamashita
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
とある Perl Monger の働き方
Yusuke Wada
anybuild/Hosting casual #1
Ryo Kuroda
B 2-1 はじめての Windows Azure
GoAzure
More from Takuya Sato
(6)
PDF
レガシープロダクトを改善していくための戦い方
Takuya Sato
PPTX
設計と実装で 抑えておきたい サービスクラスと例外
Takuya Sato
PPTX
Redmineで始めるチケット駆動開発
Takuya Sato
ODP
本当は怖いPHP
Takuya Sato
PPTX
PHPとMongoDBで学ぶ次世代データストア
Takuya Sato
PDF
PHPでセキュリティを真面目に考える
Takuya Sato
レガシープロダクトを改善していくための戦い方
Takuya Sato
設計と実装で 抑えておきたい サービスクラスと例外
Takuya Sato
Redmineで始めるチケット駆動開発
Takuya Sato
本当は怖いPHP
Takuya Sato
PHPとMongoDBで学ぶ次世代データストア
Takuya Sato
PHPでセキュリティを真面目に考える
Takuya Sato
本番環境で使いたいPHP
1.
本番環境で使いたいPHP LOCAL
PHP部 勉強会 佐藤琢哉
2.
自己紹介 • 佐藤琢哉 •
@nazo • 最近スマホアプリ開発してます
3.
今回の内容について • 本番環境でPHP使ってますか? •
どうやって使ってますか? • 金がないけど微妙に負荷がある環境とか 困るよね • そんな感じ • ソーシャルゲームみたいな超負荷の環境の 話はしません • EC2の話もしません
4.
ケース別・本番運用の方法 ケース1:レンタルサーバー
5.
レンタルサーバーの定義 • 借りているサーバー •
root権限はもらえない • SSHできるかどうかは不問
6.
レンタルサーバーでどうにかなるの? • どうにかなるからレンタルサーバーを選ん
でいる – お金だけが理由でレンタルサーバーを選ん じゃうのはちょっと… – 実はサポートをする手間が省ける(サーバー 自分でいじれる人にはあまりない発想) • 今時はVPSも安いので、「サーバーの面倒 見れるけど金がない」という人はVPSで
7.
レンタルサーバーでできること • .htaccessでの設定
– できない場合もある – チューニングと呼べるほどの設定はない • フレームワーク等のキャッシュ設定 – 今回の話ではないけど… – ちゃんと設定すると大幅に速度UP – WordPress等でも
8.
.htaccessで設定できる項目 • http://jp.php.net/manual/ja/ini.list.php •
PHP_INI_SYSTEM”以外”の項目 • もちろん.htaccess自体が使えないといけな い • 正直ここでどうにかなることはほとんど ない
9.
DBのインデックスの見直し • 必ずやろう(全然速度が違うよ!) •
少ないデータでもそこそこ効果あり • 検索クエリそのものを見直すのもあり
10.
その前にインデックスって何? • 索引 •
大量のデータから検索する処理を高速化 するための補助データ • 本の目次
11.
インデックスの考え方 • プライマリキー=インデックス
– つまりプライマリキーで検索しているものは 既にインデックスが効いている • つまりプライマリキー以外で検索している ものを洗い出してインデックスを確認する • 困った時はEXPLAIN
12.
キャッシュによる高速化 • 「何もしないプログラムは一番速い」 •
できるだけ「何もしない」に近づける • 難しい処理を最初にしておいて、その結果 だけを読み込むのが「キャッシュ」
13.
キャッシュの方法 •
フレームワークに付属の機能を使う • PEAR::CacheやZend_Cacheなどを使う • MemcachedやMongoDBなど • MySQLなど(DB) • 自作
14.
どういうところがキャッシュでき
る? • HTML部分のうち、毎回ほぼ同じものが出 てくるもの – 例えば1日に1回しか変わらないランキング を、呼び出し毎に毎回計算していたら無駄 • 計算結果があまり変わらない部分
15.
どのキャッシュシステムを使う? •
再生成コストがどのくらいかかるか • どのくらい再生成するか • どのくらいの負荷がかかるか • どのくらいの永続性が必要か
16.
ケース別・本番運用の方法 ケース2:VPS1インスタンス
17.
そこそこ本格的 • 基本的に1台の中であれば何でもできる •
最近は安いのでホイホイ借りれる • メモリと予算のバランスが難しい – 最低でも1Gはほしい – Virtuozzo系は避けよう
18.
Apacheのチューニング • そんなにできることは多くない •
メモリがきついケースが多いので、余計な モジュールは読み込まないようにしておこ う • mod_expire等で、静的コンテンツへのリ クエストをできるだけ減らす
19.
MySQLのチューニング • ここも劇的に変わるようなことは少ない
– 台数が多くなると話が変わってくるよ • my-‐****.confから適当に選ぼう
20.
そもそもチューニングするために • ボトルネックの調査 –
メモリが限界?スレッド数が限界?CPUが限 界? – ベンチマークすると怒られるよ – Munin / Cacti 等を入れる
21.
低メモリVPS対策 • 低メモリVPS=突然プロセスがこける
– Apacheとか突然死して帰ってこないことがあ る – Virtuozzo系に顕著(スワップがないので) • Monitを入れておいて自動復帰させる
22.
プログラム側の高速化 • cronが使えるので、重たい処理は別プロセ
スで行うことができる • Webからのアクセス時に不要な処理はcron で外出しすると、ユーザー側の見栄えがい い • ただしトータルの処理量はそれほど変わら ない
23.
PHPアクセラレータ • いろいろあるけど、現在の主流はAPC
– APC以外を使う理由はほとんどない • apc.stat は通常は 1 でいい – 0にしたほうが多少高速になるけど管理が面倒 – 負荷が急なところだと初回アクセス時に死ぬ • よほどの理由がない限りは入れておこう – EC-‐CUBEとか入れると動かなくなるよ
24.
ケース別・本番運用の方法 ケース3:4台くらいのサーバー
25.
分散できる?できない? • どう考える? •
4台の役割
26.
今までどこがボトルネックだった
のか • いきなり4台構成にしていない場合は、今 までの監視結果からある程度把握できて いるはず • PHPが重いならPHPサーバーを多めに、 DBが重いならDBサーバーを多めにする
27.
全サーバーに同じものを入れる • 全てに均等に割り振りたいという発想 •
実際はDBが全部均一の役割にすることが できないため微妙 • 4台程度だと、静的コンテンツサーバーと PHPサーバーを別にするメリットはあまり ない
28.
お金に余裕があるのでちゃんと
バックアップしたい • 正解 • 4台程度だと、分散による効果はあまり 期待できない • それよりバックアップが大事
29.
サーバーにApache以外 • Nginx +
php-‐fpm – 速度は出るけど… – 何かあったときにちゃんと対応できる?
30.
ぼくのかんがえたさいきょうのわ
りふり • A:Web(PHP+静的コンテンツ)サーバー • B:DBマスターサーバー • C:DBスレーブサーバー+監視+ログ+ バックアップ • CにはAからのDBアクセスは行かない (バックアップに無理はさせない) • Dは?
31.
4台あると皆さんならどうします
か? • 考えてみましょう
32.
ケース別・本番運用の方法 ケース4:16台くらい
33.
分散する前提 • 何を何台割り当てるか •
4台の時同様、全部に同じものを載せる 方法も無くはない • このあたりはもう専門的な知識が必要な ので、ちゃんと調べよう
34.
ハードウェア構成を考える分岐点 • 現代ではEC2などのクラウドサーバーを使
うことが多い – 台数を増やすのが簡単だよ • 物理サーバはかゆいところに手が届く – 仮想サーバはIOはそこまで速くないよ
35.
PHP部分は4台の時と同じ考え • どこが負荷があるのか •
台数が多いので、cronで動かすサーバーだ けでも複数台設定することが可能
36.
まとめ
37.
構成を考える前に • 何故その構成にする必要があるのか
– 監視をする – 計測をする • 予算…
38.
PHPプログラムをちゃんと
チューニングしよう • サーバー台数を増やして解決=金 • 台数が少ないうちは地道に解決 • 台数が一定数を超えると、増やしただけ では解決しない • 快適な環境は快適なプログラムから
39.
DBをチューニングしよう •
負荷の大半はDB • インデックスがちゃんと有効か • IO処理が入ってないか • どうしても処理しきれなくなったら分散
40.
「金で解決」は 最後の手段!
41.
おわり
Download