第一、MySQL适合的操作系统:
MySQL适合的操作系统:
Windows FreeBSD Solaris Linux
FreeBSD:是一种类
UNIX操作系统
,是由经过
BSD
、386BSD和4.4BSD发展而来的
Unix
的一个重要分支。FreeBSD 为不同架构的计算机系统提供了不同程度的支持。并且一些原来BSD UNIX的开发者后来转到FreeBSD的开发,使得FreeBSD在内部结构和系统API上和UNIX有很大的兼容性。(
要选用 最新的版本
)
Solaris:是
Sun Microsystems
研发的计算机操作系统。它被认为是
UNIX操作系统
的衍生版本之一。 目前Solaris属于混合
开源软件
。2005年6月14日,Sun公司将正在开发中的Solaris 11的源代码以
CDDL
许可开放,这一开放版本就是
OpenSolaris
。(
它是以稳定来著称,但是应用型不好!
)
Linux:是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。(
选择liunx版本要和服务器应用程序所设计的应用版本相对应,Ubuntu的图形界面比它的服务器性能要好!
)
第二、CentOS系统参数的优化
2.1、内核相关参数(/etc/sysctl.conf)
2.1.1、这个参数是每个端口最大的接听队列的长度(一般会修改成2048或更大的值)
net.core.somaxconn = 65535
2.1.2、每个网路接收数据包的速率比内核处理包快的时候,允许发送的最大数目
net.core.netdev_max_backlog = 65535
2.1.3、表示还未连接的请求可保存队列中的最大数目,超过会被抛弃
net.ipv4.tcp_max_syn_backlog = 65535
2.1.4、用来控制tcp处理等待状态的时间
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
2.1.5、![](https://img-blog.csdn.net/20170104113631856?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzYwMzA0MTI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
2.1.6、以下三个参数表示:减少失效链接tcp所占用资源的数量,加快回收的效率
net.ipv4.tcp_keepalive_time = 120 #表示tcp发送keeplive消息的间隔(单位:s)
net.ipv4.tcp_keepalive_intvl = 30 #用于探测消息未获得相应时重发的时间间隔(单位:s)
net.ipv4.tcp_keepalive_probes = 3 #在tcp失效前最多可以发送多少个keeplive消息(对于频繁的系统改小点比较好)
2.1.7、Linux内核参数中最重要的参数之一,用于 定义单个共享内存段的最大值
kernel.shmmax = 4294967295
注意:
1、这个参数应该设置足够大,以便能在一个共享内存段下容纳整个Innodb缓存池的大小;
2、这个值的大小对于64位linux系统,可能取最大值位物理内存值-1 byte,建议值为大于物理内存的一半,一半去 Innodb缓着冲池的大小即可;
vm.swappiness = 0 告诉Liunx内核除非虚拟内存完全满了,否则不要使用交换区;
这个参数当内存不足时会对性能产生比较明显的影响
Linux系统内存交换区:在liunx系统安装时都会有一个特殊的磁盘分区,称之为系统交换分区;
作用:当操作系统因为没有足够的内存时就会将一些虚拟内存写到磁盘交换区中,这样就会发生内存交换;
交换分区会对MySQL有一定的影响,所以说在MySQL服务器 所在的Linux系统上完全禁用交换分区;但是这样会给带来的风险:
1、降低了操作系统的性能;
2、当MySQL需要很大的内存时:容易造成内存溢出,崩溃,或都被操作系统Kill掉;
2.2、增加资源限制(/etc/security/limits.conf)
这个文件实际是 Linx PAM也就是插入式认证模块的配置文件。
配置打开文件数的限制(加到limits文件的末尾就行):
* soft nofile 65535
* hard nofile 65535