CN103634344A - 一种单机运行多MySQL数据库实例的方法和设备 - Google Patents

一种单机运行多MySQL数据库实例的方法和设备 Download PDF

Info

Publication number
CN103634344A
CN103634344A CN201210301832.8A CN201210301832A CN103634344A CN 103634344 A CN103634344 A CN 103634344A CN 201210301832 A CN201210301832 A CN 201210301832A CN 103634344 A CN103634344 A CN 103634344A
Authority
CN
China
Prior art keywords
mysql database
cpu node
cpu
database instance
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201210301832.8A
Other languages
English (en)
Inventor
张瑞
彭立勋
李春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201210301832.8A priority Critical patent/CN103634344A/zh
Publication of CN103634344A publication Critical patent/CN103634344A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明实施例公开了一种单机运行多MySQL数据库实例的方法,通过应用本发明实施例所提出的技术方案,将多个MySQL数据库实例部署在同一台包含多个CPU节点的主机(服务器)上,使每个MySQL数据库实例只绑定在一个CPU节点上,且各CPU节点只在本地内存中为自身所绑定的MySQL数据库实例分配内存空间,从而,将各CPU节点上的MySQL数据库实例进行物理隔离,避免了在内存分配不均衡时导致swap的情况,克服了MySQL数据库无法充分发挥NUMA架构服务器的性能,服务器CPU资源利用率低的问题,充分提升了服务器资源利用率,节约了系统资源和电力资源。

Description

一种单机运行多MySQL数据库实例的方法和设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种单机运行多MySQL数据库实例的方法和设备。
背景技术
NUMA(Non Uniform MemoryAccess,非对称式内存访问)技术可以使众多服务器像单一系统那样运转,同时保留小系统便于编程和管理的优点,是介于SMP(Symmetric Multi-Processor,多处理器结构)和MPP(Massive ParallelProcessing,海量并行处理结构)之间的一种服务器架构,将系统分为多个处理节点,内存分为本地内存和远程内存。
基于电子商务应用对内存访问提出的更高的要求,NUMA也向复杂的结构设计提出了挑战。
目前的服务器都采用NUMA架构,即非对称式内存访问,如图1所示,为现有技术中的Intel5600的结构示意图。
在该结构中,服务器有两个CPU(Central Processing Unit,中央处理器)节点,每个CPU节点都有各自的本地内存资源,两个CPU节点之间通过高速互联总线连接起来,在图1所示的架构中,QPI(Quick Path Interconnect,快速通道互联)即为上述高速互联总线。
在NUMA架构中,CPU访问本地内存和远程内存的代价是不一样的,CPU可以直接访问本地内存,而访问远程内存需要通过CPU之间的高速互联总线,导致访问远程内存的延迟比访问本地内存大,所以,系统会优先选择在本地内存中分配空间。
如果要充分利用NUMA的特性,应用程序必须支持NUMA,MySQL(一种关系型数据库管理系统)对于NUMA的支持并不好,不仅无法充分利用CPU的资源,甚至会出现内存分配不均衡,导致数据存储在swap空间(交换空间)的情况出现,严重影响性能。
在SSD(Solid State Disk,固态硬盘)出现之前,服务器只配置了普通磁盘,对于数据库应用来说,IO(Input/Output,输入/输出)是瓶颈,而不是CPU,所以无法充分利用CPU的资源,当SSD存储技术出现以后,单块SSD可以达到50000IOPS(Input/Output Operations Per Second,每秒进行读写操作的次数)的能力,IO不再是系统的瓶颈。
随着CPU技术的不断发展,一颗CPU上集成了越来越多的处理核心,而一台服务器有很多CPU,服务器的处理能力越来越强。比如:Intel5600系列CPU,每个CPU有4个核心,每台服务器有两颗CPU,加上超线程技术,操作系统可以看到16个CPU。
在实现本申请的过程中,发明人发现现有技术至少存在如下问题:
MySQL对于多核CPU系统的利用率并不高,CPU计算能力的增强并不能带来MySQL性能的提升。
MySQL采用单一进程模式,用户连接都是线程分配,当MySQL进程被分配到某个CPU节点上时,NUMA的内存分配策略会尽量在本地节点中分配内存,这样就导致了内存分配不均衡的情况出现。比如:一个CPU节点还有空闲内存,但是MySQL所在的CPU节点内存已经使用完,导致出现swap现象,严重影响性能。过去,解决这个问题的方案是关闭硬件NUMA特性,这是不得已而为之的解决方案。
综上所述,现有的技术方案中缺少解决MySQL对多核CPU利用率不高,以及不支持NUMA架构的问题的方案。
发明内容
本申请的目的在于提供一种单机运行多MySQL数据库实例的方法和设备,以解决现有的技术方案中MySQL对多核CPU利用率不高,以及不支持NUMA架构的问题。
为了达到上述目的,本申请实施例提供了一种单机运行多MySQL数据库实例的方法,应用在支持NUMA架构的包含多个CPU节点的服务器上,包括以下步骤:
将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上;
分别将各MySQL数据库实例所对应的内存分配策略配置为本地内存分配;
分别通过各CPU节点运行所绑定的各MySQL数据库实例,其中,各CPU节点只在本地内存中,为自身所绑定的MySQL数据库实例分配内存空间。
优选的,所述将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上之前,还包括:
获取所述服务器的NUMA信息,至少确定所述服务器所包含的CPU节点的数量,以及各CPU节点所对应的本地内存信息。
优选的,所述获取所述服务器的NUMA信息,具体为:
向所述服务器发送numactl-hardware命令,获取所述服务器的NUMA信息。
优选的,所述将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上,具体为:
根据所述服务器所包含的CPU节点的数量,确定所述服务器可以绑定MySQL数据库实例的CPU节点;
根据各CPU节点所对应的本地内存信息,选择各MySQL数据库实例所需要绑定的CPU节点;
将各MySQL数据库实例分别绑定在所选择的不同的CPU节点上。
优选的,所述将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上,具体为:
向所述服务器分别发送对应于各MySQL数据库实例的numactl-cpubind命令,将各MySQL数据库实例分别绑定在相应的CPU节点上。
优选的,所述方法还包括:
设置不同的MySQL数据库实例分别使用不同的存储设备;和/或,
设置不同的MySQL数据库实例分别使用不同的IP地址。
优选的,所述存储设备,具体为SSD。
另一方面,本申请实施例还提供了一种管理设备,应用在包括至少一个支持NUMA架构的包含多个CPU节点的服务器的应用场景中,包括:
绑定模块,用于将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上;
配置模块,用于分别将所述绑定模块所绑定的各MySQL数据库实例所对应的内存分配策略配置为本地内存分配;
处理模块,用于分别通过各CPU节点运行所述绑定模块所绑定的各MySQL数据库实例,其中,根据所述配置模块所配置的内存分配策略,各CPU节点只在本地内存中为自身所绑定的MySQL数据库实例分配内存空间。
优选的,所述管理设备还包括:
获取模块,用于获取所述服务器的NUMA信息,至少确定所述服务器所包含的CPU节点的数量,以及各CPU节点所对应的本地内存信息。
优选的,所述绑定模块,具体用于:
根据所述获取模块所确定的所述服务器所包含的CPU节点的数量,确定所述服务器可以绑定MySQL数据库实例的CPU节点;
根据所述获取模块所确定的各CPU节点所对应的本地内存信息,选择各MySQL数据库实例所需要绑定的CPU节点;
将各MySQL数据库实例分别绑定在所选择的不同的CPU节点上。
优选的,所述配置模块,还用于:
设置不同的MySQL数据库实例分别使用不同的存储设备;和/或,
设置不同的MySQL数据库实例分别使用不同的IP地址。
与现有技术相比,本申请实施例所提出的技术方案具有以下优点:
通过应用本申请实施例所提出的技术方案,将多个MySQL数据库实例部署在同一台包含多个CPU节点的主机(服务器)上,使每个MySQL数据库实例只绑定在一个CPU节点上,且各CPU节点只在本地内存中为自身所绑定的MySQL数据库实例分配内存空间,从而,将各CPU节点上的MySQL数据库实例进行物理隔离,避免了在内存分配不均衡时导致内存数据交换(swap)的情况,克服了MySQL数据库无法充分发挥NUMA架构服务器的性能,服务器CPU资源利用率低的问题,充分提升了服务器资源利用率,节约了系统资源和电力资源。
附图说明
为了更清楚地说明本申请实施例或现有技术的技术方案,下面将对本申请实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的Intel5600的结构示意图;
图2为本申请实施例提供的一种单机运行多MySQL数据库实例的方法的流程示意图;
图3为本申请实施例提供的一种应用单机运行多MySQL数据库实例的方法的具体应用场景的示意图;
图4为本申请实施例提供的一种管理设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图2所示,为本申请实施例所提供的一种单机运行多MySQL数据库实例的方法的流程示意图,该方法应用在支持NUMA架构的包含多个CPU节点的服务器上,具体包括以下步骤:
步骤S201、将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上。
在本步骤之前,为了准确的确定服务器当前的资源状态,还可以进行相应的硬件信息获取过程,从而获取所述服务器的NUMA信息。
在此过程中,至少确定所述服务器所包含的CPU节点的数量,以及各CPU节点所对应的本地内存信息,以此作为进行MySQL数据库实例绑定的依据。
在具体的处理场景中,上述的硬件信息获取过程的具体实现方式可以为:
向所述服务器发送numactl-hardware命令,获取所述服务器的NUMA信息。
需要说明的是,上述的numactl-hardware命令具体为Linux操作系统的命令,这样操作的前提是以该命令对NUMA架构的支持为前提的,在实际应用中,也可以采用其他的命令形式,或者直接根据已知(或预先定义)的硬件信息直接进行MySQL数据库实例的绑定,这样的变化并不影响本申请的保护范围。
在获取到相应的硬件信息的基础上,本步骤中的具体绑定过程说明如下:
(1)根据所述服务器所包含的CPU节点的数量,确定所述服务器可以绑定MySQL数据库实例的CPU节点。
为了实现对各MySQL数据库实例的隔离,需要使每个MySQL数据库实例分别独自绑定在一个CPU节点上,因此,CPU节点的数量的确定过程,实际上是对该服务器所能够绑定的MySQL数据库实例的最大数量的确定过程。
(2)根据各CPU节点所对应的本地内存信息,选择各MySQL数据库实例所需要绑定的CPU节点。
在存在相应的CPU节点的情况下,进一步需要确定这样的CPU节点是否适合进行MySQL数据库实例的绑定,即对CPU节点进行适应性筛选的过程。
具体的筛选依据为该CPU节点的本地内存情况,包括本地内存资源总量以及当前空闲本地内存资源量两个方面。
本地内存资源总量体现了该CPU节点的极限处理能力,而当前空闲本地内存资源量则体现了该CPU节点当前的实际处理能力,结合这两点信息,可以确定该CPU节点是否满足MySQL数据库实例对于处理资源的要求,如果不能满足,则表示该CPU节点不能保证MySQL数据库实例的正常运行,因此,该CPU节点不能绑定MySQL数据库实例。
(3)将各MySQL数据库实例分别绑定在所选择的不同的CPU节点上。
在完成了上述的处理过程后,最终确定了可以进行MySQL数据库实例绑定的CPU节点,从而,可以根据相应的选择规则为各MySQL数据库实例选择相应的CPU节点进行绑定。
在具体的处理场景中,这样的选择规则可以是随机的,也可以是按照一定顺序的,这样的变化并不影响本申请的保护范围。
具体的,上述的绑定过程可以通过向所述服务器分别发送对应于各MySQL数据库实例的numactl-cpubind命令来实现,从而,将各MySQL数据库实例分别绑定在相应的CPU节点上。
需要说明的是,上述的numactl-cpubind命令具体为Linux操作系统的命令,这样操作的前提是以该命令对NUMA架构的支持为前提的,在实际应用中,也可以采用其他的命令形式进行MySQL数据库实例的绑定,这样的变化并不影响本申请的保护范围。
步骤S202、分别将各MySQL数据库实例所对应的内存分配策略配置为本地内存分配。
具体的,上述的配置过程同样可以Linux的numactl命令来实现,从而对NUMA架构进行支持。
在实际应用中,本地内存分配具体可以通过localalloc(本地内存分配)策略来实现上述操作,这是NUMA架构所支持的一种内存分配策略。
在实际应用中,可以将上述的CPU节点的绑定和内存分配策略的配置通过一条numactl命令来实现,例如,如果需要将当前MySQL数据库实例绑定在CPU节点0上,并配置本地内存分配的内存分配策略,则相应的numactl命令具体可以表示为numactl-cpubind=0-localalloc。
需要说明的是,上述的numactl命令具体为Linux操作系统的命令,这样操作的前提是以该命令对NUMA架构的支持为前提的,在实际应用中,也可以采用其他的命令形式进行MySQL数据库实例的内存分配策略的配置,这样的变化并不影响本中请的保护范围。
步骤S203、分别通过各CPU节点运行所绑定的各MySQL数据库实例。
其中,各CPU节点只在本地内存中,为自身所绑定的MySQL数据库实例分配内存空间。
通过上述的处理流程,实现了对于MySQL数据库实例的CPU节点绑定和内存分配策略的配置,但是,考虑到实际操作中除了CPU和内存之外,各MySQL数据库实例之间还可能存在其他共用资源,本申请实施例进一步对相应的共用资源进行隔离,从而保证MySQL数据库实例不会在NUMA架构下产生性能问题。
具体的,可以通过以下的部分或全部操作实现上述的目的:
操作A、设置不同的MySQL数据库实例分别使用不同的存储设备。
本操作的目的在于实现对各MySQL数据库实例实现IO隔离,在具体的应用场景中,服务器如果采用SSD作为具体的存储设备,则IO不再是系统性能的瓶颈,从而,使不同的MySQL数据库实例可以使用不同的存储设备,实现对于IO的物理隔离,避免了各MySQL数据库实例相互之间的影响。
操作B、设置不同的MySQL数据库实例分别使用不同的IP地址。
本操作的目的在于实现对各MySQL数据库实例实现网络隔离,在具体的应用场景中,对各MySQL数据库实例采用不同的IP地址,从而,将各MySQL数据库实例分别绑定在不同的网卡上,实现对于网络的物理隔离,避免了各MySQL数据库实例相互之间的影响。
需要进一步指出的是,上述的IO和网络是实际操作中各MySQL数据库实例之间比较常见的共用资源,如果还有其他共用资源,同样可以采用相类似的方式实现对相应的共用资源的物理隔离,从而,保证各MySQL数据库实例不会在NUMA架构下由于资源共用而产生性能问题,这样的变化同样属于本申请的保护范围。
与现有技术相比,本申请实施例所提出的技术方案具有以下优点:
通过应用本申请实施例所提出的技术方案,将多个MySQL数据库实例部署在同一台包含多个CPU节点的主机(服务器)上,使每个MySQL数据库实例只绑定在一个CPU节点上,且各CPU节点只在本地内存中为自身所绑定的MySQL数据库实例分配内存空间,从而,将各CPU节点上的MySQL数据库实例进行物理隔离,避免了在内存分配不均衡时导致swap的情况,克服了MySQL数据库无法充分发挥NUMA架构服务器的性能,服务器CPU资源利用率低的问题,充分提升了服务器资源利用率,节约了系统资源和电力资源。
为了进一步说明本申请实施例所提出的技术方案,下面结合具体的实施场景,对本申请实施例所提出的技术方案进行说明。
根据本申请实施例所给出的前述的技术方案,本申请实施例的技术思路是在单机(一个服务器)上运行多个MySQL数据库实例,并将不同的MySQL数据库实例绑定在不同的CPU节点上,相当于每个MySQL数据库实例单独使用一个CPU节点,从而,在支持NUMA架构的情况下,保证多个CPU节点之间的CPU资源和内存分配互不干扰。
具体的,操作系统提供了可以控制NUMA分配CPU和内存策略的命令,比如Linux操作系统的numactl命令,在具体的处理场景中,NUMA架构下,支持如下几种内存分配策略:
1、缺省(default):总是在本地节点分配(分配在当前进程运行的节点上)。
2、绑定(bind):强制分配到指定节点上。
3、交叉(interleave):在所有节点或者指定的节点上交织分配。
4、优先(preferred):在指定节点上分配,失败则在其他节点上分配。
显然,其中的绑定(bind)策略可以适用于本申请实施例所提出的技术方案中。
下面,基于上述的Linux命令,对本申请实施例所提出的一种单机运行多MySQL数据库实例的方法在具体应用场景中的应用过程进行说明。
假设当前的服务器包括两个CPU节点,并且有两个MySQL数据库实例需要在该服务器上运行,则相应的处理过程如下。
首先,通过numactl-hardware命令,可以获取到该服务器的NUMA信息,比如CPU节点,本地内存容量等。
例如,具体的,基于前述假设,该服务器有两个CPU节点,因此,所获取到的该服务器的NUMA信息具体如下:
numactl--hardware
available:2nodes(0-1)
node0size:32320MB
node0free:14551MB
node1size:32294MB
node1free:14802MB
node distances:
node 0  1
0: 10 20
1: 20 10
有上述信息可以看出,该服务器包括两个CPU节点,分别为CPU节点0和CPU节点1,其中,CPU节点0的本地内存总量为32320MB,当前的空闲本地内存资源为14551MB,而CPU节点1的本地内存总量为32294MB,当前的空闲本地内存资源为14802MB。
根据以上的资源状态信息,确定可以同时在该服务器上绑定两个MySQL数据库实例。
具体的绑定过程可以通过numactl-cpubind命令来完成,从而,可以将不同的MySQL数据库实例绑定在不同的CPU节点上。
进一步的,在绑定过程中,同时可以设置内存分配策略为:localalloc(本地内存分配),这样,就只允许MySQL数据库实例在所绑定的CPU的本地内存中分配空间。
具体的,对于需要绑定在CPU节点0上的MySQL数据库实例,相应的命令为numactl-cpubind=0-localalloc。
而对于需要绑定在CPU节点1上的MySQL数据库实例,相应的命令为numactl-cpubind=1-localalloc。
通过上述操作,分别将两个MySQL数据库实例绑定在了服务器的CPU节点0和CPU节点1,具体如图3所示,为本申请实施例提供的一种应用单机运行多MySQL数据库实例的方法的具体应用场景的示意图。
需要进一步说明的是,在本方案中,除了CPU和内存以外,还可能涉及到其他共用的资源,比如:IO和网络,因此,本申请实施例进一步给出以下的资源隔离策略:
(1)IO隔离策略。
服务器采用SSD作为存储,IO不再是系统瓶颈,不同的MySQL数据库实例可以使用不同的存储设备,从而,实现IO资源的物理隔离,使不同的MySQL数据库实例之间的IO资源互不影响。
(2)网络隔离策略.
使不同的MySQL数据库实例使用不同的IP地址,分别绑定在不同的网卡上,从而,实现网络资源的物理隔离,使不同的MySQL数据库实例之间的网络资源互不影响。
需要进一步指出的是,上述的IO和网络是实际操作中各MySQL数据库实例之间比较常见的共用资源,如果还有其他共用资源,同样可以采用相类似的方式实现对相应的共用资源的物理隔离,从而,保证各MySQL数据库实例不会在NUMA架构下由于资源共用而产生性能问题,这样的变化同样属于本申请的保护范围。
通过上述资源隔离方案,分别实现了CPU、本地内存、IO和网络的隔离,从而,在单机运行多个MySQL数据库实例的情况下,相互之间可以实现互不影响,大大提升了服务器的CPU利用率,解决MySQL数据库实例在NUMA架构下的性能问题。
需要进一步指出的是,本申请实施例所提出的一种替代方案是采用虚拟机实现前述技术方案,即将物理主机划分为多个虚拟机,然后分别运行多个MySQL数据库实例,从而,提升主机利用率。具体的原理与前述过程相类似,这样的技术方案同样属于本申请的保护范围。
与现有技术相比,本申请实施例所提出的技术方案具有以下优点:
通过应用本申请实施例所提出的技术方案,将多个MySQL数据库实例部署在同一台包含多个CPU节点的主机(服务器)上,使每个MySQL数据库实例只绑定在一个CPU节点上,且各CPU节点只在本地内存中为自身所绑定的MySQL数据库实例分配内存空间,从而,将各CPU节点上的MySQL数据库实例进行物理隔离,避免了在内存分配不均衡时导致swap的情况,克服了MySQL数据库无法充分发挥NUMA架构服务器的性能,服务器CPU资源利用率低的问题,充分提升了服务器资源利用率,节约了系统资源和电力资源。
另一方面,本申请实施例还提供了一种管理设备,应用在包括至少一个支持NUMA架构的包含多个CPU节点的服务器的应用场景中,其结构示意图如图4所示,包括:
绑定模块41,用于将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上;
配置模块42,用于分别将所述绑定模块41所绑定的各MySQL数据库实例所对应的内存分配策略配置为本地内存分配;
处理模块43,用于分别通过各CPU节点运行所述绑定模块41所绑定的各MySQL数据库实例,其中,根据所述配置模块42所配置的内存分配策略,各CPU节点只在本地内存中为自身所绑定的MySQL数据库实例分配内存空间。
优选的,该管理设备还包括:
获取模块44,用于获取所述服务器的NUMA信息,至少确定所述服务器所包含的CPU节点的数量,以及各CPU节点所对应的本地内存信息。
进一步的,所述绑定模块41,具体用于:
根据所述获取模块44所确定的所述服务器所包含的CPU节点的数量,确定所述服务器可以绑定MySQL数据库实例的CPU节点;
根据所述获取模块44所确定的各CPU节点所对应的本地内存信息,选择各MySQL数据库实例所需要绑定的CPU节点;
将各MySQL数据库实例分别绑定在所选择的不同的CPU节点上。
在实际的应用场景中,所述配置模块42,还用于:
设置不同的MySQL数据库实例分别使用不同的存储设备;和/或,
设置不同的MySQL数据库实例分别使用不同的IP地址。
需要说明的是,上述的管理设备可以独立于前述的至少一个支持NUMA架构的包含多个CPU节点的服务器之外,对相应的服务器进行控制,也可以直接集成在具体的服务器上,对该服务器进行具体的管理操作,其具体的物理形态的变化并不会影响本申请的保护范围。
与现有技术相比,本申请实施例所提出的技术方案具有以下优点:
通过应用本申请实施例所提出的技术方案,将多个MySQL数据库实例部署在同一台包含多个CPU节点的主机(服务器)上,使每个MySQL数据库实例只绑定在一个CPU节点上,且各CPU节点只在本地内存中为自身所绑定的MySQL数据库实例分配内存空间,从而,将各CPU节点上的MySQL数据库实例进行物理隔离,避免了在内存分配不均衡时导致swap的情况,克服了MySQL数据库无法充分发挥NUMA架构服务器的性能,服务器CPU资源利用率低的问题,充分提升了服务器资源利用率,节约了系统资源和电力资源。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本申请的保护范围。

Claims (11)

1.一种单机运行多MySQL数据库实例的方法,其特征在于,应用在支持NUMA架构的包含多个CPU节点的服务器上,包括以下步骤:
将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上;
分别将各MySQL数据库实例所对应的内存分配策略配置为本地内存分配;
分别通过各CPU节点运行所绑定的各MySQL数据库实例,其中,各CPU节点只在本地内存中,为自身所绑定的MySQL数据库实例分配内存空间。
2.如权利要求1所述的方法,其特征在于,所述将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上之前,还包括:
获取所述服务器的NUMA信息,至少确定所述服务器所包含的CPU节点的数量,以及各CPU节点所对应的本地内存信息。
3.如权利要求2所述的方法,其特征在于,所述获取所述服务器的NUMA信息,具体为:
向所述服务器发送numactl-hardware命令,获取所述服务器的NUMA信息。
4.如权利要求2所述的方法,其特征在于,所述将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上,具体为:
根据所述服务器所包含的CPU节点的数量,确定所述服务器可以绑定MySQL数据库实例的CPU节点;
根据各CPU节点所对应的本地内存信息,选择各MySQL数据库实例所需要绑定的CPU节点;
将各MySQL数据库实例分别绑定在所选择的不同的CPU节点上。
5.如权利要求1所述的方法,其特征在于,所述将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上,具体为:
向所述服务器分别发送对应于各MySQL数据库实例的numactl-cpubind命令,将各MySQL数据库实例分别绑定在相应的CPU节点上。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
设置不同的MySQL数据库实例分别使用不同的存储设备;和/或,
设置不同的MySQL数据库实例分别使用不同的IP地址。
7.如权利要求6所述的方法,其特征在于,所述存储设备,具体为SSD。
8.一种管理设备,其特征在于,应用在包括至少一个支持NUMA架构的包含多个CPU节点的服务器的应用场景中,包括:
绑定模块,用于将多个MySQL数据库实例分别绑定在所述服务器的不同的CPU节点上;
配置模块,用于分别将所述绑定模块所绑定的各MySQL数据库实例所对应的内存分配策略配置为本地内存分配;
处理模块,用于分别通过各CPU节点运行所述绑定模块所绑定的各MySQL数据库实例,其中,根据所述配置模块所配置的内存分配策略,各CPU节点只在本地内存中为自身所绑定的MySQL数据库实例分配内存空间。
9.如权利要求8所述的管理设备,其特征在于,还包括:
获取模块,用于获取所述服务器的NUMA信息,至少确定所述服务器所包含的CPU节点的数量,以及各CPU节点所对应的本地内存信息。
10.如权利要求9所述的管理设备,其特征在于,所述绑定模块,具体用于:
根据所述获取模块所确定的所述服务器所包含的CPU节点的数量,确定所述服务器可以绑定MySQL数据库实例的CPU节点;
根据所述获取模块所确定的各CPU节点所对应的本地内存信息,选择各MySQL数据库实例所需要绑定的CPU节点;
将各MySQL数据库实例分别绑定在所选择的不同的CPU节点上。
11.如权利要求8所述的管理设备,其特征在于,所述配置模块,还用于:
设置不同的MySQL数据库实例分别使用不同的存储设备;和/或,
设置不同的MySQL数据库实例分别使用不同的IP地址。
CN201210301832.8A 2012-08-23 2012-08-23 一种单机运行多MySQL数据库实例的方法和设备 Pending CN103634344A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210301832.8A CN103634344A (zh) 2012-08-23 2012-08-23 一种单机运行多MySQL数据库实例的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210301832.8A CN103634344A (zh) 2012-08-23 2012-08-23 一种单机运行多MySQL数据库实例的方法和设备

Publications (1)

Publication Number Publication Date
CN103634344A true CN103634344A (zh) 2014-03-12

Family

ID=50214969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210301832.8A Pending CN103634344A (zh) 2012-08-23 2012-08-23 一种单机运行多MySQL数据库实例的方法和设备

Country Status (1)

Country Link
CN (1) CN103634344A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484250A (zh) * 2014-11-28 2015-04-01 英业达科技有限公司 快速通道互联总线的压力测试方法和压力测试装置
CN106528488A (zh) * 2016-10-09 2017-03-22 广州艾美网络科技有限公司 一种单机内计算集群系统和控制方法
CN108829507A (zh) * 2018-03-30 2018-11-16 北京百度网讯科技有限公司 分布式数据库系统的资源隔离方法、装置和服务器

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484250A (zh) * 2014-11-28 2015-04-01 英业达科技有限公司 快速通道互联总线的压力测试方法和压力测试装置
CN104484250B (zh) * 2014-11-28 2018-04-27 英业达科技有限公司 快速通道互联总线的压力测试方法和压力测试装置
CN106528488A (zh) * 2016-10-09 2017-03-22 广州艾美网络科技有限公司 一种单机内计算集群系统和控制方法
CN106528488B (zh) * 2016-10-09 2019-07-16 广州艾美网络科技有限公司 一种单机内计算集群系统和控制方法
CN108829507A (zh) * 2018-03-30 2018-11-16 北京百度网讯科技有限公司 分布式数据库系统的资源隔离方法、装置和服务器
CN108829507B (zh) * 2018-03-30 2019-07-26 北京百度网讯科技有限公司 分布式数据库系统的资源隔离方法、装置和服务器

Similar Documents

Publication Publication Date Title
US10432464B2 (en) Creating new cloud resource instruction set architecture
US11297130B2 (en) Cluster resource management in distributed computing systems
US20150286565A1 (en) System and method for allocating memory to dissimilar memory devices using quality of service
CN105159841B (zh) 一种内存迁移方法及装置
CN102473106A (zh) 虚拟环境中的资源分配
CN103744719A (zh) 锁管理方法及系统、锁管理系统的配置方法及装置
US20170364266A1 (en) Method and device for managing input/output (i/o) of storage device
CN102316043A (zh) 端口虚拟化方法、交换机及通信系统
CN106897299A (zh) 一种数据库访问方法及装置
Ali et al. Energy efficient disaggregated servers for future data centers
US10599436B2 (en) Data processing method and apparatus, and system
US20150348177A1 (en) Managing lease transactions in distributed systems
US9069621B2 (en) Submitting operations to a shared resource based on busy-to-success ratios
CN111078353A (zh) 存储设备的操作方法及物理服务器
CN103617024B (zh) 一种并发数据处理方法、装置和系统
CN103634344A (zh) 一种单机运行多MySQL数据库实例的方法和设备
CN103049546B (zh) 一种管理、访问系统日志的方法和装置
CN106681948A (zh) 可编程逻辑器件的逻辑控制方法及装置
US9690728B1 (en) Burst buffer appliance comprising multiple virtual machines
CN105359122A (zh) 多cpu系统中的增强型数据传输
CN104598409A (zh) 一种处理输入输出请求的方法及设备
CN102508786A (zh) 优化空间利用率芯片设计方法及其芯片
CN102521155B (zh) 实现表项在物理存储器上动态分配的方法和装置
CN107515725B (zh) 一种核心网虚拟化系统共享磁盘的方法、装置及网管mano系统
CN110442445B (zh) 一种基于大规模容器云场景下计算网格的设计方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140312