赞
踩
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
【2】. 进入logs目录。
【3】. 双击查看日志文件。
Linux
【1】. 执行 vi /usr/local/nginx/logs/error.log 命令
也可以使用
[root@localhost logs]# tail -f access.log
可以看到09秒连续到达4个请求,只处理1个请求;第一个请求处理,其他3个请求被拒绝
2、测试burst
1)限速1qps时,超过请求会被直接拒绝,为了应对突发流量,应该允许请求被排队处理;因此配置burst=5,即最多允许5个请求排队等待处理;
http{
limit_req_zone $binary_remote_addr zone=test:10m rate=1r/s;
server {
listen 80;
server_name localhost;
location / {
limit_req zone=test burst=5;
root html;
index index.html index.htm;
}
}
2)使用ab并发发起10个请求, ab -n 10 -c 10 http://127.0.0.1/index.html
3)查看服务端access日志;根据日志显示第一个请求被处理,2到5四个请求拒绝,6到10五个请求被处理;为什么会是这样的结果呢?
查看nginx源码的ngx_http_log_module模块,每个请求都会 注册handler到NGX_HTTP_LOG_PHASE阶段(HTTP请求处理最后一个阶段打印日志【保含正常处理和异常处理】);
出现异常处理会比正常处理日志提前输出。
因此实际情况应该是这样的:10个请求同时到达,第一个请求到达直接被处理,第2到6个请求到达,排队延迟处理(每秒处理一个);第7到10个请求被直接拒绝,因此先打印access日志;
第2到6个请求(排队延迟处理)每秒处理一个,处理完成打印access日志,即18到22秒每秒处理一个;
4)ab统计的响应时间见下面,最小响应时间1ms,最大响应时间5002ms,平均响应时间为1502ms:
3测试nodelay
1)2显示,配置burst后,虽然突发请求会被排队处理,但是响应时间过长,客户端可能早已超时;因此添加配置nodelay,使得nginx紧急处理等待请求,以减小响应时间:
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。