我在专用服务器上的Httpd有严重的性能问题。在流量高峰时,httpd stucks在512连接上,并且没有任何原因,所有连接都是缓慢的,并且正在下载的文件随消息删除:(顺便说一句。它的高流量服务器)
读取响应标头时
此外,所有参数的工作人员连接都达到了最大值。
见下文:

我还尝试重新启动服务器,并使用tcp优化和db将配置更改为max,但它没有解决任何问题。
查询日志不提供任何额外信息。你能告诉我如何修复或优化它吗?
这种节流只从交通高峰开始。数据库运行在mariadb上,下面是httpd的配置:
<IfModule prefork.c>
StartServers 3
MinSpareServers 20
MaxSpareServers 40
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 500
</IfModule>我还注意到,很多httpd进程都是创建的。
我在1000上有max_connections,对于表我使用缓存memcache,my.cf上也有配置:
发布于 2021-04-24 03:16:26
我不敢苟同。高max_connections会导致问题。以下是总体情况:
当有几十个数据库连接正在积极地尝试执行SELECTs等时,它们会争夺各种资源--互斥、cpu、I/O和数据库服务器中的各种“共享”东西。
在这一点上,mysqld试图做到公平,给每个连接一份资源。这导致每一个人花费越来越长的时间,因为它被一个接一个的东西等着。
最好是节流客户端中的连接。这样,“正在运行”的连接就能运行得更快,从而减少阻塞,避免阻塞。
当堵塞开始时,它会停留一段时间。“每秒查询”的数量停止增长。但是,“延迟”(完成任务所需的时间)贯穿了整个过程。这种阻塞会备份到客户端(httpd)。
连接池对限制争夺资源的连接数量没有任何作用。
Memcached是缓存前面的缓存;它可能是也可能不是在聚合这种情况。如果它与其他部件位于同一台服务器上,那么它很可能会受到伤害-- Memcached需要ram和CPU,从而占用mysqld中的一些资源。
尝试max_connections = 200,并将httpd的子级数量限制在该数目之内。
https://dba.stackexchange.com/questions/290370
复制相似问题