我当前的 VPS(5 节点 tmdhosting VPS)的磁盘 IO 吞吐量非常慢;一个简单的插入 mysql 查询可能需要 10 秒以上(是的,超过 10 秒!!)才能完成。我已经检查过了,我的 VPS 未得到充分利用,我强烈怀疑与我的 VPS 在同一物理服务器上共存的其他 VPS 正在以我的 VPS 为代价进行大量磁盘 IO 操作。
不仅如此,mysql 写查询的性能也非常不稳定,有一天快,有一天慢。这也进一步证实了我上面的怀疑。
我正在考虑切换到云托管。但我担心云托管可能会有同样的问题(即:IO 吞吐量在所有可视化之间共享),我这样说对吗?
是否有任何托管包可用于获得一致的 IO 吞吐量?我知道专用服务器是最终答案,但我现在还不想使用专用服务器。
答案1
如果您想要保证一致的 I/O 响应时间,那么配备本地磁盘的专用服务器是唯一的解决方案。如果 SAN 过载,即使是连接到 SAN 的专用物理服务器(更不用说虚拟服务器)也可能非常慢。
所以,最好明智地选择你的下一个主机!如果物理硬件严重滞后,再多的软件调整也无济于事。
答案2
直接的答案是肯定的。机器有一组具有特定 IO 预算的磁盘。所有 VPS 之间共享这些磁盘。与处理器相同。
这是所有共享资源的已知问题 - 在虚拟化之前,这是 SAN 的一个已知问题,而且规格定义不太明确,因此数据库最终位于 SAN 中的共享磁盘上。同样的问题:IO 不一致,因为 IO 预算不是“硬性”的,但您的分配取决于其他机器。
但 10 秒却很可怕。真的很可怕。
云也是一样。如果你想要确定性功能,你需要拥有自己的硬件(不一定是自有的)或能够分配预算(例如 IO)的共享主机。这需要花费。
但说真的,10 秒太糟糕了。试试更便宜的主机。