Sql 在数据库环境中利用集群的功能?
我有一个22台机器的集群,带有一个公共NFS挂载。在每台机器上,我都可以启动一个新的MySQL实例。我完成了一个包含7100万个条目的表的创建,并开始了一个Sql 在数据库环境中利用集群的功能?,sql,mysql,database,optimization,cluster-computing,Sql,Mysql,Database,Optimization,Cluster Computing,我有一个22台机器的集群,带有一个公共NFS挂载。在每台机器上,我都可以启动一个新的MySQL实例。我完成了一个包含7100万个条目的表的创建,并开始了一个addindex操作。已经12个多小时了,手术还在继续。因此,我登录到集群中的另一台机器上,在该机器上的MySQL守护进程上启动了一个新实例,使用: mysqld_safe --user=username 然后在同一台机器上创建了一个MySQL客户端来连接数据库。问题是,我使用的是我在第一台机器上启动客户机时使用的确切语句: mysql -
addindex
操作。已经12个多小时了,手术还在继续。因此,我登录到集群中的另一台机器上,在该机器上的MySQL守护进程上启动了一个新实例,使用:
mysqld_safe --user=username
然后在同一台机器上创建了一个MySQL客户端来连接数据库。问题是,我使用的是我在第一台机器上启动客户机时使用的确切语句:
mysql --socket=/homes/username/mysql/mysql/tmp/mysql.sock -u root -p
我能够像预期的那样看到来自该客户机的所有数据库和表(由于底层NFS装载)。现在,如果我想创建一个新表或更改一个表(当前正在添加索引的表除外),我有两个问题:
这不会稳定地工作,mysqld不是为此而设计的。另外,NFS开销也不理想
您可能需要创建一组从mysqld实例并并行化您的客户端访问。您是说您正在运行多个mysql实例,指向NFS挂载上的相同数据库文件吗?@nos:目前还没有几个,只有2个。我从来没有想过MySQL会抛出一个错误,但它让我创建了一个实例。在考虑集群数据库服务器之前,您分析过瓶颈吗?你的内存用完了吗?CPU不足还是磁盘/网络性能有问题?@Albin:查看
top
的输出,我发现:69084 26m 4416 S 11.7 2.6 84:10.43 mysqld
表示内存或CPU都没有100%使用,所以我猜问题出在网络上,但所有东西都是本地连接的。你有什么建议吗?谢谢你。我担心NFS在我的场景中会成为一个诅咒。