
最近、ウェブサイトの速度が少し落ちているのに気づいたことはありませんか?ストップウォッチで時間を計っても、なかなか改善しません。もしこのような状況に気づいたら、経営陣に報告する必要があるのは分かっていますが、すぐに行動に移せるような情報がないまま、その場を立ち去るのは避けたいですよね。
結局のところ、今少し速度が低下しただけでも、後々大きな低下につながる可能性があります。競合他社は常に進化し、改善を続けている中で、こうした速度低下が将来、より大きな問題に発展するリスクを負うわけにはいきません。
参照: 採用キット: バックエンド開発者 (TechRepublic Premium)
そのためには、ウェブサイトの速度を記録しておく必要があります。そうすれば、権限のある人に「問題が発生しています」と伝えるために必要な情報が得られます。
curlコマンドを使えば、シンプルなbashスクリプトを作成し、日付付きの便利なファイルに速度データを収集できます。その方法を具体的に説明します。
ウェブサイトの速度をテストするために必要なもの
必要なのは、実行中のLinuxインスタンスとsudo権限を持つユーザーだけです。Linuxのバージョンはデスクトップでもサーバーでも、お好きなディストリビューションで構いません。ここではUbuntu Server 22.04でデモを行いますので、異なるディストリビューションをお使いの場合は、curlインストールコマンドを変更する必要があるかもしれません。
以上です。スクリプトを作成しましょう。
curlのインストール方法
Curlはすでにオペレーティングシステムにインストールされているはずです。まだインストールされていない場合でも、簡単にインストールできます。Linuxディストリビューションにログインし、ターミナルウィンドウを開いて次のコマンドを実行してください。
sudo apt-get install curl -y
異なるディストリビューションを使用している場合は、インストール コマンドが異なります (RHEL ベースのディストリビューションの場合は sudo dnf install curl -y)。
curl をインストールしたら、スクリプトを作成します。
ウェブ速度テストのbashスクリプトを作成する方法
使用するスクリプトは、次のコマンドを使用して実際に簡単に作成できます。
nano ~/webtest
その中に次の内容を貼り付けます。
#!/bin/bash
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 URL > webspeedtest_"$(date)"
ここで、URL はテストするサイトのアドレスです。
スクリプトの詳細は次のとおりです。
- ルックアップ時間は、リクエストが応答を受信するまでにかかる時間を示します。
- 接続時間は、リモート サーバーへの TCP 接続が完了するまでの時間を記録します。
- AppCon 時間は、 SSL 通信の処理に必要な時間を記録します。
- リダイレクト時間は、リダイレクト要求の合計時間を記録します。
- 転送前時間は、ファイル転送が開始されるまでの合計時間を記録します。
- 転送開始時間は、最初のバイトがリモート サーバーに送信されるまでの時間を記録します。
- 合計時間は、応答を完了するまでにかかる時間を記録します。
スクリプトの最後で、出力を webspeedtest ファイルに送信し、ファイル名の末尾に日付と時刻を追加します。これにより、特定のインスタンスのテスト結果を表示するファイルだけでなく、テストが実行されるすべてのインスタンスのファイルも作成されるため、結果を比較できるようになります。
ファイルを保存して閉じます。
次のコマンドを使用して、スクリプトに実行可能な結果を与えます。
chmod u+x ~/webtest
テストスクリプトを実行する方法
テストを実行するには、次のコマンドを発行します。
./webtest
このスクリプトは比較的速く実行され、webspeedtest_DATEという名前のファイルが作成されます。ここで、DATEは実行日時です。スクリプトの出力は次のようになります。
Testing Website Response Time for: URL
Lookup Time: 0.120128
Connect Time: 0.177519
Pre-transfer Time: 0.177644
Start-transfer Time: 0.240367
Total Time: 0.240540
ここで、URL はスクリプトで設定したアドレスです。
テストを自動化する方法
毎日テストを実行するのを忘れないように、cronを使って自動化しましょう。crontabファイルを以下のコマンドで編集します。
crontab -e
crontab ファイルの下部に次の行を追加すると、毎朝午前 8 時にテストが自動的に実行されます。
0 8 * * * /home/USER/webtest
USERはLinuxユーザー名です。スクリプトを別のディレクトリに保存した場合は、必ずパスを変更してください。
Ctrl + X で crontab ファイルを保存して閉じます。
必要に応じて、次の行を使用して、テストを 1 時間ごとに実行するように設定することもできます。
0 * * * * /home/USER/webtest
覚えておくべきことの 1 つは、テスト結果ファイルは蓄積されるため、整理する必要があるということです。
重要な指標の簡単なテスト
これで、ウェブサイトの重要な指標をテストするための自動スピードテストスクリプトが完成です。複数のサイトをテストする必要がある場合は、サイトごとにスクリプトを作成し、各テストのcrontabエントリを追加してください。
必要な指標をすべて得られるわけではありませんが、ウェブサイトに何か問題が発生しているかどうかを把握するのに役立つ特定のテストに関する情報は確実に得られます。速度低下が続く場合は、トラブルシューティングを開始する時期です。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。
Web開発者の知識をマスターしたいですか?TechRepublic Academyの以下のリソースをご覧ください。The
Ultimate Web Designer & Developer Bundle
The Complete Web Developer Coding Bundle
The 2023 FullStack Web Developer Bundle