MySQL基础优化

阅读更多
减少使用swap的概率
由参数 vm.swappiness 决定Linux是倾向于使用swap,还是倾向于释放文件系统cache。参数值越小可减少使用swap的概率,但不能避免Linux使用swap。建议配置为vm.swappiness = 0;
在配置文件/etc/sysctl.conf中配置。
IO调度策略设置为deadline
[root@bigdata01 ~]# echo deadline>/sys/block/sda/queue/scheduler
[root@bigdata01 ~]# cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
  • 如果要永久修改
  • vi /boot/grub/grub.conf
    kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ elevator=deadline rhgb quiet

开启O_DIRECT模式
MySQL的配置参数innodb_flush_method控制,InnoDB的buffer pool会直接绕过文件系统cache来访问磁盘,但是redo log依旧会使用文件系统cache。
调整内核参数
    net.ipv4.ip_local_port_range = 1024 65535  # 用户端口范围
    net.ipv4.tcp_max_syn_backlog = 4096
    net.ipv4.tcp_fin_timeout = 30
    fs.file-max=65535  # 系统最大文件句柄,控制的是能打开文件最大数量
用户限制参数
    * soft nproc  65535
    * hard nproc  65535
    * soft nofile 65535
    * hard nofile 65535
数据库实例参数
    thread_concurrency       # 并发线程数量个数
    sort_buffer_size         # 排序缓存
    read_buffer_size         # 顺序读取缓存
    read_rnd_buffer_size     # 随机读取缓存
    key_buffer_size          # 索引缓存
    thread_cache_size        # (1G—>8, 2G—>16, 3G—>32, >3G—>64)
调整连接层参数
    max_connections           # 最大连接数,看交易笔数设置   
    max_connect_errors        # 最大错误连接数,能大则大
    connect_timeout           # 连接超时
    max_user_connections      # 最大用户连接数
    skip-name-resolve         # 跳过域名解析
    wait_timeout              # 等待超时
    back_log                  # 可以在堆栈中的连接数量
innodb基础优化参数
default-storage-engine
innodb_buffer_pool_size  # 没有固定大小,50%测试值,看看情况再微调。但是尽量设置不要超过物理内存70%
innodb_file_per_table=(1,0)
innodb_flush_log_at_trx_commit=(0,1,2) # 1是最安全的,0是性能最高,2折中
binlog_sync
Innodb_flush_method=(O_DIRECT, fdatasync)
innodb_log_buffer_size        # 100M以下
innodb_log_file_size          # 100M 以下
innodb_log_files_in_group     # 5个成员以下,一般2-3个够用(iblogfile0-N),建议设置4个,每个1G
innodb_max_dirty_pages_pct   # 达到百分之75的时候刷写内存脏页到磁盘。
log_bin
max_binlog_cache_size         # 可以不设置
max_binlog_size               # 可以不设置
innodb_additional_mem_pool_size    #小于2G内存的机器,推荐值是20M。32G内存以上100M 

你可能感兴趣的:(MySQL基础优化)