服务端上查看tcp连接的建立情况,直接使用netstat命令来统计,看到了很多的time_wait状态的连接.这些状态是tcp连接中主动关闭的一方会出现的状态.该服务器是nginx的webserver监听80端口,搭配的php-fpm监听9000端口,连接其他服务器数据库3960端口,连接其他服务器的memcache 50028端口.

先查看本机监听80端口的time_wait状态,可以看到不同客户端的ip端口,来连接我的服务端,并且是我服务端主动关闭连接,因此可以看到time_wait,这些对我们服务器没有影响.因为这是http的短连接,肯定是会请求过来就创建一个连接,请求结束就关闭连接.

网上很多说这些如果太多会占用服务器的端口,根本就是不对的,因为这些是占用的是客户端的端口,服务端只是一个80端口,怎么会占用服务器的端口呢.
netstat -altupn|grep ":80"

当然如果前面有负载均衡的话,客户端IP是固定的几个,可以把前面的负载均衡机器当成是客户端.

当然如果我们是通过nginx的反代,反代到fpm的9000端口 , 这个时候是我们本机随机开启端口,连接本机的9000端口 ,这个时候是会占用本机端口数的

还有就是真正占用服务器端口的是,当需要连接数据库时,比如我需要连接数据库的3960端口,这个时候我的服务器会随机占用本机的端口,连接远程的3960端口.因为php连接数据库是使用的短连接,每次请求都会在创建连接,并且是我服务端主动关闭的连接,所以会有大量time_wait状态,这里会占用本机的端口数,连接mc的50028端口也是会出现同样的情况.
netstat -altupn|grep ":3960"

那么如果php使用长连接连接数据库呢?这个时候就是每一个fpm子进程创建一个连接,有多少个子进程就会有多少连接,并且连接是不会断掉的.当然如果子进程的数量特别多,会占用mysql的连接数,所以这里我们的项目里也是使用的短连接.
show variables like 'max_connections'

[PHP] time_wait与长连接短连接的更多相关文章

  1. nginx 代理tcp长连接短连接配置

    https://blog.csdn.net/tayinyinyueyue/article/details/78932697 nginx使用ngx_stream_core_module模块代理tcp长连 ...

  2. 长连接 短连接 RST报文

    https://baike.baidu.com/item/短连接 短连接(short connnection)是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时,才去建立一个连接,数 ...

  3. HTTP长连接短连接

    一.什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包.不四次握手),等待 ...

  4. MySQL 线程池&连接池&长连接&短连接

    线程池 简介 1.mysql每连接每线程,mysql都分配一个单独的线程,该线程处理客户端发来的所有命令 2.每个线程会占用一定的系统资源,线程数越多消耗的系统资源也越多 3.线程的创建和销毁有一定的 ...

  5. java socket 长连接 短连接

    长连接 是一旦一个客户端登陆上服务器,其与服务器之间的连接就不关闭,不管他们之间进行了多少次交易,直到客户端退出登陆或网络出现故障.这种技术在联机交易系统实现有利于提高效率. 短连接是客户端每发一个请 ...

  6. Socket 长连接 短连接 心跳 JAVA SOCKET编程

    简单解释就是: 短连接:建立连接,发送数据包.关闭连接 长连接:建立连接.发送数据包,发送心跳包,发送数据包,发送心跳包.发送心跳包. ..... 所以又频繁的数据收发的话.短连接会频繁创建TCP连接 ...

  7. [Golang] 从零開始写Socket Server(3): 对长、短连接的处理策略(模拟心跳)

    通过前两章,我们成功是写出了一套凑合能用的Server和Client,并在二者之间实现了通过协议交流.这么一来,一个简易的socket通讯框架已经初具雏形了,那么我们接下来做的.就是想办法让这个框架更 ...

  8. tcp & 长连接 短连接

    参考文档: tcp协议 http://blog.chinaunix.net/uid-26833883-id-3627644.html 长连接和短连接 http://blog.csdn.net/free ...

  9. http 长连接 & 短连接

    1.意义 同一个TCP连接来发送和接收多个HTTP请求/应答,而不是为每一个新的请求/应答打开新的连接的方法. 2.优 较少的CPU和内存的使用 允许请求和应答的HTTP pipelining 降低网 ...

随机推荐

  1. 【一】Gradle 初识

    1.Gradle和Maven的对比 gradle 使用groovy语言,可以进行逻辑判断,maven基于xml,无法进行逻辑判断. gradle 可以在一个项目中,根据需求,生成2个不同的jar, m ...

  2. python接口自动化根据请求接口类型进行封装

    根据不同的请求类型(GET/POST)进行接口请求封装 import requests import json class RunMain: def __init__(self, url, metho ...

  3. 点击element-ui表格中的图标,上方显示具体的文字描述

    <template> <el-table :data="tableData" style="width: 100%"> <el-t ...

  4. LG3825/BZOJ4945/LOJ2305 「NOI2017」游戏 dfs+2-SAT

    问题描述 LG3825 BZOJ4945 LOJ2305 题解 发现对于每个地图,如果没有\(A,B,C\)地图不可以使用\(a,b,c\),就是一个\(\mathrm{3-SAT}\)问题. 有了这 ...

  5. luoguP3246 [HNOI2016]序列

    题意 这题很难想到用莫队去做,因为第一印象是这个没办法O(1)移动指针. 考虑从\([l,r]\)移动到\([l,r+1]\) (从\([l,r]\)移动到\([l-1,r]\)同理). 我们用ST表 ...

  6. nowcoder3274D binary

    题目链接 problem 给定一个01串s,定义rev(x)表示逐位翻转(0变1,1变0)x后并删去前导零后所得到的串.好的串定义如下: s是好的串 如果x是好的串,则rev(x)也是好的串 如果a, ...

  7. Spring Cloud Zuul 那些你不知道的功能点

    本文摘自于 <Spring Cloud微服务 入门 实战与进阶> 一书. 1. /routes 端点 当@EnableZuulProxy与Spring Boot Actuator配合使用时 ...

  8. Rails + Webpacker + Puma + Nginx 部署

    准备 ssh 登录 首先 ssh 登录服务器,免密码登录可以参考 ssh 免密码登录服务器 创建部署用户 $ sudo adduser deploy 安装依赖 Ruby 这里使用 RVM 安装和管理 ...

  9. Jupyter notebook 使用

    1. 安装代码自动补全 需安装 nbextensions 插件,网站:https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/ins ...

  10. 利用OD破解一个简单的C语言程序

    最近在学习汇编(看的是王爽老师的<汇编语言(第三版)>),然后想尝试使用OD(Ollydbg)软件破解一个简单的C语言程序练练手. 环境: C语言编译环境:VC++6.0 系统:在Wind ...