网站相关技术探究keepalive_timeout(转)
网站相关技术探究keepalive设多少:
| 0:标准输入
1:标准输出
2:标准错误
|
| total 0
lrwx------ 1 root root 64 Apr 4 17:49 0 -> /dev/null
lrwx------ 1 root root 64 Apr 4 17:49 1 -> /dev/null
lrwx------ 1 root root 64 Apr 4 18:30 18 -> socket:[475691]
lrwx------ 1 root root 64 Apr 4 18:30 19 -> socket:[475692]
l-wx------ 1 root root 64 Apr 4 17:49 2 -> /usr/local/nginx/logs/error.log
lrwx------ 1 root root 64 Apr 4 18:30 20 -> socket:[475694]
lrwx------ 1 root root 64 Apr 4 18:30 21 -> socket:[475695]
lrwx------ 1 root root 64 Apr 4 18:30 22 -> socket:[475698]
lrwx------ 1 root root 64 Apr 4 18:30 23 -> socket:[475699]
lrwx------ 1 root root 64 Apr 4 18:30 24 -> socket:[475701]
lrwx------ 1 root root 64 Apr 4 18:30 25 -> socket:[475702]
lrwx------ 1 root root 64 Apr 4 17:49 3 -> socket:[475689]
l-wx------ 1 root root 64 Apr 4 17:49 4 -> /usr/local/nginx/logs/access.log
l-wx------ 1 root root 64 Apr 4 17:49 5 -> /usr/local/nginx/logs/error.log
lrwx------ 1 root root 64 Apr 4 17:49 6 -> socket:[128687]
lrwx------ 1 root root 64 Apr 4 19:33 7 -> socket:[475690]
|
| 2013/04/04 18:06:32 [error] 12861#0: *31 open() "/www/favicon.ico" failed (2: No such file or directory), client: 1.202.193.244, server: www.a.com, request: "GET /favicon.ico HTTP/1.1", host: "*.****.com" |
| 1.202.193.244 - - [04/Apr/2013:18:13:37 +0800] "GET / HTTP/1.1" 200 19 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.2.0.0 Safari/537.17"
1.202.193.244 - - [04/Apr/2013:18:13:37 +0800] "GET /favicon.ico HTTP/1.1" 404 570 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.2.0.0 Safari/537.17"
|
| tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 192.168.100.99:80 1.202.193.244:12988 ESTABLISHED
tcp 0 0 192.168.100.99:80 1.202.193.244:12989 ESTABLISHED
|
| 1.202.193.244 - - [04/Apr/2013:18:13:50 +0800] "-" 400 0 "-" "-" |
| tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 192.168.100.99:80 1.202.193.244:12988 ESTABLISHED
|
| keepalive_timeout 60; |
| tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN |
| 1.202.193.244 - - [04/Apr/2013:18:23:51 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.2.0.0 Safari/537.17"
1.202.193.244 - - [04/Apr/2013:18:23:51 +0800] "GET /favicon.ico HTTP/1.1" 404 570 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.2.0.0 Safari/537.17"
1.202.193.244 - - [04/Apr/2013:18:24:10 +0800] "-" 400 0 "-" "-"
1.202.193.244 - - [04/Apr/2013:18:25:01 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.2.0.0 Safari/537.17"
1.202.193.244 - - [04/Apr/2013:18:25:01 +0800] "GET /favicon.ico HTTP/1.1" 404 570 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.2.0.0 Safari/537.17"
1.202.193.244 - - [04/Apr/2013:18:25:20 +0800] "-" 400 0 "-" "-"
|
| keepalive_timeout 20; |
| Thu Apr 4 18:51:09 CST 2013
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 192.168.100.99:80 1.202.193.244:14759 ESTABLISHED
tcp 0 0 192.168.100.99:80 1.202.193.244:14760 ESTABLISHED
|
| Thu Apr 4 18:51:28 CST 2013
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 192.168.100.99:80 1.202.193.244:14759 ESTABLISHED
|
| Thu Apr 4 18:51:29 CST 2013
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
|
socket连接,并且使用一次之后就断开这个tcp连接。使用keep-alive可以改善这种状态,即在一次TCP连接中可以持续发送多份数据而不会
断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少TIME_WAIT状态连接,以此提高性能和提高httpd
服务器的吞吐率(更少的tcp连接意味着更少的系统内核调用,socket的accept()和close()调用)。但是,keep-alive并不是
免费的午餐,长时间的tcp连接容易导致系统资源无效占用。配置不当的keep-alive,有时比重复利用连接带来的损失还更大。所以,正确地设置
keep-alive timeout时间非常重要。
timeout时间设置参数。比如nginx的keepalive_timeout,和Apache的KeepAliveTimeout。这个
keepalive_timout时间值意味着:一个http产生的tcp连接在传送完最后一个响应后,还需要hold住
keepalive_timeout秒后,才开始关闭这个连接。当httpd守护进程发送完一个响应后,理应马上主动关闭相应的tcp连接,设置
keepalive_timeout后,httpd守护进程会想说:”再等等吧,看看浏览器还有没有请求过来”,这一等,便是
keepalive_timeout时间。如果守护进程在这个等待的时间里,一直没有收到浏览发过来http请求,则关闭这个http连接。
数"net.ipv4.ip_local_port_range"所定制的,假设我们设置为net.ipv4.ip_local_port_range
1024-65535 即可用本地端口v80 64511*IP数(但我还没见过不同IP重复端口的)可以用"netstat -an|grep :80
|awk '{printf $5"\n"}'|awk -F: '{printf $2"\n"}' |uniq
-dc"来获得。所以我一般计算会用64511/users-此时users所占keepalive_timeout个数。即1000个用户同时访问此静
态页。?*1+?所占keepalive时间=64511。假设1000个用户同时访问,即
下一秒再来1000用户即22511再下一秒1511,那下一秒怎么办?即可以处理3秒就完蛋了。或许17秒后可以重新获得20000的连接,可再多支撑
一秒。而且此计算是非常理论的值,上面可以看到一个连接到关闭是要15-20秒左右,之后才是keepalive_timeout时间。
下面两张图,TCP状态,很多人不了解,第一张取自LVS配置说明里的,因为是打印后用笔写过所以不是原版的。,大家将就着看。


网站相关技术探究keepalive_timeout(转)的更多相关文章
- 前端框架之bootstrap及相关技术网站
1.web框架之bootstrap bootstrap来源Twitter,是一个CSS/HTML框架,它是基于HTML,CSS,JavaScript下的,使用简洁,当中提供了很多HTML和CSS 如用 ...
- 网站缓存技术总结( ehcache、memcache、redis对比)
网站技术高速发展的今天,缓存技术已经成为大型网站的一个关键技术,缓存设计好坏直接关系的一个网站访问的速度,以及购置服务器的数量,甚至影响到用户的体验. 网站缓存按照存放的地点不同,可以分为客户端缓存. ...
- 关于Web开发里并发、同步、异步以及事件驱动编程的相关技术
一.开篇语 我的上篇文章<关于如何提供Web服务端并发效率的异步编程技术>又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有 ...
- 【原】http缓存与cdn相关技术
摘要:最近要做这个主题的组内分享,所以准备了一个星期,查了比较多的资料.准备的过程虽然很烦很耗时间,不过因为需要查很多的资料,因此整个过程下来,对这方面的知识影响更加深刻.来来来,接下来总结总结 一 ...
- 关于全站https必要性http流量劫持、dns劫持等相关技术
关于全站https必要性http流量劫持.dns劫持等相关技术 微信已经要求微信支付,申请退款功能必须12月7号之前必须使用https证书了(其他目前为建议使用https),IOS也是2017年1月1 ...
- SAAS相关技术要点
这篇文章本来是我们开发组内部用的一个小文档.因为我们公司以前没有做SAAS的经验,就成立了一个小组做一做这方面的技术前探,我是成员之一.这篇文档想从宏观的层面把开发一个SAAS应用所要用到的技术点稍微 ...
- 初识-Android之智能短信项目相关技术整理
标签页切换采用传统的TabHost: 采用TabActivty实现TabHost. 效果图-后补: 相关技术详解推荐: http://blog.csdn.net/zhouli_05/article/d ...
- 减少HTTP请求之合并图片详解(大型网站优化技术)
原文:减少HTTP请求之合并图片详解(大型网站优化技术) 一.相关知识讲解 看过雅虎的前端优化35条建议,都知道优化前端是有多么重要.页面的加载速度直接影响到用户的体验.80%的终端用户响应时间都花在 ...
- http缓存与cdn相关技术
阅读目录 一 http缓存 二.Http缓存概念解析 三.cdn相关技术 摘要:最近要做这个主题的组内分享,所以准备了一个星期,查了比较多的资料.准备的过程虽然很烦很耗时间,不过因为需要查很多的资料, ...
随机推荐
- [BZOJ2667][cqoi2012]模拟工厂 贪心
2667: [cqoi2012]模拟工厂 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 367 Solved: 184[Submit][Status] ...
- Java基础:异常机制
最近开始了找工作的面试,在面试过程中,面试官问了关于Java当中的异常处理机制,一直以来,无论写代码还是看书,自己对异常处理这一块就没有很好的重视过,对它的认知也仅仅停留在通过Try-catch去进行 ...
- 「转」基于Jmeter和Jenkins搭建性能测试框架
搭建这个性能测试框架是希望能够让每个人(开发人员.测试人员)都能快速的进行性能测试,而不需要关注性能测试环境搭建过程.因为,往往配置一个性能环境可能需要很长的时间. 1.性能测试流程 该性能测试框架工 ...
- strcmp()函数-比较字符串的大小、字符串排序
1.比较字符串的大小: 用法:strcmp(字符串1,字符串2),若字符串1>字符串2 则返回1,字符串1<字符串2 则返回 -1,相等返回0. 比较两个字符串的算法是:逐个比较两个串中对 ...
- IntelliJ IDEA 常用设置/快捷键
经常用到 IntelliJ IDEA 编写java,由于不时需要重装系统,所以Mark一下一些基本的设置选项,以便查询,这篇帖子会一直更新,只要有常用的新的设置或者快捷键 一.常用设置 显示代码行号 ...
- 微信小程序开发教程(四)线程架构与开发步骤
线程架构 从前面的章节我们可以知道,.js文件是页面逻辑处理层.我们可以按需在app.js和page.js中添加程序在生命周期的每个阶段相应的事件.如在页面的onLoad时进行数据的下载,onShow ...
- 通过python的logging模块输出日志文件
import logging import sys #获取logger实例 logger = logging.getLogger("baseSpider") # 括号后面填运行的文 ...
- 8.4(Java学习笔记)java脚本引擎(Rhino)
一.java脚本引擎 java脚本引擎是沟通java和脚本语句之间的桥梁,可以通过对应的脚本引擎在java中调用各种脚本语言. 二.脚本引擎执行脚本代码 ScriptEngineManager:为Sc ...
- redis踩坑记
本来打算给一批主库做从库,用来读取数据,还不想碰主库数据. 主库redis2.8.12,从库一开始没注意,docker了一个3.1的,结果slaveof之后命令不兼容,下了一个2.8的(2.8.23好 ...
- Java杂谈3——类加载机制与初始化顺序
Java语言的哲学:一切都是对象.对于Java虚拟机而言,一个普通的Java类同样是一个对象,那如果是对象,必然有它的初始化过程.一个类在JVM中被实例化成一个对象,需要经历三个过程:加载.链接和初始 ...