了解ejabberd.yml

时间:2016-08-03 07:30:22

标签: mysql ejabberd

在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 服务器统计信息:

  • 8 gb RAM
  • 双核
  • ~2000用户(高峰时段)
  • 平均cpu utilaztion 13.5%

MySql 服务器统计信息:

  • 最大支持同时连接:300
  • 写入IOPS(QPS)23.1 /秒
  • 读取IOPS 1 / sec
  • 内存使用量:2.5 / 15gb

根据你的说法,对于上述配置,odbc_pool_size会有什么好处? (我在想50左右的东西?)

1 个答案:

答案 0 :(得分:1)

与任何池一样,它的大小决定了可以并行处理的请求数。如果您的池大小为10,则只有10个请求可以并行处理,另一个请求排队。这意味着如果您有100个用户同时尝试连接,则最后一个要处理的用户必须等待处理10批查询,从而增加延迟。

增加池大小有助于延迟,直到数据库无法应对更多并行性并且全局性能将降低的程度。良好的价值取决于您的数据库大小,用例和整体架构。

您需要执行基准测试并进行实验,以便根据实际流量模式调整大小,因为它实际上取决于实际的流量模式。