首页 » SEO优化 » php断开技巧_php做事器 与redis交互大年夜量CLOSE_WAIT分析

php断开技巧_php做事器 与redis交互大年夜量CLOSE_WAIT分析

访客 2024-11-01 0

扫一扫用手机浏览

文章目录 [+]

大量close_wait状态

1.CLOSE_WAIT事理

在断开tcp连接时,会有一个4次挥手的过程。
主动断开的一方会发起一个FIN包,吸收方收到后会返回一个ACK包奉告发起方我知道你要断开了,此时吸收方状态变更为CLOSE_WAIT并处理扫尾事情。
正常的情形下,吸收方在处理完扫尾事情后,会给发起断开的一方发送一个FIN包,然后在收到断开拓起方返回的ACK包往后,全体4次挥手的过程也就结束了。
但是不正常的情形下,吸收方不发送FIN包,导致其状态一贯是CLOSE_WAIT状态,如果每一个连接都这样,就会占用大量的系统资源,导致无法对外供应做事。

php断开技巧_php做事器 与redis交互大年夜量CLOSE_WAIT分析

4次挥手

php断开技巧_php做事器 与redis交互大年夜量CLOSE_WAIT分析
(图片来自网络侵删)
2.访问量这么小的php做事器,与redis 交互为什么会涌现CLOSE_WAIT状态php与redis交互剖析

在php中,并没有redis连接池的观点,所以为了避免不断地连接、断开与redis的连接,我们在php中一样平常采取长连接的形式与redis进行交互。

这种形式创建的连接的生命周期和php-fpm进程的生命周期是同等的,以是每次有新的要求过来,都会复用php-fpm最初创建的redis连接,这样就节省了不断的连接、断开连接redis产生的网络开销。

php-fpm的生命周期

php-fpm 有一个配置pm.max_requests表示,php-fpm进程经由pm.max_requests个要求后会销毁并生新天生一个子进程。
这也就代表着1个fpm了进程须要经历max_requests个要求后才会销毁

pm.max_requests = 50240定位到问题

从php与redis的交互剖析,可以得出:一个reids长连接的生命周期和php-fpm子进程是同等的。
而php-fpm的生命周期为经历pm.max_requests 个要求,而我们做事器的配置为50240。
同时,涌现问题的做事器访问量特殊小(1000次/天),也便是说一个php-fpm的生命周期至少为50天(50240/1000=50,该当更多的,由于不止一个进程),那么redis连接的生命周期也至少为50天。
在这50天中,redis会给php做事器发起断开要求,php做事器会返回一个ACK,然后变更状态为CLOSE_WAIT,但是php做事器不会再发送一个FIN包给redis,由于它的生命周期没有结束。
以是终极会产生大量的CLOSE_WAIT。

3.为什么访问量大反而不会涌现CLOSE_WAIT

访问量大,意味着php-fpm进程的max_requests很随意马虎触达,php-fpm的生命周期会很短,还达不到redis做事器的超时断开的触发机遇。

4.办理方案

改用短连接~

标签:

相关文章

双素数的世界,探寻数学之美与奥秘

自古以来,数学便是一门充满神秘色彩的学科。在我国,数学家们对数学的研究从未停止,其中双素数就是他们研究的一个焦点。本文将带您走进双...

SEO优化 2024-12-27 阅读0 评论0

日本IT专业发展现状与未来展望

近年来,随着信息技术的飞速发展,IT专业人才需求日益旺盛。日本作为全球科技大国,其IT产业的发展尤为引人注目。本文将从日本IT专业...

SEO优化 2024-12-27 阅读0 评论0

历史长河中的经典语言,传承与创新的力量

语言是文化的载体,是历史的见证。在漫长的历史长河中,无数经典语言如同璀璨的星辰,照亮了人类文明的进程。这些语言不仅承载着丰富的文化...

SEO优化 2024-12-27 阅读0 评论0

日本IT行业,中美竞争下的崛起与挑战

近年来,随着全球科技产业的快速发展,我国与日本在IT领域的竞争愈发激烈。特别是在中美贸易战背景下,日本IT产业面临着前所未有的机遇...

SEO优化 2024-12-27 阅读0 评论0