【发布时间】:2020-07-12 15:34:41
【问题描述】:
我正在运行一个使用本机 Mysql PDO 与 mysql 数据库交互的应用程序,我没有使用 laravel 或任何框架。 所以大部分 API 逻辑是从数据库中获取和/或插入。
在生产中运行时,我可以看到 mysql 任务的内存使用率很高,请检查以下内容:
我有几个问题。
- 如此高的内存使用量正常吗?在多线程生产级应用程序中管理适当的 PHP-Mysql 连接的最佳做法是什么?
- 在运行密集查询(获取历史数据以绘制图表)时,CPU 使用率会跃升至 100%,直到查询执行完成,它会返回到 2-3%。但在此期间系统完全暂停。
我正在考虑基于硬件的解决方案,例如将数据库服务器与应用服务器分开(目前它们都在同一个节点上运行)以及管理集群和使用只读节点。
但我想知道是否还有其他选择,以及处理 PHP-MySQL 连接的最有效方法是什么。
【问题讨论】:
-
1cpu 和 1gb 的内存,没有交换,当然,它会挂起。对我来说看起来很正常,mysql本质上使用大量的ram,这就是为什么web、db、缓存服务通常是分开的,而不是放在一个micro vps上
标签: php mysql multithreading performance cpu-usage