【问题标题】:Find the cause of constant downtimes and high RAM and SWAP usage找出导致持续停机以及 RAM 和 SWAP 使用率高的原因
【发布时间】:2022-01-02 10:05:36
【问题描述】:

我有一个运行 Plesk 并通过“由 nginx 提供的 PHP-FPM”服务网站的网络服务器。我注意到每天都有几次停机时间,对于某些域,但不是所有域。每天出现的域名都是随机的,它们每天都不一样。在网站“宕机”时,我注意到 RAM 和 SWAP 使用率很高,主要来自 mysqld 和 php-fpm 进程。我在下面附上截图。

到目前为止我所尝试的:

  • 进程及其 RAM 使用情况

    ps -o pid,user,%mem,命令 ax |排序 -b -k3 -r

  • 通过 IP 进行并发连接以揭示可能的基于 http 的 ddos​​ 攻击

    netstat -anp |grep 'tcp|udp' | awk '{打印 $5}' |切-d:-f1 |排序 |唯一的-c |排序

  • 实时查看所有域上的 GET 和 POST 请求以发现任何可疑情况

    tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420 或 tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504F5354'

  • mysqltuner.pl 的建议

  • 更改了FPM设置,玩了一个多星期,由于没有效果,最终将它们恢复为默认值

似乎没有任何东西可以揭示问题的原因。此外,重新启动任何服务(fpm 服务或 mysqld)并不能解决问题。

【问题讨论】:

    标签: php mysql nginx centos plesk


    【解决方案1】:

    PHP 能够告诉您当前执行使用的内存使用情况,因此您可以添加调试 error_log 调用并将 memory_get_usage() 添加到您传递到日志的输出中,然后您可以缩小范围内存使用量的巨大飞跃是由此而来。在代码中,然后您必须弄清楚该代码在做什么。

    但是跳出编码来找出造成这种情况的原因,这就是为什么大型生产系统不应该在单个服务器上拥有 DB 和 PHP。因为两者都运行意味着您将为进入数据库的内容复制内存。 PHP 中的内存供应用程序构建查询字符串,然后 MySQL 服务器重新接收它进行处理,2 个单独的服务器防止重复使用内存。

    【讨论】:

    • 有没有办法从所有域中进行这种日志记录?关于同一服务器上的 db 和 php,是的,但是即使在任何域上都没有单个客户端,问题也会随机出现。我只是想不出还有什么要检查的。请提出任何建议......
    • 嗯,你有每个网站的池和作为网站用户执行的 php,所以只需观看 btop 并在你显示 molfs.gr 的图像中查看哪些网站正在使用大量内存正在处理大量请求,每个请求都使用超过 125MB 的内存,所以我会说这非常高
    • 只是为了添加上下文,服务器中有 64GB 的 RAM,每个请求 125 MB 所以 (64 * 1024) / 125 = 524,所以这是服务器可以使用脚本处理的并发请求总数使用那么多内存
    • 谢谢,我可以限制每个请求消耗的 RAM 数量吗?
    • 对不起,我错过了,是的,您可以设置您的 php.ini 以在该文件中拥有最大内存 memory_limit 属性,并禁用功能 memory_limit
    【解决方案2】:

    您的 Wordpress 网站已成为机器人的目标,这些机器人会定期尝试一次一个字母地破解该网站的密码,并随机切换其目标网站以避免被检测到。这对于 wordpress 网站来说很常见,尤其是那些有支付网关并且没有重命名或保护 wp-login.php 文件的网站。有许多不同的插件可以保护您的 wp-login 页面免受这些类型的攻击。如果原因是其他原因,我会感到非常惊讶。

    僵尸程序还运行在具有所有不同 IP 的僵尸网络上,因此它们将能够避免被检测到。尝试解析 nginx 日志文件中常见的攻击媒介“wp-login.php”或“wp-admin”或“admin-ajax”。

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 2014-03-02
      • 2023-02-08
      • 2017-01-29
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多