巧用nginx日志格式分析网站访问速度、瓶颈

说明:
现在大多数网站都是3层,如果网站慢下来不知道是用户连接慢还是网站服务器处理请求慢.所以需要前端负载均衡balance和后端webserver上记录每一个请求的处理时间,虽然有一点性能的损耗,但是对于DEBUG,tunning来说还是有一定作用的。
可以使用nginx log_format里的$request_time这个变量来记录请求处理的时间,

实现:
1. 日志格式

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_time"';

 
2. 实例

blance:
192.168.8.31 - - [24/Jun/2010:15:02:13 +0800] "GET /sell HTTP/1.1" 200 8624 "http://wwwqa2.yoohouse.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1" "-" "0.704"

webserver:
192.168.4.236 - - [24/Jun/2010:15:02:13 +0800] "GET /sell HTTP/1.0" 200 46227 "http://wwwqa2.yoohouse.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1" "192.168.8.31" "0.702"

通过上面的例子,可以可以看到整个过程中花在blance到webserver中间的时间差很小,blance的日志记录最后总的请求完成的时间。

发表评论

邮箱地址不会被公开。 必填项已用*标注