天天看點

調優 網站性能名額

curl -o /dev/null -s -w %{time_total}"\n" www.yy.com

-w %{option}    //指定要擷取的名額

可擷取的名額,如下所示:

time_total           //完成請求所用的時間

time_namelookup    //解析完成的時間

time_connect        //建立到伺服器的 TCP 連接配接所用的時間

time_pretransfer      //連結建立完成準備響應時間

time_redirect         //重定向完成時間

time_starttransfer     //在送出請求之後,Web 伺服器傳回資料的第一個位元組所用的時間

http_code            //http傳回類似404,200,500等

size_download        //下載下傳網頁或檔案大小

size_upload          //上傳檔案大小

size_header          //響應頭

size_request          //發送請求參數大小

speed_download      //傳輸速度

speed_upload         //平均上傳速度

content_type          //下載下傳檔案類型. (Added in 7.9.5)

由于網站可能做了keepalive,或者DNS緩存等等,通過curl一次性擷取多組資料實際上有可能資料并不那麼準确,較好的辦法是每間隔一段時間去取一次值,一段時間之後再運作腳本擷取平均值。定時擷取執行curl指令需要借助crontab的幫助

#每分鐘擷取一次資料

root@node1:~# crontab –e

* * * * *  curl –o /dev/null –s –w %{time_connect} www.yy.com >> /tmp/data/data_collected

#!/bin/bash

outputfile="/tmp/data/data_collected"

awk 'BEGIN{tt=0;tc=0;tr=0;tn=0;tp=0;ts=0}{tt+=$1;tc+=$2;tr+=$3;tn+=$4;tp+=$5;ts+=$6}\

END{print \

" time_total = "tt/NR"\n",\

"time_connect = "tc/NR"\n",\

"time_redirect = "tr/NR"\n",\

"time_namelookup = "tn/NR"\n",\

"time_pretransfer = "tp/NR"\n",\

"time_starttransfer = "ts/NR"\n"}' $outputfile

cat /dev/null > $outputfile

or 參考 http://jaseywang.me/

cat  curl-format

time_namelookup:  %{time_namelookup}\n

       time_connect:  %{time_connect}\n

    time_appconnect:  %{time_appconnect}\n

   time_pretransfer:  %{time_pretransfer}\n

      time_redirect:  %{time_redirect}\n

 time_starttransfer:  %{time_starttransfer}\n

                    ———-\n

         time_total:  %{time_total}\n

curl -w "@curl-format.txt" -o /dev/null -s www.yy.com

為什麼需要這個東西,因為有時候網站故障,就是dns解析慢等原因,前提是你需要學會抓包。

更好的是把這個東西加入zabbix

參考http://xiaoluoge.blog.51cto.com/9141967/1829233

本文轉自 liqius 51CTO部落格,原文連結:http://blog.51cto.com/szgb17/1854826,如需轉載請自行聯系原作者