当php-fpm进程处于活动状态时,处于睡眠状态的Mysql连接数很高

时间:2021-04-24 23:06:29

标签: php mysql

请在下面找到问题描述。

  • Drupal 版本:8.8.6
  • Apache 版本:Apache/2.4.46
  • PHP 7.2.34
  • MySQL 数据库(AWS RDS 8.0.20,启用多可用区和备份)
  • 2 个 Drupal 节点配置为使用 AWS EFS 使用相同的 Drupal 文件系统

我们在 AWS Linux2 AMI 上有 Drupal 站点。该站点使用 Apache/php/MySQL 堆栈。在正常加载期间,观察到有许多处于活动状态的 php-fpm 进程和处于睡眠状态的类似数据库连接数。 php-fpm 活动进程将增加到最大 50 (max_children),然后不会改变。

只有重启 php-fpm 服务才会重置。 db 端没有任何锁定的迹象,我们无法确定为什么所有这些 php-fpm 进程都处于活动状态。一旦 php-fpm 活动计数超过 20/30,apache 就无法处理任何请求并开始拒绝服务。

    php-fpm.conf
    emergency_restart_threshold = 0
    emergency_restart_interval = 0
    process_control_timeout = 0

    php-fpm pools config (www.conf)
    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    pm.process_idle_timeout = 10s;
    pm.max_requests = 0

[root@ip-xx-xx-xx-xx bin]# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-04-20 16:59:08 JST; 29min ago
 Main PID: 3135 (php-fpm)
   Status: "Processes active: 50, idle: 0, Requests: 96, slow: 0, Traffic: 0req/sec"
   CGroup: /system.slice/php-fpm.service
           ├─3135 php-fpm: master process (/etc/php-fpm.conf)
           *├─3139 php-fpm: pool www
           ├─3140 php-fpm: pool www
           ├─3141 php-fpm: pool www
           ├─3142 php-fpm: pool www
           ├─3143 php-fpm: pool www*

在 MySQL 端只允许连接数(来自 2 个 drupal 节点,一次最多可以有 100 个连接,而 db 可以支持大约 600 个连接)。那么如何确定为什么所有这些 phh-fpm 进程都处于活动状态以及为什么睡眠连接被关闭。

0 个答案:

没有答案