web-dev-qa-db-ja.com

サーバーの応答時間を改善するには?

Jotcacheなどのキャッシュプラグインを使用する以外に、Webサイトのサーバーの応答時間を改善するを行うにはどうすればよいですか?

すべての非アクティブな記事のモジュール、プラグイン、コンポーネントをすでに削除しましたが、それを改善するために他に何かできることはありますか?

私はクライアント(ブラウザ)が彼の要求に対する応答を受け取るまでの時間について話しています。ページが読み込まれる時間ではありません。

17
web-tiki

サーバー側のパフォーマンスを向上させるために実行できる手順がいくつかあります。これらの一部は、ほとんどの共有ホストでは機能しないことに注意してください。優れたパフォーマンスを得るには、通常、より細かい制御が必要です。

他の最適化と同様に、サイトのパフォーマンスに及ぼす影響を測定する必要があります。基本的な最適化には PageSpeedYSlow などのツールが役立ちます(Firefoxバージョンをお勧めします)。より深く理解するには、一定期間におけるライブシステムの実際の応答時間を測定する必要があります。

PHP

  1. オペコードキャッシュを有効にする

    これはおそらく、サイトのパフォーマンスを向上させるためにできる最大のことです。 OpCache または [〜#〜] apc [〜#〜] を使用することをお勧めします。これらのキャッシュの構成は、サーバーとサイト固有のニーズに基づいてさらに優れたパフォーマンスを実現するように調整できますが、インストールするだけですでに大幅に向上します。

  2. 更新PHPバージョン

    新しいPHPバージョンでは、定期的にパフォーマンスが向上しています。さらに、新しいPHPバージョンで実行すると、Joomlaがより良いコードを使用できるケースがいくつかあります。現在、今日は、PHPより古いバージョンPHP 5.4を気にする場合は使用しないでください。

  3. PHPの設定

    古いPHPバージョン(<= 5.3)の場合、register_globalsおよびmagic_quotes_gpcをオフにして、無料でパフォーマンスを獲得してください。OnPHP => = 5.6 always_populate_raw_post_dataを-1に変更します。

  4. PHP拡張

    Joomlaには、PHP拡張機能がありません。これは常にこれらの拡張機能よりも遅くなります。適切なパフォーマンス向上のために、次の拡張機能をインストールしてください:mbstringZipftp

ウェブサーバー

  1. Gzipを有効にする

    サーバー側の圧縮を有効にすると、帯域幅がCPUリソースと交換されます。世の中のほとんどのサイトにとって、これは正しい呼び出しです。テキストデータのみを圧縮するように注意してください。バイナリデータを圧縮すると、帯域幅の利点なしにCPUヒットが得られます。 Joomlaの設定で圧縮を有効にすることもできますが、サーバーでこれを処理することをお勧めします。

  2. 静的リソースを事前圧縮する

    私は最小化については話していません(これも役立ちます)が、すでに圧縮されたリソースをサーバーで処理するようにNginxとApacheを構成して、gzip圧縮によるCPUヒットを効果的に排除できます。ボーナスポイント:さらに小さいファイルには Zopfli を使用します。

  3. PHPでFastCGIを使用する

    より具体的には、php-fpmを使用する必要があります。これにより、ブラウザがPHP以外のファイルを要求したときに、PHP=が起動しないようにします。

  4. 適切なキャッシュヘッダーを使用する

    Expiresヘッダーを使用すると、必要なサーバーリソースを大幅に削減できます。結局のところ、最速のリクエストは決して行われていないものです。

Apache

一般に、高パフォーマンスのサイトにはNginxを使用することをお勧めします。何らかの理由で絶対にApacheを使用する必要がある場合は、ボーナスのヒントを得ました。

  1. AllowOverrideを無効にする

    AllowOverrideNoneに設定すると、大量のディスクを防止できますIO and

Joomla

  1. FTPモードを使用しない

    サイトを読むユーザーには影響しませんが、拡張機能のインストールなどの一部の操作が遅くなります。

  2. 未使用の拡張機能をオフにする

    これは特にプラグインに当てはまり、これらの多くはすべてのリクエストで実行されます。メニューとコンポーネントを無効にすることは、主に使用可能な拡張機能とメニュータイプを一覧表示するときに役立ちます。また、Joomlaコアに付属する拡張機能を使用して、使用しない拡張機能を無効にするのに5分かかります。

  3. コンテンツの準備をオフにする

    多くのカスタムモジュールを使用する場合(mod_customは、自己記述のようにカスタムではありません)、それらの[コンテンツの準備]を無効にできるかどうかを確認します。これにより、いくつかの処理が節約されます。

  4. キャッシュを使用する

    パフォーマンスを重視する場合は、キャッシュを有効にする必要があります。多くの匿名ユーザーがいる重いサイトを読むのに特に役立ちます。ログインしているユーザーは、ほとんどのキャッシュをバイパスします。これらのキャッシュがたくさんある場合、効果はそれほど大きくありません。

  5. 別のセッションハンドラーを使用する

    代替のセッションハンドラーを使用することで、より重要なことのためにデータベースを解放できます。ファイル(Joomlaの設定では紛らわしいことにNoneと呼ばれます)はディスクIOを再度増加させるため、お勧めしません。 APCを使用すると高速になる可能性がありますが、すべてのセッションデータが失われるリスクが高まります。右の中間はMemcacheです。これには追加のプロセスが必要ですが、APCよりも信頼性が高く、すべてのデータをデータベースに保存するよりもはるかに高速です。

  6. サイトをシンプルに保つ

    あなたは本当にそのFacebookボタンが必要ですか?バナーの後ろに隠れているため、誰も見たことのないかわいいアイコンはどうですか?サイトの表示が少ないほど高速になります。また、可能な限り画像の代わりにCSS3を使用してください。

雑多

  1. ファビコンを設定する

    おかげで Internet Explorer 4.0にさかのぼる決定 ブラウザは、ユーザーがサイトにアクセスするたびにfavicon.icoというファイルにリクエストを出します。 404応答がキャッシュされないため、これがない場合、不要なIOが発生します。 HTMLメタタグでサイトのアイコンを指定するか、favicon.icoというファイルをWebルートに追加します。ファビコンが欲しくないですか?その場所に1x1ピクセルのサイズの透明なPNGを配置します。拡張子は.icoである必要があることに注意してください。

  2. 画像を最適化する

    画像、特にPNGファイルを最適化することで、どのように節約できるかは驚くべきことです。任意のオペレーティングシステムで使用できるさまざまなツールがありますが、個人的には ImageOptim を使用しています。これはOS Xで使用できます。Joomlaのコアイメージは既に最適化されていますが、独自のイメージを使用します。特にテンプレートは重要です。使用している拡張機能を確認することもできます。オープンソースの場合は、新しく最適化された画像を含むプルリクエストを提供してみませんか?

高度な

本当にすべて行きたい場合は、サイトの前に ワニス を置くことを検討してください。それはあなたのサイトへのリクエストをキャッシュし、可能であればそれ自身のキャッシュからそれらを提供し、Joomlaにヒットすることはありません。複雑なツールですが、非常に強力です。 JoomlaはEdge Side Includes(ESI)などの高度な機能を利用しませんが、独自のコードは利用できます。

25
Rouven Weßling

サイトの応答時間を改善するためにできる大きなことの1つは、モジュール設定を更新することです。カスタムモジュール(mod_customを使用)には、コンテンツの準備を有効/無効にするオプションがあります。これにより、カスタムモジュール内のデータコンテンツに対してコンテンツプラグインを実行できます。適切に使用すると強力ですが、モジュール出力に追加のレンダリング時間が追加されます。カスタムモジュールコンテンツ内でコンテンツプラグインを実際に使用しているのでない限り、それをオフにするのが最善です。これを行うと、モジュールのレンダリング時間が短縮されます。

設定のスクリーンショット: enter image description here

注:回答が役に立った場合は、左側のチェックマークをクリックして回答を受け入れてください。

13
Don Gilbert

私はあなたがあなたのサイトをグーグルページの速度で実行したと思います、そしてあなたは確かにページの応答時間、つまりあなたのマークアップがブラウザに送信されるのにかかる時間を減らすことを考えています。

これらの最も可能性の高い原因は重いクエリです。デバッグをオンにしてページの下部を確認し、最も重いクエリを見つけて削除または削減します。 MySQLサーバーのスロークエリログを利用することもできます。

次に見ることができるのはキャッシングです。所有しているサイトの種類に応じて、保守的なキャッシュまたはプログレッシブキャッシュを有効にできます。 Progressiveは、ユーザー関連の機能を持たないサイトで使用されます。

8
Ashwin Date

私が知っていることで役立つことができるもの(そのほとんどがリストされています)は次のとおりです。

  1. キャッシング
  2. 圧縮(cssおよびjsファイルをgzip)
  3. ファイルの結合(すべてのCSSが1つのファイルに結合されます)
  4. 画像とファイルをCDNにオフロードする。

組み込みのJoomlaキャッシュ(またはサーバーでAPCを有効にしても)と、gzipやrocketテーマのロックブースタープラグインなどのプラグインを組み合わせて使用​​しました。また、Amazonアカウントでnonumbers CDNプラグインを使用しています。

それは間違いなく役立ちますが、サイトを監視し、問題のあるコンポーネントのキャッシュを無効にする必要があります。私のサイトでは、CiviCRMをバイパスする必要がありました。これは、キャッシュでニースを再生しなかったためです。 Joomlaには、それを処理できるcachecontrolプラグインが付属しています。

6
Brian Peat

ローカルアセットの削減と適切なキャッシングについても検討する必要があります。できることの1つは、CDNプラグインを使用することです。ここに私がお勧めする2つがあります:

'corePHP' jomCDN- https://www.corephp.com/joomla-products/jomcdn

JoomlaのNoNumbers CDN! - http://www.nonumber.nl/extensions/cdnforjoomla

また、上記のいずれでも問題が解決しないようであれば、おそらくテンプレート、サーバー自体、またはその他の内部に、より深い問題がある可能性があります。その場合は、誰かを雇って問題を突き止め、解決するのが最善の方法です。

4

.htaccessファイルでこのコードを使用することもできます。

RewriteEngine On
RewriteCond %{HTTP_Host}  ^www.your domain [nocase]
RewriteRule ^(.*)         http://your domain/$1 [last,redirect=301]
RewriteEngine on
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
</ifmodule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>

私はJoomlaを使用して何百ものウェブサイトを作成しました!

ほとんどの場合、Joomlaはサーバーで頻繁に機能していると思われますが、私が行った分析によると、Webサイトを高速に保つための最も重要なことは、画像とJS/CSSを最適化することです。

JCEのようなJoomlaエディターを使用して、イメージのサイズを変更しないでください。 photoshopなどの画像エディターやその他のエディターを使用して、必要なサイズに画像のサイズを変更します。

JS/CSS圧縮ツールを使用します。

私たちは常にPingdom Toolsを使用してWebサイトの速度を分析し、JS/CSSを最適化するためにT3 Frameworkの組み込み機能を使用しています!

2
Gev Balyan

未使用のプラグインを削除しましたか? Joomlaは、リクエストでトリガーされたイベントのすべての公開されたプラグインをロードして処理する必要があります。

インストールした拡張機能と、それらがJoomlaとどのように相互作用するかを理解する必要があります。

多くの拡張機能は、コンテンツ、システム、またはユーザーアクティビティを管理してコード機能を開始するプラグインをインストールします。それらのいくつかは不必要かもしれません。

K2は、単一の言語サイトに対して実際の出力を生成しない言語関連のイベントに応答する多くのプラグインをインストールすることを知っています。これらのプラグインを非公開にすると、処理時間を短縮できます。

1
Joomsavvy

サーバー/ Webホスティングプランのリソースを改善する

おそらく、OPが探していた回答ではないかもしれませんが、誰にとっても明白ではない場合に備えて言及する価値があります(他の回答ではまだ言及されていません)。メモリ、CPU、ディスク速度などのサーバーリソースを改善します。

共有Webホスティングを使用している場合、「エコノミー」プランから「ビジネス」プランまたは別のより高度なプランにアップグレードすると、Webサイトで利用できるサーバーリソースが改善され、サーバーの応答時間が短縮される場合があります。より良い品質のホスティング会社(たとえば、共有Webホスティングサーバーの混雑が少ない)に移行することも役立つ場合があります。

優れたホスティングプランを使用すると、基本的なホスティングプランには含まれていないパフォーマンス拡張機能にアクセスできる場合もあります。たとえば、「GrowBig」および「GoGeek」SiteGroundホスティングプランには、サーバーの応答時間を大幅に短縮するのに役立つ動的キャッシュが含まれています。動的キャッシュオプションは、「スタートアップ」プランでは使用できません。

1
Neil Robertson