Concrete5の速度アップについて

2010年7月7日 at 10:26

初めまして。
現在、下記の構成でConcrete5の構築をしていますが、サイトの表示が遅く悩んでいます。
過去掲載されたトピックを参照し速度アップを試みてはおりますが、改善が難しいためご質問させていただきました。

■公開用Webサーバ
 OS:Windows Server 2003
 CPU:Intel Xeon
 メモリ:1GB
 Webサーバ:Apache2.2.15
 php:php5.2.13+eAccelerator
 Concrete5:concrete5.4.0.5

■DB用サーバ
 OS:Windows 2000 Server
 CPU:Intel Xeon
 メモリ:2GB
 DB:MySql5.1.47

WebサーバはDMZに、DBはLANに設置しております。
具体的な現象としまして、ページの読み込みがタイムアウトしてしまったり、読み込まれたページが途中で途切れていたりということがあります。また、正常に読み込まれても、どのページも10~20秒程の時間が必要です。
設定は適宜変更できますので、Concrete5に合ったapacheやphpの設定が存在するのであれば、そういった面からもご指導いただければと思います。

よろしくお願いいたします。

Re: Concrete5の速度アップについて

2010年7月8日 at 23:33
過去のトピックを参考にされたとのことですが、
どこまで試されましたか?また、現在も適用されていますか?

また、使用しておられるテーマはオリジナルでしょうか?
 

Re: Re: Concrete5の速度アップについて

2010年7月9日 at 10:57
ご返信いただきありがとうございます。

参考にさせていただいたのは下記の情報です。
http://concrete5-japan.org/community/forums/chat/post-461/
http://c5.tktools.jp/index.php?cID=909

テーマはサイト内の「オリジナルテーマのつくり方」を参考に、当方で作成したものを使用しております。
その中で、「ページの属性」で読み込ませるCSS名の情報を追加し、各ページでCSSを個別に指定する処理を組み込んでいます。(蛇足かもしれませんが、各ブロックに個別でCSSを指定する機能は使用しておりません)
ブラウザからConcrete5のページを読み込む際にCPU使用率が50~60%程に上昇していますので、自作のテーマが足枷になっている、というのは考えられそうです。

また、Concrete5関連の情報でなく恐縮なのですが、MySQLの設定で名前解決をスキップする設定を追加したところ、いくらかの進展が見られました。
ですが、依然ページの表示にはいくらかのストレスがあります。同じページをロードした場合でも、早い時遅い時があったりと動きが安定しておりません。
現在は、主にボトルネックとなっていそうなphp周辺の設定を調査しております。
 

Re: Re: Re: Concrete5の速度アップについて

2010年7月16日 at 6:19
すいません、環境の確認なのですが、
現在、DMZとLANでの通信が発生するかと思いますが、
DMZはグローバルでLANはプライベートでIPを割り当てているということで良いですか?

外部からアクセスした際に、
(1)外部からDMZへのリクエスト(クライアント→Web)
(2)DMZからLANへのリクエスト(Web→DB)
(3)LANからDMZへの応答(DB→Web)
(4)DMZから外部への応答(Web→クライアント)
というTCP/IPの通信が発生しています。
まず、この通信部分の応答時間とServer自身の応答時間を切り分ける必要が
あるかと思います。

Web ServerにPHPでのDBとのやり取りが発生しない静的なページを作成して
その応答時間を計測し、concrete5でのページ表示の応答時間を比較してもらえますか?
あと、phpMyadminなどでDBの状態を確認し、赤字で表示されている変数を確認してもらえますか?

これらでどの部分が問題なのかはある程度切り分けできるかと思います。

できればWeb ServerにDBもインストールし、その応答時間を比較できると
確実にその比較ができるかと思うのですが・・・。
 

Re: Re: Re: Re: Concrete5の速度アップについて

2010年7月21日 at 12:06
ご返信いただきありがとうございます。

環境については、komachanさんの認識通りです。
ちなみにDMZ←→LAN間の通信速度については、理論値が100MB、実測でも70~80MBは出ているはずです(ファイルコピーレベルでしか確認できていませんが……)。

DBとのやり取りが発生しないphpファイルですが、単純なprint文やphpinfo等であれば瞬時に表示できます。更に詳細な速度計測については自分の不勉強もありできていませんが、今後実施できればと考えております。

またphpMyadminにて赤字で表示されていたのは下記の項目です。
・Handler_read_rnd
・Handler_read_rnd_next
・Created_tmp_disk_tables
・Select_full_join
・Opened_tables
・Table_locks_waited

なお、切り分けの一環としてトピック作成前にWeb ServerにDBをインストールして動作確認を行っております。
当初の設定ではDB Serverの名前解決処理に問題がありローカルDBを使用した方がずっと速かったのですが、MySQLの名前解決スキップ設定処置後はローカルDBアクセスと同等の速度が出ております。