【问题标题】:Utilizing the power of clusters in the context of databases?在数据库环境中利用集群的力量?
【发布时间】:2010-09-12 16:43:49
【问题描述】:

我有一个带有通用 NFS 挂载的 22 台机器集群。在每台机器上,我都可以启动一个新的 MySQL 实例。我创建了一个包含大约 7100 万个条目的表,并开始了 ADD INDEX 操作。已经12个多小时了,手术还在继续。因此,我登录到集群中的其他一台机器上,在该机器上的 MySQL 守护程序上启动了一个新实例,使用:

mysqld_safe --user=username

然后在同一台机器上创建了一个 MySQL 客户端来连接数据库。问题是,我使用的正是我在第一台机器上启动客户端时使用的语句:

mysql --socket=/homes/username/mysql/mysql/tmp/mysql.sock -u root -p

我能够按预期看到来自该客户端的所有数据库和表(由于底层 NFS 挂载)。现在,如果我想创建一个新表或更改一个表(当前正在添加索引的表除外),我有两个问题:

  1. 这是正确的方法吗? 利用集群?或者更确切地说,假设我面前有一个相当大的数据挖掘任务,我该如何设置 MySQL(在集群上没有 root 权限)来加快任务?
  2. 我用来连接mysql的语句使用与第一台机器相同的mysql.sock文件。这意味着什么?我的意思是,我最终会面临任何奇怪的情况吗?
  3. 我会获得任何性能提升还是最终会 减慢索引操作 发生在不同的地方 机器?

【问题讨论】:

  • 你是说你正在运行几个mysql实例,指向NFS挂载上的相同数据库文件?
  • @nos:目前还没有几个,只有 2 个。我从没想过认为 MySQL 会抛出错误会起作用,但它让我创建了一个实例。
  • 在考虑集群数据库服务器之前,您是否分析过瓶颈?你的内存用完了吗? CPU 耗尽还是磁盘/网络性能有问题?
  • @Albin:查看top 的输出告诉我:69084 26m 4416 S 11.7 2.6 84:10.43 mysqld 表明内存或 CPU 都没有被 100% 使用,所以我猜测问题出在网络上,但随后一切在本地连接。你有什么建议吗?

标签: sql mysql database optimization cluster-computing


【解决方案1】:

这不会稳定工作 mysqld 不是为此而设计的。此外,NFS 开销也不利。

您可能需要创建一堆从属 mysqld 实例并并行化您的客户端访问。

【讨论】:

  • 谢谢你。我担心 NFS 在我的场景中会成为诅咒。
猜你喜欢
  • 2012-06-10
  • 1970-01-01
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 2019-05-02
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多