【发布时间】:2020-04-14 10:28:54
【问题描述】:
当前配置:
16GO RAM,4 个 cpu 内核,Apache/2.2 使用 prefork 模块(设置为 700 maxClients,因为平均进程大小约为 22MB),启用了 suexec 和 suphp mods (PHP 5.5)。
使用 CakePHP2 并存储在 MySQL 服务器上的站点后端。该站点由前面的文本/一些压缩图像和后面的数据处理组成。
当前流量:
每天约 60000 名独立访客,在高峰期,我目前很容易达到 700 多个同时连接,这填满了 MaxClients。当我在那些时刻使用apachectl status 时,我可以看到所有进程都被使用了。
CPU 没问题。但是 RAM 正在被使用。
潜在流量:
流量可能会增长到每天约 200000 名独立访问者,甚至更多。也可能不是。但如果发生这种情况,我想做好准备。由于我已经使用该配置达到了当前服务器的限制。
所以我考虑采用更大的新服务器,例如配备 192GB 内存和 20 个内核。
我可以保持完全相同的配置(这意味着我将能够使用相同的配置处理我当前的 10* 流量)。
但我想知道在我的情况下是否有更好的配置,使用更少的资源并提高效率? (事实证明确实如此)
【问题讨论】:
-
附加信息请求。 MySQL 主机服务器上有任何 SSD 或 NVME 设备吗?在 pastebin.com 上发布并分享链接。从您的 SSH 登录根目录中,文本结果为:B) SHOW GLOBAL STATUS;至少 24 小时正常运行时间后 C) 显示全局变量; D) 显示完整的处理程序; E) 完整的 MySQLTuner 报告和可选的非常有用的信息,如果可用,包括 - htop 或 top 用于大多数活动应用程序,ulimit -a 用于 Linux/Unix 限制列表,iostat -xm 5 3 用于按设备和核心/cpu 计数的 IOPS,为服务器工作负载调优分析提供建议。
-
MySQL 主机服务器上没有 SSD 或 NVME 设备。这是包含您询问的信息的粘贴箱:pastebin.com/0GA7R3yi 过去我已经完成了一些 MySQLTuner 建议,并且刚刚意识到每个表的文件仍然处于关闭状态,因为要打开它,我必须转储并重置所有内容。
sysstat未安装在该服务器上,因此iostat不能处于其当前状态。 -
感谢您的数据。是否有机会从 mysqltuner.com 获取 Perl 脚本并发布完整报告?这将有助于按引擎了解更多关于您的系统、表数和数据大小的信息。分析正在进行中。
标签: php server webserver apache2 traffic