小蚂蚁学习mysql性能优化(9)--操作系统配置优化--mysql配置文件优化

操作系统配置优化

    数据库是基于操作系统的,目前大多数mysql都是安装在linux系统之上,所以对于操作系统的一些参数配置也会影响到mysql的性能

网络方面的配置修改    \etc\sysctal.cong 文件

#增加tcp支持的队列数

    net.ipv4.tcp_max_syn_backlog=65535

#减少断开链接时,资源回收

    net.ipv4.tcp_tw_backets    =    8000

    net.ipv4.tcp_tw_reuse    =    8000

    net.ipv4.tcp_tw_recycle    =    8000

    net.ipv4.tcp_fin_timeout    =    8000

    打开文件数的限制,可以使用    ulimit -a 查看目录的各个限制,可以修改    \etc\security\limits.conf  文件,增加以下内容

以修改打开文件数量的限制:

*soft nofile 65535

*hard nofile 65535

    除此之外最好在mysql服务器上关闭iptables,selinux等防火墙软件。(在大型网站上,最好使用硬件防火墙,软件防火墙增加开销)

mysql配置文件

    mysql可以通过启动时指定配置参数和使用配置文件两种方法进行配置,在大多数情况下配置文件位于

\etc\my.cnf    或是    \etc\mysql\my.cnf    在window系统配置文件位于c:/window/my.ini    文件

查找配置文件的顺序可以通过一下方法获得:

$ /user/sbin/mysqld -- verbose -- help | grep -A | 'Default options'

注意:如果存在多个位置存在配置文件,这后面的会覆盖前面的。

mysql配置文件——常用参数说明

innodb_buffer_pool_size

非常重要的一个参数,用于配置innodb的缓冲池,如果数据库中只有innodb表,则推荐配置量为总内存的75%,前提是本服务器只跑了数据库,如果内存小的话,就把该值调的足够大就行了。总之是希望大一点。

innodb_buffer_pool_instances

mysql5.5中新增加参数,可以控制缓冲池的个数,默认情况下只有一个缓冲池,一般分为4份,8份,可以增加并发数。

innodb_log_buffer_size

innodb.log 缓冲的大小,由于日志最长每秒钟就会刷新,所以一般不用太大,1秒即可。

innodb_flush_log_at_trx_commit

关键参数,对innodb的IO效率影响很大,默认值为1,可以取0,1,2三个值,一般建议设置为2,但如果数据安全性要求比较高,则使用默认值1。设置为2,寻求安全性和IO的一个平衡。

innodb_read_io_threads

innodb_write_io_threads

以上两个参数决定了innodb读写的IO进程数,默认为4

innodb_file_per_table

关键参数,控制innodb每一个表使用独立的表空间,默认为OFF,也就是所有表都会建立在共享表空间中。建议为ON。

innodb_stats_on_metadata

决定了mysql在什么情况下会刷新innodb表的统计信息,建议设为OFF

第三方配置工具

percon configuration wizard

https://tools.percona.com/wizard  进入配置向导



你可能感兴趣的:(mysql,PHP,mysql性能优化)