扛得住mysql 之 操作系统
2017-01-04 14:11
423 查看
第一、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、
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
结论:把打开的文件数量增加到了65535个以保证可以打开足够多的文件句柄。
注意:这个文件的修改需要重启系统才可以生效!
2.3、磁盘调度策略(/sys/block/sda/queue/scheduler)
相关文章推荐
- MySQL视图
- mybatis-mysql操作存储过程
- mysql视图详解
- mysql 一个死锁的分析
- 用MySQL语法建 一个学生表,包括学生姓名、性别、年龄、班级信息。
- Windows下Mysql错误ERROR 1045 (28000) ERROR 1054 (42S22)以及ERROR 1820 (HY000)的解决
- 高性能MySQL(四):schema陷阱
- 高性能MySQL(四):schema陷阱
- 高性能MySQL(三):服务器性能剖析
- 触发器详解
- 高性能MySQL(二):创建高性能索引
- 高性能MySQL(二):创建高性能索引
- MySQL5.6出现”Using a password on the command line interface…”解决办法
- 百度查询复制粘贴:MySQL存储过程详解 mysql 存储过程
- MySQL编码不一致导致乱码问题总结
- 优化MySQL,还是使用缓存?
- 查看mysql主从配置的状态及修正 slave不启动问题
- mysql 日期格式化
- mysql 建立省份表 和对应的地级市表
- 查看mysql数据库及表编码格式