TODOS・何でも情報交換TOPから是非ご覧ください。
一番下の投稿フォームへ > スレッド一覧 > 記事閲覧
FastCGIについて
日時: 2014/05/29 09:57
名前: りり

くりくりさんが、ご自身のブログで、mod_fcgidとAPCとXserverというタイトルで書かれていましたのを拝見しました。

前に、別の所でそのことに言及もあったかと思います。

こちらの方、「WordPressを高速化する「FastCGI化」をエックスサーバーで試す」を詳細に記述されています。
http://www.iscle.com/web-it/fastcgi.html

>エックスサーバーによればアクセス数が少ないサイトだと逆効果になってしまうこともあるようです。FastCGI化を行いスピードテストなどで効果を検証し、よい効果が期待できそうか試してみてはいかがでしょうか。

ということで、うちは、まだ設定をしていないので、条件を記録して比較したいと思います。

FastCGIについてのXserverの説明は、こちら
https://www.xserver.ne.jp/manual/man_server_php_fastcgi.php

竹中さんによると
>設定を行いたいドメインで「PHP高速化設定(FastCGI化)」をクリックします。「PHP高速化設定を変更する(確認)」をクリックし、次の画面で有効にするにチェックをいれて「PHP高速化設定を変更する(確定)」を押しましょう。なんと設定はたったこれだけです!

ということですが、Xserverでは、
>CGIをFastCGIとして動作させる場合、プログラムの拡張子を「.fcgi」に変更にしてください。
>また、拡張子を変更せず「.cgi」をFastCGIとして動作させる場合には、 下記を.htaccessに追記することによって「.cgi」でFastCGIの使用が可能です。

とか

Movable Type Open Source(MTOS)のFastCGI化を行うときも、.htaccessを、mtディレクトリ内(AddHandler fcgid-script .cgi)を設置すると書かれています。

WordPressは、PHPプログラムなので、こちらの方法に従えば良いのかな?https://www.xserver.ne.jp/manual/man_server_php_rapid.php
■PHPのFastCGI化を行う方法
「PHP高速化設定(FastCGI)」機能を使うことで、簡単に設定を行うことが出来ます。

>アクセスの少ないサイトの場合、無駄なプロセスが発生し、逆に負荷がかかってしまう場合がありますので、ご注意ください。

とあるので、要注意ですね。アクセス頻度で、効果も違うのかもしれません。

いずれにしろ、Xserverに例として挙げられているほどの時間短縮は、竹中さんの方ではなかったようです。

TODOSサイトは、PerlのCGIを沢山使っているので、このあたりで効果があるでしょうか?
うちのWordPressの方は、試験的に作っているだけなので、とってもとってもアクセスの少ないサイトなので試しても無駄でしょう。


メンテ

*TODOS・何でも情報交換・TOP*<スレッドPage> 最新 | 2 | 1 |

Re: FastCGIについて ( No.6 )
日時: 2014/06/05 17:45
名前: りり

くりくりさん、いつも情報をありがとうございます。

APC / OPcacheは、使っているXserverでも対応しているようで、情報がありました。
うちは、サーバ自前ではないので、似たようなことがレンタルサーバではどうなっているかということで、参考になります。
http://www.xserver.ne.jp/manual/man_server_php_apc.php

なるほどーーー
PHPの初回実行時に、PHPの内容を最適化した状態でキャッシュしておき、次回以降、同じPHPにアクセスがあった際にキャッシュを利用することで、PHP実行時のCPU負荷の軽減や、PHPの大幅な高速化を図る…ということなんですね。

こちらでは、
>「APC」はPHP5.3 / PHP5.4のみ、「OPcache」はPHP5.5でのみご利用可能です。
とあるので、PHPのバージョンが上がったら、「OPcache」に移行という感じなのかな?

Xserverで行ったベンチマークにおいては、「FastCGI + APC」もしくは「FastCGI + OPcache」を利用することによって、利用しない場合との間に約3.5倍程度の高速化が見込まれる結果が出ているということなので、FastCGIと組み合わせるとより効果的ということでしょうか?
メンテ
Re: FastCGIについて ( No.7 )
日時: 2014/06/05 21:06
名前: くりくり

こんばんは
上で書いたのはphp5.5.12でアパッチベンチマークをしました。
おまけでphp5.3.3も測定していました。

>「Requests per second」は、1秒当たりに処理できるリクエスト数を表します。この項目は
ベンチマークで一番重要な項目で、この値が大きくなれば、性能が向上していると考えられます。
http://www.uetyi.mydns.jp/wordpress/linux-server/entry-441.html

ノーマル
Requests per second: 4.67 [#/sec] (mean)

mod_fcgid
Requests per second: 4.78 [#/sec] (mean)

APC
Requests per second: 9.54 [#/sec] (mean)

ノーマルとmod_fcgidはFailed requests:3
apcは失敗はなくちゃんと処理できました。
php5.5をつかったほうが処理能力はあがりますね。

>PHPのバージョンが上がったら、「OPcache」に移行という感じなのかな?
サーバーの仕様がそうなっているんでしょうね。
試したことはありませんが、php5.3でもopcacheを使えるとどこかで読んだことがあります。

>FastCGIと組み合わせるとより効果的ということでしょうか?
これも近いうちにやってみたいと思いますが、
私のちょっと前のwordpressがnginxでopcache&php-fpmの構成でした。
さて、php5.3とphp5.5の速度で
FastCGI + OPcache > FastCGI + APCになるとおもいます。


メンテ
Re: FastCGIについて ( No.8 )
日時: 2014/06/06 16:15
名前: りり

>php5.5をつかったほうが処理能力はあがりますね。

なるほど…くりくりさんのブログに詳しく書かれていますね。
他にリバースプロキシーの効果が凄いみたいなことも…


OPcacheは、php5.5.12での数値向上がはっきりしていますね。

だから、Xserverでは、
>「APC」はPHP5.3 / PHP5.4のみ、「OPcache」はPHP5.5でのみご利用可能です。

と、PHP5.4からOPcacheに対応させているのかしらね。



>>FastCGIと組み合わせるとより効果的ということでしょうか?
>これも近いうちにやってみたいと思いますが、
>私のちょっと前のwordpressがnginxでopcache&php-fpmの構成でした。
>さて、php5.3とphp5.5の速度で
>FastCGI + OPcache > FastCGI + APCになるとおもいます。

はい。結果を楽しみにしてます。
メンテ
Re: FastCGIについて ( No.9 )
日時: 2014/06/11 13:59
名前: くりくり

こんにちは

うーん、php-fpmとmod_fastcgiですが、
参考サイトをみてみますと
phpをcgiでうごかしたりと変更を加えて色々改造するみたいですが
うまくいきません。
個人のサーバーならともく安定性を重要視するなら
使えそうな技術ではありません。
それを実用化してるXserverは流石です。
メンテ
Re: FastCGIについて ( No.10 )
日時: 2014/06/12 07:59
名前: りり

Xserverがどのようにしているのかは分からないですが、全体的に、ユーザーが設定すると、例えば、FastCGI使用とかに設定すると、そのユーザーのドメインの.htaccessが、それ用に書き換えられるようです。

ですから、全てが同じ動きでは無く、ユーザー毎に設定されるんですね。

.htaccessの書き換えも、それまでに使っていた設定があれば、それに追加する形で書き加えられます。

なので、自分で.htaccessを編集するときは、注意が必要なんですね。
サーバ側が追加した記述を消さないようにしないとなりません。

以前、WordPressのマルチサイトを試したとき、マルチにするには、.htaccessをこう書けという指示があって、そのとき、置き換えてしまってphpのバージョンの記述を消してしまったことがありました。マルチサイトには、新しいphpでないとダメで…ということで、堂々巡りをし、気づいて、phpのバージョンの記述を残してマルチサイトに必要な記述を入れました。

Xserverは、.htaccessをいじれない人でも、コントロールパネルで設定したら、いろいろと活用できるようにしているんですね。
これは、レンタルサーバにより、いろいろと仕組みがあるようです。

くりくりさんのブログに書かれている試行は、難しくて良く分からないのですが、htmlのみのユーザーとWordPressのみのところと、多分、サーバの動き方の理想も違う気がしたのですが、そうした棲み分け方なんか、どうなんでしょうかね?

そういう棲み分けを考えて、Xserverなども、WordPressに特化したレンタルサーバを打ち出したのかもしれません。
メンテ
Re: FastCGIについて ( No.11 )
日時: 2014/06/12 09:55
名前: くりくり

おはようございます。

>全てが同じ動きでは無く、ユーザー毎に設定されるんですね

なるほど、サーバー全体ではなくというユーザーにもか・・・。
うむー。新サーバーの構成をフロントエンドでnginx、
バックエンドもnginxとかんがえてましたがapacheの構成なら.
htaccessつかえるしこのほうがよさそうかも。
とおもったら、

>phpのバージョンの記述を消してしまったことがありました。
.htaccessの消してしまう可能性もあるんですよね。
wordpressのプラグイン.htaccessつかうやつもあるしな。
これは参考になります。

>htmlのみのユーザーとWordPressのみのところと、
多分、サーバの動き方の理想も違う気がしたのですが、
そうした棲み分け方なんか、どうなんでしょうかね?

すごいするどいですね!!

実験の結果からphpの処理に関しては
apacheでもnginxでも大した違いがないことがわかってます。
リバースプロキシーの導入が効果的。
しかし、リバースプロキシーはhtmlとか静的なファイルに関してはあんまり効果がない。

以上の結果から、
nginx(リバースプロキシー)&apacheの構成をとって
htmlはキャッシュ化しない。
wordpressのサイトはキャッシュ化する。

という構成が一番いいんじゃないかな?
という私なりの結論です。

nginxとapacheを併用するパターンは
htmlなんか静的ファイルをnginxで、
phpはapacheで処理をするようにするのが普通らしいですが

上記の設定だと
ご存知のように私のwordpressはURLがhtmlにでてしまいます。
そうすると本当にnginxがファイルがあるかなと思いファイルを探してしまう。
結局、404エラーになってしまいます。

リバースプロキシーの話題はスレッドわけさせて頂きました。
http://todos.xsrv.jp/22patioweb/todos.cgi?no=54

ブログの方でちょっと言及しておりますが、
nginxにはfastcgiキャッシュなるものもあります。
これもリバースプロキシーと違い早いそうです。
しかし、nginx&php-fpmのみこれができるみたいです。
メンテ
Re: FastCGIについて ( No.12 )
日時: 2014/06/12 19:57
名前: りり

くりくりさん、リバースプロキシーの独立スレッドありがとうございます。続きを期待しています。今は、他の経験者のレスは得られないかもしれないのですが、どんどん書き進むと、似たようなトライをされている方が、検索ヒットから訪れるかもしれません。こちらでは、どなたでも気づいたことや考えていることなど、気軽にちょっと書いてみようかな?という雰囲気で進むと良いなと思っています。

nginxのことは、全然分からないのですが、apacheは、シェアが落ちてきているらしいですが、.htaccessで、ユーザーがそれぞれに設定できる部分があるので、レンタルサーバなどでは便利なのかもしれませんね。

専用サーバを運用するなら、中に入るものの性質に応じて考えていくと良いのかもしれませんよね。

くりくりさんのブログ、本当に知らない単語が沢山で分からないのですが、ストーリー的には何となく分かりました。

くりくりさんのいろいろなトライで、うまい方向にまとまっていったようですね。

素晴らしいです!

FastCGIとかリバースプロキシーとか、バラバラに考えるのではなく、組み合わせというか、連携というか、サーバ運用の大枠での工夫という感じになりますね。

私は、くりくりさんのブログで高速化に苦心されていて、使っているXserverでもFastCGI利用設定があり、どういうとき利用すると良いのかということから、興味を持って、こちらのスレッドを立ててみたんですが、サーバの動きは、いろいろとあるんだなーと感心するばかりです。
メンテ
Re: FastCGIについて ( No.13 )
日時: 2014/08/13 17:54
名前: くりくり

こんにちは

sslの導入に伴いリバースプロキシーだとサイト表示がちゃんとできないので
fastcgiキャッシュに変更しました。
これはnginxしかない機能でしてapacheにはありません。
リバースプロキシーのキャッシュありとおなじくらいパフォーマンスがあります。

メンテ
Re: FastCGIについて ( No.14 )
日時: 2014/08/14 16:25
名前: りり

くりくりさんのブログによると
>nginxのリバースプロキシーを設定すると例のhttpとhttpsの混在なんとかになりサイト表示がブロックされてしまう。
>fastcgiキャッシュに変更し、キャッシュの保持時間をすごく短くした。

ということですね。


sslの導入で、リバースプロキシーだとサイト表示がちゃんとできない…というのは、どうしてなんでしょうね?
メンテ
Re: FastCGIについて ( No.15 )
日時: 2014/08/15 15:56
名前: くりくり

こんにちは

Fastcgiキャッシュのベンチマークテストとりましたら、
sslを常時接続にするとサーバーの負荷が高くなることがわかりました。
負荷が高くなる原因はキーの長さ2048bitが原因だそうです。
暗号化の強度がたかくなれば負荷もあがるわけです。

これを解決してくれるのがsslオフローダーだそうで、
リバースプロキシーもオフローダーになるみたいことがかいてありました。
後の研究課題になりそうです。
メンテ

*TODOS・何でも情報交換・TOP*<スレッドPage> 最新 | 2 | 1 |

楽しい交流と情報交換のTODOS・アップローダーも用意。ぜひTOPからもご覧ください。
ご参考になりましたら、お気軽に一筆お書き込みくださいませ。
題名 スレッドをトップへソート
名前
画像添付
JPEG
GIF
PNG



参照ボタンを押して、PCの画像を指定ください。3枚まで指定できます。縮小画像はクリックで拡大されます。
パスワード (好きなパスワードを。投稿後、右下のスパナマークをクリックし、そのパスワードを入れて修正できます。)
コメント

   クッキー保存
スレッドTOPへ***スレッド一覧