ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MYSQL优化之主机层面优化

2022-02-27 14:32:41  阅读:213  来源: 互联网

标签:grub 主机 rd etc numa conf MYSQL 优化 swap


一、安装前系统环境检测

1、Selinux和系统防火墙iptables需要关闭

要把selinux设置成disable,设置完成后需重启系统

cat /etc/sysconfig/selinux

 

 查看iptables当前状态与关闭过程

chkconfig  --list

chkconfig iptables off

chkconfig --list

2、I/O调度系统默认是cfq模式,这里强烈建议用deadline模式

查看I/O调度文件

 

 修改I/O调度器,需要在/etc/grub.conf 中加入elevator=deadline,保证永久生效

 

 3、swap分区的设置

swappiness 值的大小对如何使用swap分区有着很大的影响。

它有0和100两个极限值,0代表最大限度地使用物理内存,然后才使用swap分区,这种行为可能导致系统内存溢出,出现OOM的错误

从而导致MySQL被意外kill掉,所以需要谨慎设置。100则是积极的使用swap分区,并且把内存上面的数据及时搬到swap分区里

cat /proc/sys/vm/swappiness

 

 4、文件系统的选择

建议使用xfs文件系,相比ext4,它更方便管理,支持动态扩容,删除文件也方便

5、操作系统的限制

先来查看一下当前操作系统的限制情况

 

 这里有2个重要的参数,一个叫openfiles,另一个叫max user processes. 如果openfiles设置不合理

当前服务器端连接过多或者表过多时,,会出现文件句柄超限的错误“too many open files”

max user processes 参数的用途是,有时候我们可能会跑多实例,但是发现创建不了新的连接报出“

resource temporarily unavailable”的错误,表示没有足够的资源

防止以上2种报错情况,我们可以系统系统软件的现在/etc/security/limits.conf

 

 

numa需要关闭

   简单来讲关闭numa功能,可以更好地分配内存,不需要采用swap 的方式来获取内存,因为有经验的系统管理

员和DBA都知道使用swap导致的数据库性能下降有多么的恶心。

 

Centos 6

在/etc/grub.conf    在kernel 添加numa=off 就行了

二、Linux OS层面禁用NUMA 1、修改 grub.conf
# vi /boot/grub/grub.conf
#/* Copyright 2010, Oracle. All rights reserved. */
 
default=0
timeout=5
hiddenmenu
foreground=000000
background=ffffff
splashimage=(hd0,0)/boot/grub/oracle.xpm.gz
 
title Trying_C0D0_as_HD0
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-128.1.16.0.1.el5 root=LABEL=DBSYS ro bootarea=dbsys rhgb quiet console=ttyS0,115200n8 console=tty1 crashkernel=128M@16M numa=off
initrd /boot/initrd-2.6.18-128.1.16.0.1.el5.img

 

关闭NUMA建议方案:

1.在BIOS设置层面关闭NUMA,缺点是需要重启OS。
2.修改GRUB配置文件,缺点也是要重启OS。
在/etc/grub.conf的kernel行最后添加numa=off

如下所示:
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/VolGroup-root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=VolGroup/root rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto rd_LVM_LV=VolGroup/swap rhgb crashkernel=auto quiet KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM  numa=off

3.升级MySQL版本到5.6.27及以后,新增了参数 innodb_numa_interleave,只需要重启mysqld实例,无需重启OS,推荐此方案。
配置 innodb_numa_interleave 参数,将其设置为ON

标签:grub,主机,rd,etc,numa,conf,MYSQL,优化,swap
来源: https://www.cnblogs.com/harda/p/15942225.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有