disableClientPersistence => true for mongodb 驱动程序在连接字符串中使用高 CPU。如何解决 cpu 使用率问题?

disableClientPersistence => true for mongodb driver in connection string uses a high CPU. How to fix cpu utilization?

提问人:Shahid Rafiq 提问时间:11/15/2023 最后编辑:Shahid Rafiq 更新时间:11/15/2023 访问量:21

问:

以下是我在 lumen api 中使用 jensenger/mongodb 的连接字符串。

 $config::set("database.connections.mongodb", [                                  
            'driver' => 'mongodb',
            'host' => [env('MONGODB_CLUSTER_SERVER01'), 
                        env('MONGODB_CLUSTER_SERVER02'), 
                     env('MONGODB_CLUSTER_SERVER03')],
            'database' => $this->dbname,
            'username' => env('MONGODB_CLUSTER_USERNAME'),
        'driver_options' => ["disableClientPersistence" => true],
            'password' => env('MONGODB_CLUSTER_PW'),
            'options' => [
                'database' =>  $this->dbname,
                'r' => 'majority',
                'replicaSet' => 'sdfs',
                'readPreference' => 'secondaryPreferred',
                'authSource' => env('DB_AUTHENTICATION_DATABASE', 'admin'),
            ]
        ]);

我的旧问题解释说,我开始在连接字符串中使用 disableClientPersistence 标志,并且 cpu 利用率达到 100%,而没有此标志,CPU 利用率在 15-20% 之间。我正在使用 cx5 大型实例。

是否有人可以指导我是否有任何方法可以解决这些过高的 CPU 使用率?

笔记

  1. 我的服务器总是在8k-60k的流量下
  2. 我正在使用带有 php-fpm 的 apache。
  3. 当前的 php-fpm 调整是
pm.max_children = 50  
pm.process_idle_timeout = 10s 
pm.min_spare_servers = 5 
pm.max_spare_servers = 10  
pm.start_servers = 5
php mongodb apache cpu-usage aws-application-load-balancer

评论

0赞 Hassaan 11/15/2023
您每月或每天都有流量吗?8k-60k
0赞 Shahid Rafiq 11/15/2023
持续。服务器至少有 8500 个或更高的请求,任何时候都高达 60k 个请求。服务器持续处于负载状态。@Hassaan
0赞 Hassaan 11/15/2023
你能分享服务器规格吗?
0赞 Shahid Rafiq 11/15/2023
CX5 大型实例。

答: 暂无答案