由参数 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