我们的一台服务器具有非常特殊的设置,对未知事件非常敏感。
硬件:
- Xen虚拟机
- 22 核 (采用 Intel xeon 4*6 核构建)
- 磁盘阵列 6 SSD
- 60 GB 内存
配置:
- Suse Openlinux 13.1
- Apache2.4-事件
- PHP 5.5.14
- 修改代理服务器
- php-fpm
- 5.5.33-MariaDB
工作量:
- 大约 120 个不同的网站
- 120 个网站中约有 60 个是 Typo3 网站(其余的也是由 php 驱动的)
问题:
但有时,例如,当我们运行包括 mysqldump 的备份作业时,我们会遇到这样的问题:虚拟主机一个接一个地发出“已达到 max_children”的信号并停止响应。当然,我们在流量较少的时候进行备份,我们可以接受短时间的“无响应”,但这种死锁或封锁永远不会自行结束。手动重启 php-fpm 后一切都会好起来。
即使在高流量时段,该系统的正常行为也是完美无缺且速度快如闪电。大多数核心处于空闲状态,我知道的其他参数都正常。
当然,无论是在消息日志中(“max_children reached”除外),还是在任何 apache/vhosts 日志中,都没有提示日志文件条目。是的,内存使用量和打开的进程数迅速增加。
有没有人遇到过像我们这样的环境(我知道这个怪物里面有很多特殊的东西)并且遇到过相同或相似的问题,以及如何调试这些问题的好主意?