在ejabberd.yml中我们有以下几行:
##
## Number of connections to open to the database for each virtual host
##
## odbc_pool_size: 10
我们正在运行启用mysql的ejabberd服务器。 MySql服务器连接限制为300.
在线进行研究后(在非常有限的文档中),似乎从默认值10增加odbc_pool_size主要影响(减少)客户端到服务器的连接时间。在一个给定的时间点,我们平均有大约1500名在线用户。
我的问题:odbc_pool_size变量的确切用途是什么。如何增加池大小会影响服务器连接时间/延迟?
更新
Ejabberd 服务器统计信息:
MySql 服务器统计信息:
根据你的说法,对于上述配置,odbc_pool_size会有什么好处? (我在想50左右的东西?)
答案 0 :(得分:1)
与任何池一样,它的大小决定了可以并行处理的请求数。如果您的池大小为10,则只有10个请求可以并行处理,另一个请求排队。这意味着如果您有100个用户同时尝试连接,则最后一个要处理的用户必须等待处理10批查询,从而增加延迟。
增加池大小有助于延迟,直到数据库无法应对更多并行性并且全局性能将降低的程度。良好的价值取决于您的数据库大小,用例和整体架构。
您需要执行基准测试并进行实验,以便根据实际流量模式调整大小,因为它实际上取决于实际的流量模式。