服务端上查看tcp连接的建立情况,直接使用李易峰的歌netstat命令来统计,看到了很多的time_wait状态的连接.这些状态是tcp连接中主动关闭的一方会出现的状态.该服务器是nginx的webrver监听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’
本文发布于:2023-04-07 20:01:08,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/8b98c86296f8a71ca9e62c94b6f01e70.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:[PHP] time.doc
本文 PDF 下载地址:[PHP] time.pdf
留言与评论(共有 0 条评论) |