网站相关技术探究keepalive_timeout:

news/2024/5/20 13:00:36/文章来源:https://blog.csdn.net/weixin_33883178/article/details/85067847

 网站相关技术探究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_783023.aspx

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

相关文章

美食网站主页java代码,基于jsp的美食网-JavaEE实现美食网 - java项目源码

基于jspservletpojomysql实现一个javaee/javaweb的美食网, 该项目可用各类java课程设计大作业中, 美食网的系统架构分为前后台两部分, 最终实现在线上进行美食网各项功能,实现了诸如用户管理, 登录注册, 权限管理等功能, 并实现对各类美食网相关的实体进行管理。该美食网为一个…

新网打开php显示404,网站404页面是什么

网站404页面是什么?出现网页404页面的原因有很多,所以问题反馈时会显示很多不同的问题编码,大家知道网站404页面吗?404页面是客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应,且不知道原因…

JavaScript网站设计实践(六)编写live.html页面 改进表格显示

一、编写live.html页面,1、JavaScript实现表格的隔行换色,并且当鼠标移过时当前行高亮显示;2、是输出表格中的abbr标签的内容 实现后的效果图是这样的: 1、实现思路 在输出表格的时候,给出一个判断,如果偶数…

企业网站服务器的配置研究背景,ftp服务器研究背景

ftp服务器研究背景 内容精选换一换当服务器配套有X722板载网卡时,需要参考此章节安装服务器板载网卡驱动。本文以CentOS 7.3为例介绍如何安装服务器板载网卡驱动,其他操作系统的安装方法类似。将准备工作中获取的“NIC-X710_XL710_X722-CentOS7.3-i40e-2…

mysql linux搭建网站_linux下网站搭建

我们知道windows网站搭建一般是:IISAspSqlserver,而 linux网站搭建是:ApachephpMysql。两者之间个有千秋,但是为什么我们许多的门户网站搭建都选择linux— apachephpmysql呢?当然是其的安全性了,Apache 是世…

嵌入式linux 教程,基础知识 - 嵌入式Linux教程_Linux教程_Linux公社-Linux系统门户网站...

一、交叉开发模式1、运行嵌入式Linux开发时分3个步骤:(i)在主机上编译Bootloader,通过烧写工具烧入开发板(ii)在主机上编译嵌入式Linux内核,通过串口连接写入单板(iii)在主机上编译各种应用程序,通过网络连接写入单板2、主机与目标…

关于Django的网站/博客

2019独角兽企业重金招聘Python工程师标准>>> 豆瓣小组:Django 海报网 可能是国内最大的 Django 应用网站 果壳网 科技-新知-智趣,很新税的科技主题网站,用 Django 做的 福窝网 家庭装修指南网站,使用 Django 构建 新…

LAHT(linux+apache+heartbeat+tomcat+mon)高可用网站集群

集群,负载均衡,双机热备,服务监控搭建全过程 服务器环境:Centos 5.6 (网站前端服务器) Suse linux 11 server (Mysql服务器) WEB1:eth0:202.106.0.2(外网&am…

闪迪(SanDisk)U盘防伪查询(官方网站)

2019独角兽企业重金招聘Python工程师标准>>> SanDisk 防伪查询: http://verify.sandisk.cn/search.aspx(官网)http://sandisk.akl.com.cn/search.aspx(合作商网站,指向的网页同官网)备注&#x…

网站优化之分辨率

http://screensiz.es/tablet 查看手机,平板,电脑各个尺寸。 StatCounter原统计数据查看当今浏览器以及pc屏幕分辨率占比,可作为适配尺寸时的参考。 苹果的各种尺寸:http://tool.lanrentuku.com/guifan/ui.html 安卓的各种尺寸&am…

【数据可视化之Flask】快速设计和部署Flask网站

Flask是Python应用于WEB开发的第三方开源框架,以设计简单高效著称。我也尝试过Django,相对于Flask显得更加全面同样也更加笨重,并且我也不需要它的后台管理功能,因此选择了Flask作为我的首选开发框架。 首先,先介绍结果…

抓取某一个网站整站的记录

经常由于某些原因我们需要爬取某一个网站或者直接复制某一个站点,到网上找了很多工具进行测试,试了很多各有各的问题,最终选择了Teleport Ultra,用起来效果很好;具体的操作手册等东西就不在这里说了,网上搜…

网站通过id简单分页

为什么80%的码农都做不了架构师?>>> 1.通过ID分页,要求id是顺序并且连续的: page 0 class MainHandler(tornado.web.RequestHandler):def get(self):global pagepage_preself.get_argument("msg_pre",0)pagepageint(p…

万无一失,网站的高可用架构

网站不稳的因素 DNS会被劫持, CDN服务会挂掉, 网站服务可能会宕机, 网络交换机会失效, 硬盘会损坏, 网卡会松掉, 机房会停电, 空调会失灵, 程序会有Bug, 黑客会攻击&…

海纳企业网站管理系统HituxCms2.1代码审计GETSHELL+注入

〇.前言 本文为笃行日常工作记录,这篇审计文章,也是在2014年国庆期间写的,比较简单。意在展现一个完整的开源CMS代码手工审计的过程,从未发表过,三年过去了,回过头看还是优点意义的,故这次发出来…

L - Working Plan (贪心) 2018-2019 ACM-ICPC, Asia Seoul Regional Contest

题目大意: 给m个人,和n天,然后再给一个人连续工作的天数w,和他工作w天之后要休息h天才能再次开始w天的工作。 给出m个人一共要工作的天数,和n天每天的工作天数,求是否有可行解。 说白了,就是给一…

查看一个网站后台是用的什么服务器

为什么80%的码农都做不了架构师?>>> 本文出自 “腾飞工作室” 博客,请务必保留此出处 http://www.cnblogs.com/tfgzs/p/5763623.html 转载于:https://my.oschina.net/u/1427693/blog/734442

IT运维常用工具网站收录

一、查询终端互联网出口IP地址:1、window可以通过浏览器访问网站:http://www.cip.cc/http://myip.ipip.net/http://ip138.com2、Linux可以通过命令查询#curl myip.ipip.net#curl cip.cc 二、知名端口查询http://www.imfirewall.com/ip-mac-lookup/ 通过网…

深圳网站优化:网站上线前要做哪些准备?

随着搜索引擎的普及,越来越多的人通过搜索引擎进行学习,学习网站搭建也已经不算什么难事,但是有很多朋友网站还没完善好就匆匆将网站上线,导致搜索引擎对网站的评分大大降低,甚至因为网站上线后经常改动,导…

Web 性能优化: 图片优化让网站大小减少 62%

这是 Web 性能优化的第二篇,上一篇在下面看点击查看: Web 性能优化: 使用 Webpack 分离数据的正确方法图像是web上提供的最基本的内容类型之一。他们说一张图片胜过千言万语。但是如果你不小心的话,图片大小有时高达几十兆。 因此…