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


17

jotcacheなどのキャッシュプラグインを使用する以外に、Webサイトのサーバー応答時間改善するために何ができますか?

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

クライアント(ブラウザ)がリクエストに応答するまで時間について話しています。そして、ページがロードされる時間ではありません。


応答までの時間は、SQLとPHPの呼び出しを見てみたいので、PHPのドキュメントが終了する前の時間であり、私がお勧めしたいキャッシュhtmlの質問
tristanbailey

サーバーの応答時間とは、要求が最初に行われたときのサーバーからの応答を意味しますか、それともサーバーがページを準備して提供するのにかかる時間を意味しますか?Pingdom速度テストを実行してサイトを実行し、結果を投稿すると、実際の問題に対する具体的なソリューションを提供できます。
ブレント修道士14

回答:


25

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

他の最適化と同様に、サイトのパフォーマンスに与える影響を測定する必要があります。基本的な最適化には、PageSpeedYSlowなどのツールが役立ちます(Firefoxバージョンをお勧めします)。より詳細に理解するには、一定期間にわたって稼働中のシステムの実際の応答時間を測定する必要があります。

PHP

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

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

  2. PHPバージョンを更新する

    新しいPHPバージョンでは、パフォーマンスが定期的に改善されています。さらに、新しいPHPバージョンで実行する場合、Joomlaがより良いコードを使用できる場合がいくつかあります。今日の時点で、パフォーマンスに関心がある場合は、PHP 5.4より古いバージョンのPHPを使用しないでください。

  3. PHP設定

    古いバージョンのPHP(<= 5.3)では、オフregister_globalsmagic_quotes_gpcしてパフォーマンスが無料になるように注意してください。PHP 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ヘッダーを使用すると、必要なサーバーリソースを大幅に削減できます。最速のリクエストは、やったことのないものです。

アパッチ

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

  1. AllowOverrideを無効にする

    大量のディスクIO AllowOverrideNone防ぐように設定し、

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ファイルを最適化することでどのような節約ができるかは驚くべきことです。あらゆるオペレーティングシステムで利用可能なさまざまなツールがあります。個人的には、OS Xで利用可能なImageOptimを使用します。また、使用している拡張機能を確認することもできます。オープンソースの場合、新しく最適化された画像を含むプルリクエストを投稿してみませんか?

高度な

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


8
それは...やや不親切だ。ちなみに、私はこれを書いたばかりで、テキストは準備されていませんでした。グーグルでお気軽に。回答は、元の質問者だけでなく、ここで自分の道を見つける将来のユーザーにも役立つはずです。
ルーベンヴェスリング14

13

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

設定のスクリーンショット: ここに画像の説明を入力してください

注:私の答えがあなたを助けたなら、答えを受け入れるために左のチェックをクリックしてください。


3
コンテンツの準備セクションを見たことはありません。これはどのバージョンのJoomlaに適用されますか?
TryHarder 14

1
オンの場合、プラグインをコンテンツで実行できます。カスタムでHTMLテキストエリアをモジュールポジションショートコードまたは他のプラグインのショートコードを置くのであればこれらはあなただけのウェブサイトではない準備されたバージョンでは例えば「{TAG_NAMEを}」が表示されます、表示されません
tristanbailey

2
「コンテンツの準備」オプションは、Joomla 2.5および3.xに含まれています。デフォルト設定は「いいえ」です。
ニールロバートソン

8

Google Pageの速度でサイトを実行しており、実際にページの応答時間、つまりマークアップがブラウザに送信されるまでの時間を短縮しようとしていると思います。

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

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


重いクエリがどのように見えるかのヒントやスクリーンショットを提供できますか?到達するしきい値はありますか?
デビッドフリッチュ14

本当にアプリケーションに依存します。ただし、スロークエリログに記録されるクエリ(通常の設定では、実行に1秒以上かかるクエリが記録されます)は、キャッシュを分割またはキャッシュするのに適した候補です。愚かに聞こえるかもしれませんが、すべてのクエリに制限があることを確認してください。
アシュウィン日付14

6

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

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

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

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


2
可能であれば、画像を組み合わせて圧縮します。スプライトは、ページの読み込みごとに何十ものリクエストを保存できます。
ContextSwitch 14

私はいつもスプライトを忘れています。:)
ブライアンピート14

スプライトに関する1つのことに注意してください-Windowsがハイコントラストモードに切り替えられた場合、背景画像は表示されません。この動作は一般的なグラフィックスには歓迎されますが、ユーザーがクリックする必要があるコントロールの問題です-それらは単に消えます(例:このサイトの投票ボタン)
miroxlav 14

Heh Brian Peat、StackExchangeでCiviCRMサイトを立ち上げるのを手伝ってくれませんか。他のStackExchangeサイトで評判が200以上のコミッターが必要です:area51.stackexchange.com/proposals/77367/civicrm乾杯!
ジョーマレー

見てみましょう。これはすべてJoomlaベースであり、プログラミングは一切行いませんでしたが、基本的な質問については手助けできるかもしれません。
ブライアンピート

4

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

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

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

また、上記のいずれでも問題が解決しない場合は、テンプレート、サーバー自体、またはその他の問題により深い問題がある可能性があります。その場合は、誰かを雇って問題を探し出し、解決するのが最善かもしれません。


3

.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>

これはおもしろそうです、それが何をするのか説明できますか?
web-tiki

@ web-tiki設定はexpiresヘッダーです。Expiresヘッダーは、サーバーに特定のファイルを要求するか、ブラウザーのキャッシュから取得するかをブラウザーに指示します。Expires Headersの背後にある考え方は、サーバーからのダウンロードの負荷を減らすこと(変更されていないときに同じファイルを常にダウンロードすることで貴重な負荷時間を浪費すること)だけでなく、サーバーのHTTPリクエストの数を減らすことです。リファレンスgtmetrix.com/add-expires-headers.html
TryHarder

2

Joomla!を使用して何百ものWebサイトを作成しました。

ほとんどの場合、人々はJoomlaがサーバー上で非常に機能していると考えていますが、私が行った分析によると、Webサイトを高速に保つための最も重要なことはIMAGESとJS / CSSを最適化することです。

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

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

私たちは常にPingdomツールを使用してWebサイトの速度を分析し、T3フレームワークの組み込み機能を使用してJS / CSSを最適化します!


JS / CSS圧縮に使用するツールは何ですか?あなたがあなたのサイトのためにしたように、誰かが彼らのウェブサイトをどのように分析できるかについての推奨事項はありますか?
デビッドフリッチュ14

私たちは常にPingdomツールを使用してWebサイトの速度を分析し、T3フレームワークの組み込み機能を使用してJS / CSSを最適化します!
ゲブBalyan

2
また、多くの圧縮と縮小を実現するためにJCH最適化を使用することに成功しました。別のオプションは、Apacheのmod_pagespeedを使用することです。これは、基本的にGoogle Pagespeedの推奨事項のほとんどを実装しています。
アシュウィン日付14

2
すべての優れたツール。@GevBalyan、このようなものをあなたの答えにリンクで追加することをお勧めします。人々をグーグルで救います!この回答を編集して、この回答に追加することもできます。:)
デビッドフリッチュ14

キャッシュしないツールを圧縮すると、サーバーの応答に処理時間が追加されるため、実際にはサーバーの応答時間が長くなる可能性があります。
ドンギルバート14

1

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

インストールした拡張機能とJoomla!との相互作用を理解する必要があります。

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

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


これについてもっと話してもらえますか?「トリガーされたイベント」とはどういう意味ですか?トリガーされたイベントを確認するにはどうすればよいですか?
デビッドフリッチュ14

1
良い質問。インストールした拡張機能とJoomla!との相互作用を理解する必要があります。多くの拡張機能は、コンテンツ、システム、またはユーザーアクティビティを管理してコード機能を開始するプラグインをインストールします。それらのいくつかは不要かもしれません。k2は、単一言語サイトの実際の出力を生成しない言語関連イベントに応答する多くのプラグインをインストールすることを知っています。これらのプラグインを非公開にすると、処理時間が短縮されます。同様に、K2自体には、疑わしい価値のあるメトリックを作成するために高価なクエリを作成するという悪い習慣がありました。
Joomsavvy 14

1
コメントの情報で回答を更新してください。
ハラルドリースナー14

1

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

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

共有Webホスティングを使用している場合、「経済」計画から「ビジネス」計画または別のより高度な計画にアップグレードすると、Webサイトで利用できるサーバーリソースが向上し、サーバーの応答時間が短縮される場合があります。より質の高いホスティング会社への移行(混雑の少ない共有Webホスティングサーバーなど)も役立つ場合があります。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.