gpt4 book ai didi

php - php-fpm容器livenessProbe与/ping路由

转载 作者:行者123 更新时间:2023-12-02 11:28:54 28 4
gpt4 key购买 nike

最近,我们的php-fpm进程失去控制并导致站点变得无响应,从而遇到了一些问题。有一些明显的php-fpm配置工具需要完成,但是我还想对php-fpm容器实现合理的livenessProbe健康检查,当探测失败时,它将重新启动容器。

我已经挖掘了一些有关如何对服务器执行ping操作以进行运行状况检查的资源(例如https://easyengine.io/tutorials/php/fpm-status-page/),但是对于要寻找的内容,我还没有找到好的答案。如果服务器实际上已死机,/ping路由是否会返回“pong”以外的内容?会超时吗?假设是后者,合理的超时限制是多少?

运行我自己的一些测试,我注意到健康的php-fpm服务器将迅速返回“pong”响应:

# time curl localhost/ping
pong
real 0m0.040s
user 0m0.006s
sys 0m0.001s

我模拟了很重的负载,确实“pong”响应花了1-3秒,而这恰恰是该站点变得无响应的时候。基于此,我草拟了一个livenessProbe的草案,如果该 Activity 探针脚本在两个连续的探针上花费的时间超过2秒,它将失败并重启容器:
livenessProbe:
exec:
command:
- sh
- -c
- timeout 2 /var/www/livenessprobe.sh
initialDelaySeconds: 15
periodSeconds: 3
successThreshold: 1
failureThreshold: 2

探测脚本就是这样(有一些原因使得它需要是一个shell脚本,而不是我不会进入的来自livenessProbe的直接httpGet):
  #!/bin/bash

curl -s localhost/ping

现在我不知道我是太激进还是太保守。我将运行一个canary部署来测试这一点,但与此同时,我想从其他人那里得到一些反馈,这些反馈已经在php-fpm服务器上实现了运行状况检查,如果是在Kubernetes上下文中,则可以获得加分。

最佳答案

如果仍然有人对此主题感兴趣。我正在研究某种相同的东西(结合kubernetes中运行的pod进行php-fpm监视)。

我将以下运行状况检查设置https://github.com/renatomefi/php-fpm-healthcheck添加到我的容器(运行php-fpm的容器)中,以检查php-fpm是否运行得很好:)工作非常简单,并完成了工作(将容器标记为“坏”时)一些值超出了您的预定义限制)

关于php - php-fpm容器livenessProbe与/ping路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47911494/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com