一、背景
熟悉MySQL (8.0.33) 的安装部署,并解决安装过程中所碰到的问题。
二、目标
完成MySQL (8.0.33) 的安装部署,解决安装过程中所碰到的问题。同时,能够更快的熟悉相关业务。
三、过程
3.1 操作系统初始化
具体内容可见,区域化数据库操作系统初始化
1)检查和设置网卡 bond 情况
2)检查磁盘大小和自动挂载情况
3)检查和设置硬盘的调度算法,关闭numa、关闭透明大页
设置硬盘的调度算法为deadline:
分读队列和写队列,读队列的优先级要高于写;
读两个队列,写两个队列,一个按逻辑块地址( block address LBA)顺序排序,实行C-SCAN算法,另一个是FCFS;
每批任务下来,要看FCFS队列里是否有年龄大于阈值的请求(默认是500ms),如果有,那么下一批IO操作就让含有这个请求的LBA队列来执行。
关闭numa的原因:
NUMA(Non-uniform Memory Access)是一种特殊的多处理器架构,它是将系统内存分割成不同的区域,并允许这些内存区域访问速度不同。NUMA可以大大提高主机的内存吞吐量,但如果不适当地使用,又会降低系统的性能。例如:NUMA系统的内存分配并不均衡,尤其是当一个CPU的内存被完全占用的时候。这种情况之下,它会交换出第一个CPU上的部分内存,即便另外的CPU可能仍然有很多内存空闲。 很明显,交换是我们应当竭力避免的,这可能导致交换期间整个数据库的操作被阻塞,进而影响整个业务。
关闭透明大页 (Transparent Huge Pages, THP) 的原因:
THP 是内核的一个重要特征,且持续在演进,其目的是通过将页表项映射更大的内存,来减少 Page Fault,从而提升 TLB (Translation Lookaside Buffer,由存储器管理单元用于改进虚拟地址到物理地址的转译速度)的命中率。结合存储器层次结构设计原理可知,当程序的访存局部性较好时,THP 将带来性能提升,反之 THP 的优势不仅丧失,还有可能化身为恶魔,引起系统的不稳定:
在 RAC 环境下,透明巨页(THP)会导致异常节点重启和性能问题;
在单机环境中,透明巨页(THP)也会导致一些异常的性能问题;
4)检查 yum 源是否可用并安装常用依赖包(区域化无外网的情况下不做要求)
5)检查防火墙状态,如果开启的请修改为永久关闭
6)检查 selinux设置,如果不是 disabled 需要设置为 disabled
Linux永久关闭防火墙的原因:Linux防火墙有两个,firewalld和selinux
防火墙firewalld作用:保护互联网对服务器的影响
selinux的作用:保护服务器内部程序对内部文件的访问
然而,当我们安装应用程序时,防火墙会把它当作是“敌人”,阻止我们使用软件,每当打开linux,防火墙会重启,所以将其永久关闭。
7)设置操作系统配置参数
vm.swappiness:控制换出运行时内存的相对权重,值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。
对于Oracle一般设置为10;
对于MySQL一般设置为1,尽可能不用swap分区。
fs.aio-max-nr:系统上允许同时进行的最大异步IO请求个数。
fs.file-max:表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的。
net.ipv4.ip_local_port_range:允许系统打开的端口范围,即客户端ip对同一个ip+port可以创建的连接数。
net.core.rmem_default:这个参数表示内核套接字接受缓存区默认的大小。
net.core.rmem_max: 这个参数表示内核套接字接受缓存区的最大大小。
net.core.wmem_default: 这个参数表示内核套接字发送缓存区默认的大小。
net.core.wmem_max: 这个参数表示内核套接字发送缓存区的最大大小。
net.core.somaxconn:Linux中的一个内核(kernel)参数,表示socket监听(listen)的backlog上限。
kernel.sem:信号量参数设置
8) 设置文件打开参数的限制
9)检查和设置时区
原因:对于部署在海外的Linux服务器来说,拿到的机器时区和本地并不一样,导致运行在上面的应用也面临时区问题。所以有必要修改系统本地时区。
10)检查和配置时间同步
11)检查和设置语言为英文
12)检查和设置 swap
13) 检查和订正hostname
14)重启服务器检查并确保所有配置都生效
3.2 安装依赖包
yum -y install ncurses-devel cmake libaio-devel openssl-devel
yum install -y cmake gcc gcc-c&