MySQL单机多实例配置
2012-10-27 16:57
441 查看
===========================================================================摘抄自hellodba
MySQL单机多实例方案,是指在一台物理的PC服务器上运行多个MySQL数据库实例,为什么要这样做?这样做的好处是什么?
1.存储技术飞速发展,IO不再是瓶颈
普通PC服务器的CPU与IO资源不均衡,因为磁盘的IO能力非常有限,为了满足应用的需要,往往需要配置大量的服务器,这样就造成CPU资源的大量浪费。但是,Flash存储技术的出现改变了这一切,单机的IO能力不再是瓶颈,可以在单机运行多个MySQL实例提升CPU利用率。
2.MySQL对多核CPU利用率低
MySQL对多核CPU的利用率不高,一直是个问题,5.1版本以前的MySQL,当CPU超过4个核时,性能无法线性扩展。虽然MySQL后续版本一直在改进这个问题,包括Innodb plugin和Percona XtraDB都对多核CPU的利用率改进了很多,但是依然无法实现性能随着CPU core的增加而提升。我们现在常用的双路至强服务器,单颗CPU有4-8个core,在操作系统上可以看到16-32 CPU(每个core有两个线程),四路服务器可以达到64 core甚至更多,所以提升MySQL对于多核CPU的利用率是提升性能的重要手段。下图是Percona的一份测试数据:
===========================================================================摘抄自hellodba
mysqld_multi可以管理多个帧听不同Unix套接字文件和TCP/IP端口的连接的mysqld进程。它可以启动或停止服务器,或报告它们的当前状态。
要想调用mysqld_multi,使用下面的语法:
start、stop和report表示你想要执行的操作。你可以在单个服务器或多个服务器上执行指定的操作,取决于选项名后面的GNR列。如果没有该列,mysqld_multi为选项文件中的所有服务器执行该操作。
具体配置如下:
另外NUMA对MySQL多实例的性能调优较大的联系,笔者会对这方面做一个详细的测试
MySQL单机多实例方案,是指在一台物理的PC服务器上运行多个MySQL数据库实例,为什么要这样做?这样做的好处是什么?
1.存储技术飞速发展,IO不再是瓶颈
普通PC服务器的CPU与IO资源不均衡,因为磁盘的IO能力非常有限,为了满足应用的需要,往往需要配置大量的服务器,这样就造成CPU资源的大量浪费。但是,Flash存储技术的出现改变了这一切,单机的IO能力不再是瓶颈,可以在单机运行多个MySQL实例提升CPU利用率。
2.MySQL对多核CPU利用率低
MySQL对多核CPU的利用率不高,一直是个问题,5.1版本以前的MySQL,当CPU超过4个核时,性能无法线性扩展。虽然MySQL后续版本一直在改进这个问题,包括Innodb plugin和Percona XtraDB都对多核CPU的利用率改进了很多,但是依然无法实现性能随着CPU core的增加而提升。我们现在常用的双路至强服务器,单颗CPU有4-8个core,在操作系统上可以看到16-32 CPU(每个core有两个线程),四路服务器可以达到64 core甚至更多,所以提升MySQL对于多核CPU的利用率是提升性能的重要手段。下图是Percona的一份测试数据:
===========================================================================摘抄自hellodba
mysqld_multi可以管理多个帧听不同Unix套接字文件和TCP/IP端口的连接的mysqld进程。它可以启动或停止服务器,或报告它们的当前状态。
要想调用mysqld_multi,使用下面的语法:
shell> mysqld_multi [options] {start|stop|report} [GNR[,GNR] ...]
start、stop和report表示你想要执行的操作。你可以在单个服务器或多个服务器上执行指定的操作,取决于选项名后面的GNR列。如果没有该列,mysqld_multi为选项文件中的所有服务器执行该操作。
具体配置如下:
# pwd /usr/local/mysql/etc/ # cat multi.cnf [mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin =/usr/local/mysql/bin/mysqladmin user = multi_admin password = 123123 #确保之后赋权的密码是这里的密码,否则无法关闭实例 [mysqld2] socket = /tmp/mysql.sock2 port = 3307 pid-file = /var/run/mysqld/mysql.pid2 datadir = /data2 [mysqld3] socket = /tmp/mysql.sock3 port = 3308 pid-file = /var/run/mysqld/mysql.pid3 datadir = /data3 [mysqld4] socket = /tmp/mysql.sock4 port = 3309 pid-file = /var/run/mysqld/mysql.pid4 datadir = /data4 # mkdir /data2 /data3 /data4 # chown myql:mysql -R /data2/data3 /data4 # cd /usr/local/mysql # ./scripts/mysql_install_db --user=mysql --datadir=/data2 # ./scripts/mysql_install_db --user=mysql --datadir=/data3 # ./scripts/mysql_install_db --user=mysql --datadir=/data4 # /usr/local/mysql/bin/mysqld_multi \ --defaults-file=/usr/local/mysql/etc/multi.cnfstart 2-4 //开启2到4的实例 //# /usr/local/mysql/bin/mysqld_multi \ --defaults-file=/usr/local/mysql/etc/multi.cnfstart 2,4 开启2和4两个实例 # netstat -tulnp | grep mysql tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 15080/mysqld tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 15088/mysqld tcp 0 0 0.0.0.0:3309 0.0.0.0:* LISTEN 15097/mysqld # mysql -u root -S /tmp/mysql.sock2 Welcome to the MySQLmonitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version:5.5.8-debug-log Source distribution Copyright (c) 2000, 2010,Oracle and/or its affiliates. All rights reserved. This software comes withABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modifyand redistribute it under the GPL v2 license Type 'help;' or '\h' forhelp. Type '\c' to clear the current input statement. mysql> grant shutdown on *.* to multi_admin@'localhost' identified by'123123'; Query OK, 0 rows affected(0.00 sec) mysql> flush privileges; Query OK, 0 rows affected(0.01 sec) mysql> quit Bye # 之后的实例依次连接执行命令赋权即可 mysql> grant shutdown on *.* to multi_admin@'localhost' identified by'123123'; mysql> flush privileges; # /usr/local/mysql/bin/mysqld_multi \ --defaults-file=/usr/local/mysql/etc/multi.cnfstop 2-4 # netstat -tulnp | grep mysql #
另外NUMA对MySQL多实例的性能调优较大的联系,笔者会对这方面做一个详细的测试
相关文章推荐
- MySQL单机多实例部署详解之------多实例分别定义不同的配置文件
- windows系统单机安装mysql两实例并配置为主从关系
- MySQL单机多实例部署详解之------多实例分别定义不同的配置文件
- MySQL单机多实例的配置笔记
- MySQL单机多实例配置
- centos7下mysql5.6.30配置单机多实例主从半同步复制
- Centos下Mysql多主机master单机多实例slave同步配置
- 多配置文件部署mysql单机多实例
- MySQL实现单机多实例安装并配置主从复制
- MySQL 5.5.35 单机多实例配置详解
- 生产环境MySQL 5.5.x单机多实例配置实践
- 生产环境MySQL 5.5.x单机多实例配置实践
- 生产环境MySQL 5.5.x单机多实例配置实践
- 【转载】MySQL单机多实例安装并配置主从复制
- mysql单机多实例配置笔记
- MySQL单机多实例安装并配置主从复制
- MySQL 5.5.35 单机多实例配置详解 推荐
- MySQL单机多实例部署详解之------利用mysqld_multi配置实现
- amoeba针对MySQL单机多实例配置文件注释
- MySQL单机多实例安装并配置主从复制