一、操作系统环境
操作系统版本选择
CentOS/RHRL/ORACLE Linux 5.x/6.x x86_64 发行版 建议磁盘分区规则
MySQL 运行环境建议规范
挂载点 |
大小 |
分区类型 |
分区用途 |
/boot |
100M |
系统默认即可 |
/boo |
swap |
4G-16G |
swap |
swap |
/opt |
20G |
xfs |
安装应用软件 |
/ |
40G ,最小不低于 20G |
系统默认即可 |
/ |
/home |
第一个 Raid 剩余 ,不低于 20G |
xfs |
存放备份文件目录 |
/data |
第二个 Raid 的全部,根据数据大小决定 |
xfs |
存放 MySQL 数据文件目录 |
/data/mysql/myapp_3306 |
|||
/tmp |
8-16G |
tmpfs |
采用 tmpfs,利用内存的共享内存,加速 /tmp 目录的文件读写性能 |
内核参数建议值
1. 调整最大文件数限制 ulimit -n 65535
并且写入 /etc/sysctl.conf,重启后也能生效
2. 修改 IO 调度器设置
io 调度器修改为 deadline,如果是 SSD 或者 PCIe-SSD 设备,则修改为 noop,下列两种方式修改: a) 在线动态修改,重启失效
echo “deadline” > /sys/block/sdb/queue/scheduler
这里的 sdb 修改为实际的设备名称,例如 sda,或者 sdc。 b) 修改 /etc/grub.conf,永久生效
修改 /etc/grub.conf 配置文件,在 kernel 那行增加一个配置,例如: kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/1 elevator=deadline rhgb quiet
最后,查看核实下 io 调度器的配置,例如:
cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
这时表示 io 调度器采用的是 cfq,而非我们要求的 deadline,需要及时调整。
3. 修改 swappiness 设置 vm.swappiness = 0
并且将该设置写入 /etc/sysctl.conf ,重启后也能生效。
swappiness 是 Linux 的一个内核参数,用来控制 Linux 物理 RAM 内存进行 SWAP 页交换的相对权重,尽量减少系统的页缓存被从内存中清除的情况。 取值范围是0~100,vm.swappiness 的值越低,Linux 内核会尽量不进行 SWAP 交换页的操作,vm.swappiness 的值越高,linux 会越多的使用 SWAP 空 间。Linux 系统的默认值是 60,当系统需要内存时,有 60%的概率使用 SWAP。对于大多数桌面系统,设置为 100 可以提高系统的整体性能;对于数 据库应用服务器,设置为 0,可以提高物理内存的使用率,进而提高数据库服务的响应性能。
不过需要注意的是,RHEL 7 以上版本,如果 vm.swappiness = 0,有可能会由于 OOM 问题,导致 mysqld 进程被 OOM-Killer 进程杀掉。 关闭 NUMA 特性
新一代架构的 NUMA 不适用于跑数据库的场景。它本意是为了提高内存利用率,但实际效果不好,反而可能导致一个 CPU 的内存尚有剩余, 但另一个不够用,发生 SWAP 的问题,因此建议直接关闭或者修改 NUMA 的调度机制。
a) 修改 /etc/grub.conf,关闭 NUMA,重启后生效
修改 /etc/grub.conf 配置文件,在 kernel 那行增加一个配置后重启生效,例如: kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/1 elevator=deadline numa=off rhgb quiet
b) 修改 /etc/init.d/mysql 或者 mysqld_safe 脚本,设定启动 mysqld 进程时的 NUMA 调度机制,例如: numactl --interleave=all /usr/bin/mysqld_safe --datadir="$datadir" --socket="$socketfile" \
--log-error="$errlogfile" --pid-file="$mypidfile" \ --user=mysql >/dev/null 2>&1 &
关闭 CPU 的节能模式
CPU 启用节能模式后,会节约电量,但也可能带来 CPU 性能下降的问题。因此,运行数据库类业务时,建议关闭节能模式,发挥 CPU 的最大 性能。
二、MySQL 环境 环境规范定义
MySQL 安装包下载地址: 官方地址:http://dev.mysql.com/downloads/mysql/ 选择:Archived versions »
然后选择:MySQL Community Server
再选择 5.5.37 版本及对应的操作系统分支 Linux - Generic:
建议下载预编译好的二进制安装包:Linux - Generic 2.6 (x86, 64-bit), Compressed TAR Archive
或者选择搜狐国内镜像站,下载速度较快:http://mirrors.sohu.com/mysql/MySQL-5.5/
该镜像站点已经无法下载 5.5.37 版本,选择最新的 5.5.39 也是可以的:http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.39-linux2.6-x86_64.tar.gz
也可以根据个人习惯下载源码包或者 RPM 包。
1. 软件安装目录
mysql 预编译包默认安装路径(basedir) /usr/local/mysql,实际路径可能是 /usr/local/mysql-5.6.16-linux-glibc2.5-x86_64,软链接成 /usr/local/mysql,即 ln -s /usr/local/mysql-5.6.16-linux-glibc2.5-x86_64 /usr/local/mysql
2. datadir 目录:
单实例: /data/mysql
多实例: /data/mysql/实例名_端口号,例如 /data/mysql/mytest_3306 或者 /data/mysql/yejr_3307
3. 多实例管理默认采用 mysqld_multi 方式
my.cnf 配置文件中, [mysqld] 中是一些公共配置,例如: #my.cnf
[client]
port = 3306
socket = mysql.sock
[mysql]
prompt="\\u@\\h \\D \\R:\\m:\\s [\\d]> #pager="less -i -n -S"
tee=/home/mysql/query.log no-auto-rehash
[mysqld_multi]
mysqld = /usr/local/mysql /bin/mysqld_safe mysqladmin = /usr/local/mysql /bin/mysqladmin log = /home/mysql/mysqld_multi.log
[mysqld]
#misc
user = mysql
basedir = /usr/local/mysql datadir = /home/mysql port = 3306
socket = /home/mysql/mysql.sock event_scheduler = 0
#timeout interactive_timeout = 300 wait_timeout = 300
#character set character-set-server = utf8
open_files_limit = 65535 max_connections = 100
max_connect_errors = 100000
#logs
log-output=file
slow_query_log = 1
slow_query_log_file = /home/mysql/slow.log log-error = /home/mysql/error.log log_warnings = 2
pid-file = /home/mysql/mysql.pid long_query_time = 1 #log-slow-admin-statements = 1 #log-queries-not-using-indexes = 1 log-slow-slave-statements = 1
#binlog
binlog_format = mixed server-id = 10518
log-bin = mybinlog binlog_cache_size = 4M max_binlog_size = 1G max_binlog_cache_size = 2G sync_binlog = 1 expire_logs_days = 10
#relay log skip_slave_start = 1
max_relay_log_size = 1G relay_log_purge = 1 relay_log_recovery = 1 log_slave_updates #slave-skip-errors=1032,1053,1062
#buffers & cache table_open_cache = 2048 table_definition_cache = 2048 table_open_cache = 2048 max_heap_table_size = 96M sort_buffer_size = 2M join_buffer_size = 2M thread_cache_size = 256 query_cache_size = 0 query_cache_type = 0 query_cache_limit = 256K query_cache_min_res_unit = 512 thread_stack = 192K tmp_table_size = 96M key_buffer_size = 8M read_buffer_size = 2M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 32M
#myisam
myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1
#innodb
innodb_buffer_pool_size = 1G innodb_buffer_pool_instances = 1 innodb_data_file_path = ibdata1:1G:autoextend innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 64M innodb_log_file_size = 256M innodb_log_files_in_group = 2 innodb_max_dirty_pages_pct = 50 innodb_file_per_table = 1 innodb_rollback_on_timeout innodb_status_file = 1
innodb_io_capacity = 2000 transaction_isolation = READ-COMMITTED innodb_flush_method = O_DIRECT
#端口号为 3306 的实例特殊配置 [mysqld3306]
#指定本实例相应版本的 basedir 和 datadir basedir= /usr/local/mysql-5.5.37
datadir = /data/mysql/yejr_3306 #重新配置这几个选项,不与全局配置一样,会直接覆盖上面的全局设置
innodb_buffer_pool_size = 4G transaction_isolation = REPEATABLE-READ
[mysqld3307]
basedir= /usr/local/mysql-5.5.39
datadir = /data/mysql/yejr_3307 #重新配置这几个选项,不与全局配置一样,会直接覆盖上面的全局设置 innodb_buffer_pool_size = 2G
innodb_flush_log_at_trx_commit = 2
sync_binlog = 0
参考 my.cnf 配置文件
默认地,所有配置参数都放在 /etc/my.cnf 中,不建议每个实例自己一个配置文件。下面是参考的 my.cnf 配置文件: #[mysql]
[mysql]
prompt="\\u@\\h \\D \\R:\\m:\\s [\\d]> "
#pager="less -i -n -S" no-auto-rehash tee="/home/mysql/tee.log"
8、/etc/my.cnf 中,[mysqld] section 默认选项 #my.cnf
[client]
port = 3306
socket = mysql.sock
[mysql]
prompt="\\u@\\h \\D \\R:\\m:\\s [\\d]> #pager="less -i -n -S" tee=/home/mysql/query.log no-auto-rehash
[mysqld_multi]
mysqld = /usr/local/mysql /bin/mysqld_safe mysqladmin = /usr/local/mysql /bin/mysqladmin log = /home/mysql/mysqld_multi.log
[mysqld]
#misc
user = mysql
basedir = /usr/local/mysql datadir = /home/mysql port = 3306
socket = /home/mysql/mysql.sock event_scheduler = 0
#timeout interactive_timeout = 300 wait_timeout = 300
#character set
character-set-server = utf8
open_files_limit = 65535 max_connections = 100 max_connect_errors = 100000
#logs
log-output=file
slow_query_log = 1
slow_query_log_file = /home/mysql/slow.log log-error = /home/mysql/error.log log_warnings = 2
pid-file = /home/mysql/mysql.pid long_query_time = 1 #log-slow-admin-statements = 1 #log-queries-not-using-indexes = 1 log-slow-slave-statements = 1
#binlog
binlog_format = mixed server-id = 10518
log-bin = mybinlog binlog_cache_size = 4M max_binlog_size = 1G max_binlog_cache_size = 2G sync_binlog = 1
expire_logs_days = 10
#relay log
skip_slave_start = 1 max_relay_log_size = 1G relay_log_purge = 1 relay_log_recovery = 1 log_slave_updates #slave-skip-errors=1032,1053,1062
#buffers & cache table_open_cache = 2048 table_definition_cache = 2048 table_open_cache = 2048 max_heap_table_size = 96M sort_buffer_size = 2M join_buffer_size = 2M thread_cache_size = 256 query_cache_size = 0 query_cache_type = 0 query_cache_limit = 256K query_cache_min_res_unit = 512 thread_stack = 192K tmp_table_size = 96M key_buffer_size = 8M read_buffer_size = 2M
read_rnd_buffer_size = 16M bulk_insert_buffer_size = 32M
#myisam myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1
#innodb
innodb_buffer_pool_size = 1G innodb_buffer_pool_instances = 1 innodb_data_file_path = ibdata1:1G:autoextend innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 64M innodb_log_file_size = 256M innodb_log_files_in_group = 2 innodb_max_dirty_pages_pct = 50 innodb_file_per_table = 1 innodb_rollback_on_timeout innodb_status_file = 1
innodb_io_capacity = 2000 transaction_isolation = READ-COMMITTED innodb_flush_method = O_DIRECT
MySQL 运行环境建议规范的更多相关文章
-
MySQL运行环境部署规范
一:系统安装规范 1.关闭CPU节能,设定最大性能模式. 2.关闭NUMA(主要是为了避免swap).C-states.C1E. 3.阵列卡策略使用FORCE WB,关闭预读. 4.机械盘时,所有盘组 ...
-
优化mysql运行环境的方法
Mysql优化已经讲过很多篇教程了,而且网上也很多相关内容,但是本文我们是讲Linux下Mysql运行环境如何进行优化,有些地方与以往有所不同,也具有参考价值.具体mysql教程 如下: 一.修改Li ...
-
Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程
这篇文章主要介绍了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程,需要的朋友可以参考下 准备篇 一.环境说明: 操作系统:Windows Server 201 ...
-
virtualBox安装centos7并配置nginx php mysql运行环境
virtualBox安装centos7并配置nginx php mysql运行环境 一:virtualBox安装centos7并进行基础设置 1.下载dvd.iso安装文件,下载地址:https:// ...
-
centos7最小版本安装nginx+tomcat+java+mysql运行环境
最近项目从windows搬到linux,由于项目组成员有限并且有其它紧急的任务需要处理,因而这个任务就落到我的头上了.下面记录下centos最小版本安装nginx+tomcat+mysql+java的 ...
-
Mac下搭建Apache+PHP+MySql运行环境
https://www.cnblogs.com/xiaovw/p/8854896.html 前言 我们在Mac上搭建Apache+PHP+MySql环境是非常方便的,因为Mac预装的有Apache和P ...
-
apache+php+mysql运行环境
建议Apache2.4+php5.6+mysql5.5+phpmyadmin4.4.4 参考: http://jingyan.baidu.com/article/fcb5aff797ec41edaa4 ...
-
win10本地搭建apache+php+mysql运行环境
首先下载所需软件: Vc2015:https://www.microsoft.com/zh-CN/download/details.aspx?id=48145 Vc2012:http://www.mi ...
-
linux下搭建nginx+php(FastCGI)+mysql运行环境
一.安装环境 1.CentOS5.5 2.php5.4 3.MySQL5.5.19 二.安装程序依赖库和开发环境 为了省事把所需要的库文件全都安装上,可以使用rpm包安装,也可以用yum命令安装, 1 ...
随机推荐
-
.NET Core采用的全新配置系统[1]: 读取配置数据
提到“配置”二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化的配置定义在这两个文 ...
-
CSS 多类选择器
写的代码多了,就会发现,自己越来越无知了,总以为html css很简单,已经掌握的很熟练了,其实我还差的很多. 平时没有用过css的这种写法 .a.b{display:block;} 上网一查才 ...
-
solr&;lucene3.6.0源码解析(三)
solr索引操作(包括新增 更新 删除 提交 合并等)相关UML图如下 从上面的类图我们可以发现,其中体现了工厂方法模式及责任链模式的运用 UpdateRequestProcessor相当于责任链模式 ...
-
php生成随机密码(php自定义函数)转自先锋教程网
php生成随机密码(php自定义函数) 时间:2015-12-16 20:43:49来源:网络 导读:php随机密码的生成代码,使用php自定义函数生成指定长度的随机密码,密码规则为小写字母与数字的随 ...
-
关于CH340在STM32实现一键下载电路的研究(转)
源:关于CH340在STM32实现一键下载电路的研究 在做基于STM32的多功能MP3播放器的课题时,在程序下载这部分时借鉴了正点原子开发板上的一键下载电路,采用CH340G这款芯片设计. 在画PCB ...
-
[笔记]FTRL与Online Optimization
1. 背景介绍 最优化求解问题可能是我们在工作中遇到的最多的一类问题了:从已有的数据中提炼出最适合的模型参数,从而对未知的数据进行预测.当我们面对高维高数据量的场景时,常见的批量处理的方式已经显得力不 ...
-
3.Properties文件的加载和使用
一.Properties简介 Properties 类继承自HashTable,提供的方法很像Map的实现类HashMap.它在 Java 编程的早期就有了,并且几乎没有什么变化.J2SE 的 Tig ...
-
微信小程序页面列表与详情页跳转的正确姿势
初学小程序,碰到列表与详情页跳转遇到的问题,记录一下. 一.问题 1个列表页: 1个详情页: 列表页代码: onLoad:异步查询数据并setData 详情页代码: 保存成功后,调用navigateB ...
-
Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
Qt 程序获取程序所在路径.用户目录路径.临时文件夹等特殊路径的方法 经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径.用户目录路径.临时文件夹等.在 Qt 中实现这几个功能所用的方法虽然都 ...
-
day 11 函数参数
形参与实参 形参:就是形式参数,在函数定义时,写在括号里面指定的参数就是形式参数 实参:在调用函数时传入的参数就是实参 在调用函数时就会自动的把形参与实参绑定起来,然后调用结束之后,解除绑定关系 位置 ...