Concrete5 速度アップについて

2011年1月28日 at 12:16

はじめまして、こんにちは。

Concrete5バージョン:5.4.0.5

Concrete5の速度アップを目指しています。
先日の週刊Concrete5にて、CSSの直書き?とeAcceleratorについての話があったと思います。

1.CSSの直書き?
CSSの直書き?というようなニュアンスでお話されていたと思います。
この場合のCSSの直書き?とは、管理画面のテーマとページでテンプレートの
カスタマイズからCSSを追加するのではなく。
CSSファイルなどを直接アップロードし、テンプレートなどにパスを直書きするという認識であっていますか?


2.eAccelerator
Concrete5ではZendライブラリの関係から、eAcceleratorではなくAPCを推奨されているようですが、実際の速度向上率では、eAcceleratorとAPCあまり変わらないのでしょうか?


最後に、上記のほかに顕著にみられる速度アップの方法はなにかありますでしょうか。使用しているレンタルサーバーは、専用サーバーでroot権限があるのである程度のカスタマイズは可能です。


コアな質問で申し訳ないのですが、どなたかご回答よろしくお願いします。

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

2011年1月28日 at 12:39
> 1.CSSの直書き?
直書きすると、色などのカスタム設定ができなくなりますが高速になります。

elements/header.phpにmain.cssを下のように書いているが
<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $this->getStyleSheet('main.css')?>" />
<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $this->getStyleSheet('typography.css')?>" />

下に変更する。
<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $this->getThemePath().'/main.css'?>" />
<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $this->getThemePath().'/typography.css'?>" />
 

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

2011年1月28日 at 13:41
eAccelerator ですが、今まで、concrete5 はネイティブで、キャッシュを直接 eAccelerator のメモリ空間内に保存できました。 APCもそうです。

/config/site.php にキャッシュ指定を記入することにより(以下例)

define('CACHE_LIBRARY', 'apc');


キャッシュファイルを /files/cache/ 内に生成するのではなく、直接、サーバーのメモリ上に保存します。

それの eAccelerator サポートなくす予定です(というか、なくした?)

なんでも、eAccelerator との相性が悪くて、結構、本家のサーバーがクラッシュしたからです。

APCに変えるメインの理由は、PHP6から、PHPに標準装備されるから、そして、それらが本家のフォーラムのユーザーとの議論で、「APCのほうがいい」という結論に達したからです。

当 concrete5 の日本語サイトですが、5.4.0.5 にアップグレードした際・・・昨年の6月に、eAcceralator から APC に変更しました。スピード的に違和感はありません。ただ、APCは、PHPと同じチームが開発しているので PHP との互換性や、バージョンアップなどのサポートは eAcceralator と比べものにならないのかな〜と思っています(間違ってたら直してね)



本家の後日談。APC に替えても、やっぱ、本家はユーザーフォーラムが1分に1回更新されるぐらい活発なので、キャッシュを貯めている意味がなくなります。フォーラムに新規投稿される数分の度に数万人以上いるユーザーに一斉に通知メール配信とかしてます。

キャシュは、そんなに更新されないけれどもアクセスが凄いサイトにしかオススメでないです。本家のサイトは、だいたい、月間1.6百万PVあります。

ということで本家は、キャッシュを使うのを諦めました。普通にバランサを使ったり、ファイルの保存場所を変更したり Apache httpd.iniや MySQL my.cnfの設定を絶妙に調節してチューンアップしています。
 

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

2011年1月28日 at 14:03
はい。確認しました。

Zend Framework の Cache に eAccelerator 含まれていませんね(eAcceleratorのサポートは5.3.3.1 までです)

なので、concrete5 では、eAccelerator を使用している場合は、concrete5 では、キャッシュ機能をオフにして、PHPファイルをキャッシュするとスピードが一番向上するかも。ただ、これは、かなり条件によってかわります。

Zend Framework が現時点でサポートしているキャッシュは・・・

apc
xcache
memchaced

などなどです。ただし、私は Zend にあんまり詳しくないので、間違ってたら、どなたかフォローお願いしますね。
 

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

2011年9月27日 at 16:49
memchaced使えましたよ
 

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

2011年1月28日 at 14:09
あ、読み返してたら、補足。

eAccelerator は今まで、 concrete5 で独自にサポートをしていましたが、だんだん、アプリケーションが肥大化してきて、他の多言語サポートや日付サポートなども必要になってきました。

ということで、Zend Framework を使えるところは使っていこうということになり、自然に、eAccelerator のサポートが終了し、Zend Cache が’サポートしている、APC、 memcached 、xCache のサポートが付きました。ということです。

前記事にある各キャッシュの名前を /config/site.php に書き換えることにより、それらのキャッシュを使うことが出来ます。もちろんサーバーにそれらの機能がインストールされている必要がありますが。

サーバーによって千差万別。こういうのは、自分でインストールして比べるしかありません。

ただ、いろんな人のご意見も大事。もしもよろしければテストをお願いします。

(cocnrete5-japan.org ってある意味、私がテストに使ってるようなもん〜(!?))
 

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

2011年1月28日 at 14:31
僕はメディアトラックのサーバー利用しています。

eAcceleratorが入っているサーバーで
concrete5側でのキャッシュはオフです。

いろいろありますね~

僕もちょっと相談してみよう~
 

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

2011年9月27日 at 15:15
現在もeacceleratorは使用可能なのでしょうか?

eacceleratorのコントロールパネルで確認するといつも
cached scripts 1 
でphpファイルをキャッシュ出来ていない感じです。

また、site.phpにdefine('CACHE_LIBRARY', 'eaccelerator');を
入れると500エラーで表示できませんので未記入です。

環境はレンタルサーバーで以下の状況です。
eaccelerator 0.9.6.1
php5.3.3
concrete5 5.4.1.1ja

これも高速化する為の一つで、本来APCが望ましいのでしょうが、VPS以外の
共用サーバーでは見つけられませんでした。
こういったPHP高速プログラム以外にも高速化するための方法はありますでしょうか。
 

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

2011年9月27日 at 15:23
残念ながら、現在は APC のみのサポートになっています。

eAccelerator を搭載していたら、若干早くなります。

ややこしいですが、キャッシュをファイルにするか、メモリーに構築するかですが、そもそもの PHP は、eAccelerator にキャッシュされますんで・・・。
 

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

2011年9月27日 at 16:50
memchacedを使う方法もあります。

あとは、ページの編集履歴(古いバージョン)を消すと少しDBが軽くなります。
 

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

2011年9月27日 at 22:51
お返事いただきましてありがとうございます。自己レスにてお礼申し上げます。

eAcceleratorがサポートされない = cache_library とやはり使えないんですね。
仰るようにサポートされなくても、本来のPHPファイルのキャッシュが機能してればいいんですが
そのキャッシュされるスクリプトが「1つ」しかなかったものでしたので・・・

書き込み後、快適環境を求め、さくらインターネットの共用サーバーのビジネスプロでAPCをSSHで入れ
どの程度体感できるか試してみました。
が、標準インストール直後及びAPC含め、現在使用しているサーバーよりももっさり感がありましたのでまた振り出しです。

memchachedは入れたことはないのですが、一度導入してみた方がいいでしょうか。

いずれにしてもベストな環境を探してみます。
 

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

2011年9月27日 at 23:50
僕はさくらのVPS1.5GでAPCでサクサク動いていますよ。
 

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

2011年9月28日 at 0:47
serverman@vpsでもテスト運用していたんですが、管理メニューが英語になる症状から
脱せなく、その後concrete5はVPSでの運用は躊躇していました。

さくらのVPSも試してみます。ありがとうございます。
 

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

2011年1月28日 at 14:44
いろいろとご教授いただき有り難うございます。
試せるところは試していきたいです。

>yamanoiさん
ありがとうございました。
スタイルシートの当て方は、現在getStyleSheetを使っていました。
getThemePathに置き換えたかったのですが、css内のクラスで画像をしていているのでそっちが上手く動かず・・・

background-image: url(images/background.gif); 的な感じ

なにか方法がないか、もう少し粘ってみます。

>katz515さん
いろいろご確認していただきありがとうございます。

今後のことも考え、apcの導入と、httpd.conf、my.cfのチューニングもやってみたいとおもいます。
サーバーのチューニングはちょっと自信ないですけど・・・


余談ですが。
先日の週刊Concrete5では、うちの福岡のkenjiがお世話になりました。
システム的な開発は私が担当しているので、話してる内容が若干間違っててちょっと文句言ってやりましたが、今後ともよろしくお願いします。

たぶん、福岡の勉強会は私も参加するのでよろしくお願いします。