好吧,我有一个 VPS(DO 512 MB)和 AWS RDS 免费套餐。我想获得最佳性能,请帮助我,因为我有点困惑。我在 VPS 上运行一个 nginx 服务器,它可以处理 1K 流量/秒而不会太过恐慌。我的问题是我应该在 VPS 还是 AWS 上托管 MySQL?你可能会说对其进行基准测试,对吧!?我做了,结果如下(我有一个非常小的数据库,500 行,15 列)我从连接到两个服务器的本地位置测试了查询执行时间。我运行了一个大查询来测试它们 4 次,以确保 100% 的结果,两个服务器都使用相同的参数进行了优化。
AWS -RDS - MYSQL
- 第一次:2.97
- 第二次:2.88
- 第三次 :1.61 第四次
- 第四次:3.19
VPS-MYSQL
- 第一次:1.88
- 第二次:1.81
- 第三次:2.14
- 第四次:1.88
我在本地(在 VPS 上)执行查询时获得了更快的 VPS 结果。并且我使用 Loader.io 进行了 php+mysql 测试,这里也是结果。 VPS loader.io 测试 AWS loader.io 测试 尽管 VPS mysql 在各方面都更快,但它占用了大量的系统资源(5.7% 内存 X 6 个进程)。速度差异是否值得消耗 VPS 的资源?有什么建议吗?
答案1
如果您的系统有能力托管数据库,那么在本地运行数据库总是比通过网络运行更快。在这种情况下,您的 VPS 似乎没有超载,因此您应该坚持在 VPS 上运行数据库,因为您的测试清楚地表明它更快。
分布式系统通常会在每台服务器上复制数据库,以提高本地性能。例如,我管理的一个站点在三台服务器上实现负载平衡,每台服务器都作为副本集的一部分运行数据库的副本;所有写入都发送到主服务器,但所有读取都从服务器的本地副本完成,以避免网络开销和延迟。