![在我的服务器上,MySQL(MariaDB)与 Apache/PHP-FPM 相比占用了多少资源?](https://linux22.com/image/742303/%E5%9C%A8%E6%88%91%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%EF%BC%8CMySQL%EF%BC%88MariaDB%EF%BC%89%E4%B8%8E%20Apache%2FPHP-FPM%20%E7%9B%B8%E6%AF%94%E5%8D%A0%E7%94%A8%E4%BA%86%E5%A4%9A%E5%B0%91%E8%B5%84%E6%BA%90%EF%BC%9F.png)
我在这个服务器上托管了大约 60 个客户端站点:AMD EPYC 7401P 24 核“Naples”(Zen)128GB DDR4 ECC RAM NVMe 存储。Centos7
所有站点都是 PrestaShop 1.7 站点,每个站点都有自己的 PHP 7.1 PHP-FPM 池以及一个 MySQL(MariaDB)数据库。
速度很快,但我正在考虑迁移到一个单独的 MySQL 服务器和一个 Web 服务器。
我不知道 MySQL 与 Apache 和 PHP-FPM 相比占用了多少资源。
假设我在当前服务器上保留 Apache 和 PHP-FPM,并为 MySQL 购买新服务器。我应该买什么服务器?与 Web 服务器相比,RAM 和 CPU 是原来的一半吗?还是两倍?还是一样?
我猜测答案是:没有实际数据很难说,那么接下来的问题是:我怎样才能获得这些数据,最好随时间变化的资源使用情况? 这些数据是否已经隐藏在系统中了,还是我需要安装一些统计工具?
答案1
(我不了解 PrestaShop,我将使用 MySQL 解决通用扩展问题。)
是的,将数据库移动到单独的服务器是扩展应用程序的合理的第一步。
- 您有多少数据(或将有多少数据)? RAM 大小是在是否足以缓存大部分或全部数据与 RAM 成本之间的权衡。
- CPU(对于 MySQL)无关紧要。几乎总是可以通过改进索引和/或查询来解决过多的 CPU 使用率。
- 磁盘速度可能很重要。
- MySQL 需要使用 RAM 和磁盘。Apache 和 PHP 需要使用 CPU。因此您可能看不到太多改进。
- 如果您可以确定 Apache/PHP/PrestaShop 是最大的占用者,那么您可以拥有多个运行该服务器的服务器,然后再拥有一个 MySQL 服务器。
- 如果 MySQL 是主要问题,那么我们来看看慢查询。如果问题可以解决,那么 Replication 很可能是解决方案。
至于调查/改进当前(单服务器)设置:
- 如果客户端来来去去,请不要配置完整的 60 个连接。
- MySQL 希望 70%可用的RAM 并且讨厌交换。“可用”是指考虑操作系统、代码和其他应用程序之后。
- Windows?还是 Unix?让我们看看按内存排序的顶部
top
。以及按 CPU 排序。(在繁忙时段)