我正在尝试弄清楚有关网络服务托管的需求。
在尝试 Azure 之后,我意识到他们提供的默认 MySql(通过第三方)将帐户限制为4 个连接。然后,您可以将帐户升级到 15、30 或 40 个连接(这相当昂贵)。他们的 15 个连接计划描述如下:
“对于需要可靠 MySQL 数据库的轻量级测试和登台应用程序来说,这是绝佳的选择”。
我有两个问题:
- 如果我的应用程序是一个 Web 服务,每天需要执行约 120k 个查询(正常/BELL 分布),并且每个查询约 150ms(持续时间)/约 400ms(获取),那么我需要多少个连接?
- 如果我不使用云计算,而是选择 VPS,那么 1GB 2 核 VPS 可以处理多少个连接?
谢谢你!
答案1
如果我的应用程序是一个 Web 服务,每天需要执行约 120k 个查询(正常/BELL 分布),并且每个查询约 150ms(持续时间)/约 400ms(获取),那么我需要多少个连接?
我们无法从中看出。您提供了基于查询持续时间的指标 - 但我们需要知道会话的持续时间。假设请求没有模式(这是一个很大的假设 - 即使是国际网站也会看到昼夜循环),并且会话的持续时间遵循或多或少的正态分布,并且会话的持续时间与连接数无关(情况从来都不是这样的),那么并发连接数将遵循泊松分布。因此,使用此模型可以计算系统耗尽连接的概率。平均每秒有 1.4 个请求,持续时间为(我不明白您所说的持续时间/获取)150 毫秒,那么平均连接数将为 0.11(如果连接池是无限的)。您可以计算出失败的概率。它相对较低。
但是我们不知道你可接受的失败率的阈值是多少。如上所述,有许多假设是错误的。找到答案的最佳方法是测试它。