2012-05-03
■[Linux][curl] curlでボトルネック調査をする
ますだっくすさんが
curlのエントリ書いてたのでおいらも1つだけ追記しませう。
Webサイトのボトルネック調査
あるサイトでアクセスが遅いなぁ、って話になったときにまず当たりをつけるために遅い部分を調べたい。
って時のcurlの使い方。
実際の手順
基本的には、前述のますだっく(@masudak)さんの、「その3. レスポンスの出力を加工する」であるのですが、詳細な項目を設定することで問題の切り分けにも使用できます。
出力フォーマット用のファイル。
cat <<'EOF' >/tmp/curl_env.txt
url_effective\t\t: %{url_effective}\n
http_code\t\t: %{http_code}\n
http_connect\t\t: %{http_connect}\n
time_total\t\t: %{time_total}\n
time_namelookup\t\t: %{time_namelookup}\n
time_connect\t\t: %{time_connect}\n
time_appconnect\t\t: %{time_appconnect}\n
time_pretransfer\t\t: %{time_pretransfer}\n
time_redirect\t\t: %{time_redirect}\n
time_starttransfer\t\t: %{time_starttransfer}\n
size_download\t\t: %{size_download}\n
size_upload\t\t: %{size_upload}\n
size_header\t\t: %{size_header}\n
size_request\t\t: %{size_request}\n
speed_download\t\t: %{speed_download}\n
speed_upload\t\t: %{speed_upload}
EOF
サイトアクセスと結果出力
$ curl -o /dev/null http://www.example.com -w @/tmp/curl_env.txt -s url_effective : http://www.example.com http_code : 200 http_connect : 000 time_total : 5.113 time_namelookup : 5.083 time_connect : 5.092 time_appconnect : 0.000 time_pretransfer : 0.000 time_redirect : 0.000 time_starttransfer : 5.102 size_download : 6435 size_upload : 0 size_header : 328 size_request : 177 speed_download : 1258.000
この場合
DNSのルックアップに時間がかかってるので、そこを改善しましょう、と言う話になります。
ほかにも、time_starttransferが大きければアプリケーションかな?などの切り分けに使えます。
各項目の意味
他にもこんな項目がありますよ。
manページから抜粋。
url_effective 最後にアクセスした URL 。特に curl に対し location: ヘッダに従うように指示した場合に有意になるものです。 http_code 直前の HTTP(S) あるいは FTP(s) 転送から取得された応答コード。 7.18.2 以降では同じ情報を示す response_code がエイリアスとして利用可能になりました。 http_connect curl による CONNECT リクエストに対する(プロクシからの)最後の応答コード。(7.12.4 以降) time_total 全体の処理にかかった時間(秒)。表示精度はミリ秒単位。 time_namelookup 開始から名前解決が完了したときまでの時間(秒)。 time_connect 開始からリモートのホスト(またはプロクシ)への TCP 接続完了までの時間(秒) time_appconnect 開始からリモートホストへの SSL/SSH/etc 接続/ハンドシェイク完了までの時間(秒)(7.19.0 以降) time_pretransfer 開始から最初のバイトの転送が行われようとするまでの時間(秒)。転送前になされるべきコマンドやプロトコル特有のネゴシエーションも含まれる。 time_redirect 正引き(名前解決), 接続, 前段転送処理, 最終的なトランザクションが開始される前の転送を含む、すべてのリダイレクションの段階に要した時間(秒)を表す。この変数は一連のリダイレクション全体に要した時間を表す。(7.12.3 以降) time_starttransfer 開始から最初のバイトが転送されるまでの時間(秒)。 time_pretransfer に加えてサーバが結果を算出するのに要した時間も含まれる。 size_download ダウンロードされた総バイト数。 size_upload アップロードされた総バイト数。 size_header ダウンロードされたヘッダの総バイト数。 size_request 送信された HTTP リクエストの総バイト数。 speed_download curl により測定されたダウンロード完了までの平均ダウンロード速度。バイト数/秒。 speed_upload curl により測定されたアップロード完了までの平均アップロード速度。バイト数/秒。 content_type (存在するなら)リクエストした文書の内容型。 num_connects 直前の転送による新規接続数。(7.12.3 以降) num_redirects リクエストに応じて行われたリダイレクトの回数。(7.12.3 以降) redirect_url リダイレクト追跡の -L を用いずにHTTP リクエストを生成した場合、実際のリダイレクト先になるものとされる URL がこの変数に示される。 (7.18.2 以降) ftp_entry_path リモート FTP サーバにログインしたときに libcurl により最初に辿り着いたパス。(7.15.4 以降) ssl_verify_result リクエストされた SSL ピア証明書の検証結果。 0 は検証の成功を意味する。(7.19.0 以降)
いじょー。
curl高機能すぎて書き始めると色々大変になってきますw
manなど色々見ながら使ってみてくださいませね。
- 出版社/メーカー: 明治
- メディア: 食品&飲料
- 購入: 1人 クリック: 48回
- この商品を含むブログ (4件) を見る
トラックバック - http://d.hatena.ne.jp/akuwano/20120503/1335994486
リンク元
- 24 http://d.hatena.ne.jp/masudaK/20120502/1335973885
- 23 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDwQFjAA&url=http://d.hatena.ne.jp/akuwano/&ei=UWGjT4mjOaTEmQWRvtzSDg&usg=AFQjCNGGJBxeo-KoRwFVU4XIswIMri3PUw
- 20 http://htn.to/qwJ8BC
- 19 http://reader.livedoor.com/reader/
- 19 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CD0QFjAC&url=http://d.hatena.ne.jp/akuwano/20120322/1332419408&ei=Z-qhT8GbJ-7JmQX1u4zvBw&usg=AFQjCNGEU8kTJtzu2_sBiwWReO5GTGd6qQ&sig2=n1wkQRS_Kfm5zBqm-lWfoA
- 17 http://www.facebook.com/l.php?u=http://d.hatena.ne.jp/akuwano/20120503/1335994486&h=VAQFTGy3_AQHExJcyXRhqH5xAyTIVqI2U8AowXlXm9lO79A
- 15 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CG4QFjAB&url=http://d.hatena.ne.jp/akuwano/20120130/1327884845&ei=5P6kT9e6EOTTmAXal8DhBA&usg=AFQjCNEALv4-JzWM6RDNNj9MFwq2aHxtvQ&sig2=Er_mupcsYP25S-bTmGpb-g
- 13 http://longurl.org
- 13 http://t.co/q2mNlslu
- 11 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=9&ved=0CGAQFjAI&url=http://d.hatena.ne.jp/akuwano/20120405/1333595697&ei=fdmiT4aXLIq3iQed-pTVCA&usg=AFQjCNEKofKIa5TcS8sDYMrA_lUK37X4wQ&sig2=akQ4Zj-Hv_w8gijHP9weKA


