这样的问题!该站点在 VDS 上运行:Centos 7 (by BitrixVM) + php 7.1 + apache 2.4 (prefork) + nginx。已经有 2 周的网站短期冻结(很可能是 apache2)(不取决于一天中的时间和一周中的一天),同时:
有足够多的 RAM(几乎总是有 200-300 MB 空闲),交换空间几乎全部空闲,处理器在冻结时大部分空闲(负载不超过 7%),磁盘未加载。
apache、nginx、mysql 日志都是空的,没有错误。
DDOS 攻击不可见,出席人数没有激增。
就像从一个繁重的 Apache 进程中挂断一样,并且不允许做任何其他事情,但与此同时,所有用户的会话,而不仅仅是我的,都挂断了。这是在前叉!Nginx 目前工作正常,未经授权的用户会从缓存中获得该站点。
在正在运行的进程列表中冻结的那一刻,httpd消失了,好像没有运行一样,尝试用systemctl restart httpd命令重启也没有任何结果,冻结1-2分钟,好像Apache在拿着一个沉重的过程。重新启动 Apache 并不能保证工作会恢复,它会在一分钟后再次重复。
Timeweb VDS 支持人员进行了快速检查,也没有发现任何结果。在哪里挖?帮助!


解决了这个问题。
它在 Bitrix CMS 中,即我找到了 SessionTable::lock 函数,它向数据库发送 GET_LOCK("***", 60) 请求。
我不知道为什么文档没有说太多。目前尚不完全清楚它何时起作用,但我怀疑当对 MySQL 的同时请求数接近限制时。
结果,我们的网站被封锁了 1 分钟并且日志为空。
谢谢大家!