Linux ターミナルで Web サイトの読み込み速度をテストする方法
Web サイトの応答時間は、ユーザー エクスペリエンスに大きな影響を与える可能性があります。Web 開発者、または特に要素をまとめることを担当するサーバー管理者である場合は、ユーザーが応答時間を感じないようにする必要があります。サイトにアクセスするときにイライラするので、 本当に「スピードが必要」になります。
こちらもお読みください: httpstat – Web サイトのパフォーマンスをチェックするための Curl 統計ツール
このガイドでは、Linux コマンド ラインから Web サイトの応答時間をテストする方法を説明します。ここでは、かかる時間を秒単位で確認する方法を示します。
- 名前解決を実行します。
- サーバーへの TCP 接続用。
- ファイル転送が開始されます。
- 転送される最初のバイト用。
- 完全な操作のために。
さらに、HTTPS 対応サイトの場合、リダイレクトとサーバーへの SSL 接続/ハンドシェイクが完了するまでにかかる時間を秒単位でテストする方法も説明します。いいですね、よし、始めましょう。
cURL は、FILE、FTP、FTPS、HTTP、HTTPS などのプロトコルを使用して、サーバーとの間でデータを転送するための強力なコマンド ライン ツールです。ほとんどの場合、コマンド ライン ダウンローダーとして、または HTTP ヘッダーをチェックするために使用されます。ただし、ここでは、あまり知られていない機能の 1 つについて説明します。
cURL には、完了した操作後に情報を標準出力に出力するための便利なオプション -w
があります。これには、Web サイトの上記のさまざまな応答時間をテストするために使用できる変数がいくつかあります。
時間関連の変数の一部を使用します。これらの変数は、リテラル文字列として、またはファイル内で指定された形式で渡すことができます。
したがって、ターミナルを開いて以下のコマンドを実行します。
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null http://www.google.com
上記の形式の変数は次のとおりです。
- time_namelookup – 名前解決が開始されてから完了するまでにかかった時間 (秒単位)。
- time_connect – 開始からリモート ホスト (またはプロキシ) への TCP 接続が完了するまでにかかった時間 (秒単位)。
- time_pretransfer – ファイル転送の開始から開始直前までにかかった時間 (秒単位)。
- time_starttransfer – 開始から最初のバイトが転送される直前までにかかった時間 (秒単位)。
- time_total – 完全な操作が継続した合計時間 (秒単位) (ミリ秒単位)。
形式が長すぎる場合は、ファイルに書き込み、次の構文を使用して読み取ることができます。
curl -s -w "@format.txt" -o /dev/null http://www.google.com
上記のコマンドでは、フラグは次のようになります。
-s
– Curl がサイレントに動作するように指示します。-w
– 情報を標準出力に出力します。-o
– 出力をリダイレクトするために使用されます(ここでは、/dev/null にリダイレクトすることで出力を破棄します)。
HTTPS サイトの場合は、次のコマンドを実行できます。
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.google.com
上記の形式では、新しい時間変数は次のとおりです。
- time_appconnect – 開始からリモート ホストへの SSL 接続/ハンドシェイクが完了するまでにかかった時間 (秒単位)。
- time_redirect – 最終トランザクションが開始されるまでに、名前検索、接続、事前転送、転送を含むすべてのリダイレクト ステップにかかった時間 (秒単位)。複数のリダイレクトの完全な実行時間を計算します。
注意すべき重要な点。
- さまざまなテストを実行すると、応答時間の値が (いくつかの要因により) 変化し続けることがわかります。そのため、いくつかの値を収集して平均速度を取得することをお勧めします。
- 次に、上記のコマンドの結果から、HTTP 経由で Web サイトにアクセスする方が HTTPS 経由よりもはるかに高速であることがわかります。
詳細については、cURL のマニュアル ページを参照してください。
man curl
最後になりましたが、結果が満足のいくものでない場合は、サーバーまたはコード内でいくつかの調整を行う必要があります。 Linux で Web サイトの読み込みを高速化するためのプログラムとヒントを説明する次のチュートリアルの使用を検討してください。
- Debian および Ubuntu に Ngx_Pagespeed (速度最適化) を使用して Nginx をインストールする
- CentOS 7 の Ngx_Pagespeed で Nginx のパフォーマンスを高速化
- Nginx と Gzip モジュールを使用して Web サイトを高速化する方法を学ぶ
- TCP BBR を使用して Linux サーバーのインターネット速度を向上させる方法
それだけです!これで、コマンド ラインから Web サイトの応答時間をテストする方法がわかりました。以下のフィードバック フォームからご質問いただけます。