mysql 环境部署规范

一.硬件
1.从bios设置将cpu和内存 调整为maximum performance模式

2.将c1e,c states设置为disable
3.关闭cpu numa特性(只针对mysql 服务器


*由于mysql的单进程多线程特性,因此如果使用numa特性可能会导致memory不能充分被利用。5.6.27版本以后,可以通过修改numa相关参数来避免这个问题。
numa 关闭方法:


3.传统存储模式, io 阵列卡
条带化 strip element size 
关闭预读模式 read policy
写策略  write back
强制使用 write back 


二.os层面
1.将文件系统格式改为xfs格式
2.io 调度器
dmesg | grep -i sche
vim /etc/grub.conf
cat /sys/block/sda/queue/scheduler

3.swappiness 设置为0,尽可能不使用swap
sysctl -a | grep -i swap

4.dirty(os层面的脏页 )
sysctl -a |grep dirty
dirty_background_ratio = 5  #当脏页超过5% 启动后台进程开始刷脏页
dirty_ratio=10  #如果脏页超过10%,则将刷脏页后台进程优先级提升为最高,此时服务器表现为hang住。

三.mysql 部署规范
1.参数文件
[mysql]
prompt="\u@mysqldb \R:\m:\s [\d]> "
pager="less -i -n -S"
no-auto-rehash    #连接后,不读取所有的mysql表
tee="/tmp/query.log"  #将查询结果输出到日志中

[mysqld]
interactive_timeout = 600 
wait_timeout = 600
tmpdir = 设置专用目录,防止full
slave_load_tmpdir =  设置专用目录,防止full
character-set-server = utf8mb4 
open_files_limit = 65535
max_connections = 512  #最大连接数
max_connect_errors = 1000000  #最大错误连接数,超过该值,host将被屏蔽,因此建议设置较大值。
log-output=file
slow_query_log=1
slow_query_log_file=slow.log
log-error=error.log
log_warnings=2
long_query_time=0.1
log-slow-admin-statements=0
log-queries-now-using-indexes=0
log-slow-slave-statements=0
back_log=1024  # back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。也就是说,如果MySql的连接数达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。
table_open_cache = 2048
table_definition_cache = 2048
max_heap_table_size = 64m
tmp_table_size = 64m
sort_buffer_size = 2~4m
read_buffer_size = 2~4m
log-slave-updates =1 #表示slave上也记录一份binlog
relay_log_recovery = 1 
innodb_buffer_pool_size = 物理内存60%
innodb_log_buffer_size = 32M
innodb_log_file_size = 2G
innodb_log_files_in_group = 2
innodb_max_dirty_pages_pct = 50
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout
innodb_status_file=1
# 根据您的服务器IOPS能力适当调整
# 一般配普通SSD盘的话,可以调整到 10000 - 20000
# 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_flush_method = O_DIRECT  #绕过os cache直接写入disk

三种模式写数据方式具体如下:
fdatasync模式:写数据时,write这一步并不需要真正写到磁盘才算完成(可能写入到操作系统buffer中就会返回完成),真正完成是flush操作,buffer交给操作系统去flush,并且文件的元数据信息也都需要更新到磁盘。
O_DSYNC模式:写日志操作是在write这步完成,而数据文件的写入是在flush这步通过fsync完成
O_DIRECT模式:数据文件的写入操作是直接从mysql innodb buffer到磁盘的,并不用通过操作系统的缓冲,而真正的完成也是在flush这步,日志还是要经过OS缓冲

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15412087/viewspace-2157523/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15412087/viewspace-2157523/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值