您预计从大约 1000 美元的 MySQL 服务器中挤出多少用途?

Gre*_*reg 1 mysql scaling database-performance

我知道这是一个可怕的、笼统的问题,没有好的答案,我提前道歉,但我想知道是否有人可以对非常广泛的估计进行尝试。

假设您有一台运行在价值约 1000 美元的现代硬件上的专用 MySQL 服务器。

假设普通用户每分钟发出 20 个读取请求和 5 个写入请求——都是直接查询,没有连接;主要是从大约 10,000,000 行的索引表中“按 UUID 选择此行”的路线。

非常、非常、非常、非常粗略地估计,在您“推送”之前,您希望这样的服务器能够处理多少并发用户。

小智 5

正如您所指出的,这是一个非常广泛的估计。

最大的问题是你用那 1000 美元买什么。假设您使用普通硬盘需要更多内存和更少的处理器能力,我会说具有这些参数的合理编码的应用程序(其中合理=主要使用您的语言提供的任何抽象库)应该能够处理大约 500并发用户。除了行集的大小外,我会猜到更多(因为直接放入 RAM 的行越多,即使是立即写入,您需要做的磁盘就越少)。

在这种情况下,行中的数据类型和您能够负担得起的 RAM 量绝对是最大的因素。如果您可以减少写入次数并降低索引表的大小,我认为您可以同时处理 1,000 个用户。

你会看到两个问题:

  1. 您能够在 RAM 中缓存的数据量以及您拥有的高于运行基本操作系统和数据库服务器操作所需的最低限度的 RAM 量将决定您可以摆脱什么。更多的 RAM、更少的操作系统需求以及更少的有用数据应该保存在 RAM 中以进行查询和写入,这意味着可接受的性能和大量之间的差异,以及大量的颠簸。

  2. 您的应用程序的设计在这里绝对至关重要。一次写入超过 500-1000 个用户会产生巨大的影响。同样,如果您的呼叫既不简单又不高效,那么您很快就会造成火车失事。我的估计基于我在游戏中看到的一些 mySQL 应用程序,对它们的工作原理知之甚少。如果应用程序存在根本性问题,那么您甚至可能无法获得 40 个用户。如果您对其进行高效编码并考虑到硬件限制,您可能能够轻松地扩展到 2,000 以上。