网站相关技术探究keepalive_timeout:

news/2024/5/10 18:01:56/文章来源:https://blog.csdn.net/weixin_33698823/article/details/85096376

 网站相关技术探究keepalive设多少:

/proc/$PID/fd/$number
 0:标准输入
1:标准输出
2:标准错误
Test:
[root@KTQT ~]# ll /proc/12857/fd
 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]
tail -f /proc/12857/fd/2
 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"
一个简单的html文件:
tail -f /proc/12857/fd/4
访问测试:
 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"
初次访问会产生两个链接:
[root@KTQT ~]# netstat -an|grep :80
 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
这个过程大概是20S,多测几次值会很准确。
 1.202.193.244 - - [04/Apr/2013:18:13:50 +0800] "-" 400 0 "-" "-"
这是处理一个链接的时间:即从开始到关闭消耗时间:13:37-13:50=3s,即处理一个html理想状态是3秒。当然同时处理多个算法不可能是*/3,模型不一样。
[root@KTQT ~]# netstat -an|grep :80
 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所决定的。
[root@KTQT ~]# cat /usr/local/nginx/conf/nginx.conf|grep keep
  keepalive_timeout 60;
[root@KTQT ~]# netstat -an|grep :80
 tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN 
来个完整的,间隔两次都是19s。
 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 "-" "-"
我们修改keeplive测试一下:
[root@KTQT ~]# cat /usr/local/nginx/conf/nginx.conf |grep keepalive_timeout
   keepalive_timeout 20;
[root@KTQT ~]# kill -hup `cat /usr/local/nginx/nginx.pid`

test:
[root@KTQT ~]# date ; netstat -an |grep :80
 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 
[root@KTQT ~]# date ; netstat -an |grep :80
 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 
[root@KTQT ~]# date ; netstat -an |grep :80
 Thu Apr  4 18:51:29 CST 2013
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN 
正好是20S。
Keepalive_timewate:是啥?
转载:http://www.perfgeeks.com/?p=673
http keepalive
在http早期 ,每个http请求都要求打开一个tpc socket连接,并且使用一次之后就断开这个tcp连接。使用keep-alive可以改善这种状态,即在一次TCP连接中可以持续发送多份数据而不会断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少TIME_WAIT状态连接,以此提高性能和提高httpd服务器的吞吐率(更少的tcp连接意味着更少的系统内核调用,socket的accept()和close()调用)。但是,keep-alive并不是免费的午餐,长时间的tcp连接容易导致系统资源无效占用。配置不当的keep-alive,有时比重复利用连接带来的损失还更大。所以,正确地设置keep-alive timeout时间非常重要。
keepalvie timeout
Httpd守护进程,一般都提供了keep-alive 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个用户同时访问,即
64511-(1000*1)-(1000*20)=43511 下一秒再来1000用户即22511再下一秒1511,那下一秒怎么办?即可以处理3秒就完蛋了。或许17秒后可以重新获得20000的连接,可再多支撑一秒。而且此计算是非常理论的值,上面可以看到一个连接到关闭是要15-20秒左右,之后才是keepalive_timeout时间。
结论:那么设多少?我也不知道,一个结点,超出这个结点性能反而下降,没到这个结点那么会省很多资源消耗。一个良好的算法是,大多数用户重复点击的次数。一般不大可能是60,当然存在那些内容站,看完内容再看下一个内容。但消耗一个比建立链接时间相比较。首页即网站加载时间+可等待时间。

 下面两张图,TCP状态,很多人不了解,第一张取自LVS配置说明里的,因为是打印后用笔写过所以不是原版的。,大家将就着看。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_826640.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google的网站统计、分析系统

http://www.google.com/analytics/功能全,比较酷!转载于:https://www.cnblogs.com/huobazi/archive/2005/11/16/277830.html

SharePoint Server 2013 Step By Step之管理网站导航

管理网站导航SharePoint网站导航包括两个区域的导航选项,快速启动和导航栏。默认情况下,快速启动位于网站内容的左侧,通常用于列出当前站点:如列表、类别,库,子网站等等。而导航栏,默认情况下&a…

ZT 如何使XP自动启动IIS默认网站

如何使XP自动启动IIS默认网站 [转贴 2007-08-27 21:33:24 ] 发表者: yl_wen 在服务里,把下面两个服务设置为自动即可: 1. IIS Admin 2. World Wide Web Publishing分类: 系统维护 转载于:https://www.cnblogs.com/Jasper-Wang/article…

如何通过添加链接让子网站显示在主页

进入“网站目录”网站,点击“创建网站”,添加一个子网站 在新建网站页面,输入网站的标题和URL,这里输入“test” 下面的权限、导航保持默认。网站类别也不做任何选择。 网站创建成功后,我们只能在网站地图里面看到相关…

以网站群的模式实现信息资源落地

2019独角兽企业重金招聘Python工程师标准>>> 一.为何以网站群模式实现信息资源落地: 聚合企业各种网络资源,实现互联互通和协同共享,提高企业资源配置效率和管理水平的能力。 1.技术资源融合 按照主流的技术路线,统一规…

百度seo指南_百度小程序实践项目-seo指南(一)

第一章、智能小程序建设如何对搜索友好一、页面结构要求1、页面结构清晰、各模块划分清晰。2、分类划分明确,设置醒目,分类主题的文章对应发布到相应分类下。3、Web化url结构清晰,易提炼成正则规则,如果有对应H5网站,建…

简易的旅游网页制作_网站制作——css标记语言

对于网页设计而言,html语言就像是画板,让你尽情施展操作;css就像是一支画笔,可以勾勒出优美的画面,它可以根据设计者的要求对网页的布局、颜色、字体、背景和其他图文效果进行控制,可以说css是网页设计必不…

使用微软的 Visual Studio International Pack 1.0 进行网站简体与繁体的互转和得到汉字、拼音、笔画等相关信息...

本帖转自http://blog.csdn.net/net_lover/archive/2009/04/20/4095606.aspx 只为自己查看方便,希望孟老师勿怪. 2009年3月31日,微软发布了 Microsoft Visual Studio International Pack 1.0 SR1。Visual Studio International Pack 包含一组类库,该类库…

JavaScript获取网站域名

代码 <script language"javascript">//获取域名host window.location.host;host2document.domain; //获取页面完整地址url window.location.href;document.write("<br>host"host)document.write("<br>host2"host2)document.wr…

100个优秀的国外设计开发网站

100个优秀的国外设计开发网站&#xff0c;涵盖了Web设计&#xff0c;平面设计&#xff0c;Flash和Flex&#xff0c;设计资源等网站推荐。 常用设计网站 Spunk United 非常出色的杂志&#xff0c;里面提供的都是世界顶级设计师的专访&#xff0c;灵感以及文章还有更多。FreeLanc…

修改 设置 vs.net 网站 调试 设为 起始页

很简单&#xff0c;右键网站项目&#xff0c;打开【属性&#xff08;R&#xff09;】&#xff0c;找到【web】选项卡&#xff0c;然后会看到右边有一个【启动操作】&#xff0c;设置为当前页即可。 见百度问题: http://zhidao.baidu.com/question/195134372.html?an0&si1 …

前端开发中的SEO

什么是SEO SEO由英文Search Engine Optimization缩写而来&#xff0c; 中文意译为“搜索引擎优化”。SEO是指从自然搜索结果获得网站流量的技术和过程&#xff0c;是在了解搜索引擎自然排名机制的基础上&#xff0c; 对网站进行内部及外部的调整优化&#xff0c; 改进网站在搜索…

python最新官网图片_python获取网站图片

# zhouxianglh 2013.05.03 python3.3import urllib.requestfrom html.parser import HTMLParserimport reimport osimport shutilimport timeurl "http://www.douban.com/"filePath "D:\\temp"# 读也HTMLurlContent urllib.request.urlopen(url);data …

java 多线程攻击网站_java之多线程

多线程即在同一时间&#xff0c;可以做多件事情。创建多线程有3种方式&#xff0c;分别是继承线程类,实现Runnable接口,匿名类线程概念首先要理解进程(Processor)和线程(Thread)的区别进程&#xff1a;启动一个LOL.exe就叫一个进程。 接着又启动一个DOTA.exe&#xff0c;这叫两…

高流量网站如何做出高性能?

2019独角兽企业重金招聘Python工程师标准>>> 前一段时间接触了一个教育集团的老总&#xff0c;集团本身是在教育实体化阶段也就是各种教科书盛行的时候起来的&#xff0c;最近 10 年互联网教育越来越火&#xff0c;老板也瞅准商机跳了进来。 可是公司的在线教育板块…

爱车巴巴网站采用beetl

为什么80%的码农都做不了架构师&#xff1f;>>> www.2788.com 供二手车交易服务 转载于:https://my.oschina.net/xiandafu/blog/617527

在 Windows Azure 网站上使用 Django、Python 和 MySQL:创建博客应用程序

编辑人员注释&#xff1a;本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 撰写。 根据您编写的应用程序&#xff0c;Windows Azure 网站上的基本Python 堆栈可能完全满足您的需求&#xff0c;也可能不包括您的应用程序所需的所有模块或库。 不用担心&#xf…

数据量大的sql怎么做优化_网站SEO优化推广怎么做?

网站优化seo怎么做?网站优化是为了进步搜索引擎排名&#xff0c;因此网站优化奉行短长常紧张的一件事&#xff0c;需求我们(水点石穿的坚持去做&#xff0c;那么网站优化奉行seo该当怎么做呢?底下小编来报告你网站优化seo怎么做。1、关节词定位这是举行搜索引擎优化优化非常紧…

python自动填写网页数据并提交_python实现问卷星网站的自动填写

因为有一个课程要求进行调查数据的统计&#xff0c;而且小组里选用的是问卷星为平台&#xff0c;问题的形式比较单一&#xff0c;都为单选或多选&#xff0c;于是想到了用python实现一个脚本来代替小组里大家的手动填写。。 大体上使用的就是pythonSeleniumPILTesseract Seleni…

type=radio增加onclick没有效果_博客外链做seo到底还有效果吗

近日有部分站长针对博客留言外链是否有用发起了讨论&#xff0c;就博客外链是否可以给自己网站带来&#xff0c;传递权重&#xff0c;增加曝光&#xff0c;增加流量等问题站长们都发表了自己经验范围内的各种看法!大体分为两部分&#xff1a;一部分认为博客留言外链无法传递权重…