微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ejabberd 1000 虚拟主机是否可行?

如何解决Ejabberd 1000 虚拟主机是否可行?

我们正在开发具有 1000 个虚拟主机的聊天应用程序。每个虚拟主机一个公司。我们正在挣扎超过 20 个虚拟主机,服务器有时会变慢。单个节点中可能有多少虚拟主机。添加1000个虚拟主机时服务器的配置是什么。

操作系统:Centos 8 版本:ejabberd20.04 数据库MysqL

如果对我有任何帮助,那将是非常有用的。

解决方法

我怀疑操作系统会在试图让十多个虚拟机满意的情况下陷入困境。 (正如你发现的只有 20 个。)这是一台强大的机器吗?我会使用带有单个 MySQL 实例的单个服务器,并将 company_id 作为许多表中 PRIMARY KEY 的一部分。

(这个问题在 dba.stackoverflow.com 中可能更有吸引力。这个 stackoverflow.com 更侧重于编码。)

相比之下,MySQL 本身最多可以达到一百左右真正的并发查询。几千人聊天是没有问题的,因为他们真的并没有同时做任何事情。

使用 VM,您拥有以下层:

  • 操作系统协调虚拟机
  • 每个 VM 协调其中的进程(MySQL 等)
  • 每个 MySQL 协调连接。

使用单个 MySQL 实例:

  • 一个操作系统,没有虚拟机操作系统。
  • 一个 MySQL。
  • 很多连接(不是大问题)。
  • 相同数量的活动连接(很少超过一打)。

此外,让我们看看 RAM 使用情况。

  • 单个对话将涉及可能一兆字节的数据(聊天对话、索引等)。
  • 加载了 MySQL(代码、数据、开销等)的虚拟机可能需要 1 GB 以上的容量。

这意味着一千个虚拟机可能需要 TB 的 RAM,只是为了最低限度的使用。同时,相同流量的整合聊天平台可以处理(我估计)大约 4GB。

(如果你有不可告人的理由想要做虚拟机,那就说出来。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。