MySQL适合的操作系统
- Windows
- 注意大小写,window大小写不敏感
- Linux
- FreeBS
- Solaris
CentOS系统参数优化
内核相关参数(/etc/sysctl.conf)
可以下内容直接写入文件
网络参数
1 | #决定每个端口监听队列的长度 |
内存参数(/etc/sysctl.conf)
1 | # Linux内核参数最重要的参数之一,用于定义单个共享内存段的最大值 |
资源限制(/etc/security/limit.conf)
limit.conf是Linux PAM 是插入式认证模块的配置文件
1 | # 打开文件数量 |
磁盘调度策略(/sys/block/devname/queue/scheduler)
使用下面的命令进行查看当前磁盘的调度策略
1 | cat /sys/block/sda/queue/scheduler |
noop(电梯式调度策略)
当一个新请求到来,将请求合并到最久的请求之后,以此来保证请求同一介质。
NOOP倾向饿死读而利于写,因此NOOP对闪存设备.RAM以及嵌入式系统是最好的选择.
deadline(截止时间调度策略)
确保一个截至时间内服务请求,这个截至时间可调整,默认读期限短于写期限,这样可以避免写操作因为不能读取而饿死的现象。
deadline对于数据库类是最好的选择.
anticipatory(预料I/O调度策略)
和deadline类似,在最后一次读操作后要等待6s,再进行其他I/O请求调度。适合写入较多的环境,比如文件服务器,它对数据库环境表现很差
扩展
内存交换区
在安装Linux系统时候会有个特殊的磁盘分区,叫系统交换分区
用free-m
命令查看可以看到 swap 就是交换分区
当系统没有足够内存时就会将虚拟内存写到磁盘交换区中进行内存交换
mysql优化上说是希望可以禁用,
禁用的负面作用
- 降低操作系统性能
- 容易造成内存溢出,崩溃或者都被系统kill掉
文件系统
Windows
- FAT
- NTFS*
Linux
- EXT3
- EXT4
- XFS*
EXT3/4 系统的文件挂载参数(/etc/fstab)
data = writeback | ordered | journal
- writeback (最快)
- ordered(慢,安全)
- journal(没必要,最慢)
禁止纪录访问文件的时间和读取目录的时间
节省写操作
noatime,nodiratime
1 | # 完整的配置 |