数据库服务器负荷的分析与优化,如何将有问题

随着技术的不断进步,越来越的中小企业不再以租用服务器来推广公司的品牌,而如今,各大服务器厂商针对创业型企业推出了适合初期发展的服务器产品,中低端品牌的服务器占据了大部分市场,各厂商竞争激烈,服务器价格相对较低,专业的用户不难发现对于各种服务器从表面看大同小异,但内在的差别却很大。

在之前有关数据中心高可用性系列的文章中,我们讲了如何搭建Linux高可用的架构。同时也让你知道“shoot the other node in the head使出现问题的节点从集群环境中脱离,简称:STONITH)”技术对于确保在Linux集群中共享存储集成的重要性。在本篇中,你将会学到如何实施“split brain detection分脑检测,简称:SBD)”STONITH,作为一个使用共享磁盘设备的STONITH程序,可以方便的在大部分环境中进行实施。

优化较大的工作负荷会对所优化的服务器产生很大的开销。开销是由数据库引擎优化顾问在优化进程中多次调用查询优化器导致的。如果除生产服务器以外,再使用一台测试服务器,则可以消除此开销问题。

单从服务器的配置上看,这一点也是决定服务器价格的主要因素,不同的配置在价格上表现出的差异相当大,就像我们平时选购家用电脑一样,随着计算机技术的迅速发展,随之而来的便是硬件设备的不断升级,多年前的产品在当时看起来不是很成熟的时候,随着技术的突飞猛进,从而使得当下的产品日趋成熟,当然随之而来的便是其低成本的采用,导致产品的整体价格有所下降,促使越来越多的企业能够接受技术进步给他们带来的优势。

目前针对STONITH,有许多不同的程序可被使用。SBD STONITH的优势在于部署的方便性和可靠性。唯一的要求是Linux环境中必须有共享存储。典型意义上说,就是需要一个“光纤存储网络——storage area network”英文简称:SAN)。如果你没有一个SAN网络,你也可以使用Linux的iSCSI功能来搭建,有关iSCSI的介绍将会在之后的系列中详细阐述。

  数据库引擎优化顾问如何使用测试服务器

当然,选择服务器的基本问题如同选购电脑一样,首先要从配置上下手,从配置上去选购一台中小企业服务器都要考虑以下几点:

在SBD STONITH里,Linux集群的节点们使用心跳机制来保持互相之间的信息更新。如果集群中的一个节点发生错误,一条有关此节点的错误记录就会被写下并发送到共享的存储设备。当文件系统资源安全的切换到Linux集群的另一个节点上之后,此节点就必须接受这条错误信息并自己关闭自己。

使用测试服务器的传统方法是将所有数据从生产服务器复制到测试服务器,优化测试服务器,然后在生产服务器上实现建议。此过程可以消除对生产服务器的性能影响,但这不是最佳解决方案。例如,将大量数据从生产服务器复制到测试服务器可能消耗大量时间和资源。此外,测试服务器硬件很少像生产服务器中部署的硬件那样功能强大。优化进程依赖于查询优化器,而它生成的建议部分依赖于基础硬件。如果测试服务器硬件和生产服务器硬件不相同,数据库引擎优化顾问建议的质量就会降低。

应用与预算

SBD STONITH是一个简单但有效的方法用来确保在Linux集群环境中数据和其他节点的集成,但是要实现这个功能的前提条件是必须能够进入SAN环境。接下去的步骤描述了如何搭建SBD STONITH环境。

若要避免出现这些问题,数据库引擎优化顾问将通过把大部分优化负荷转移到测试服务器,优化生产服务器上的数据库。它通过使用生产服务器硬件配置信息,而不是真正地将数据从生产服务器复制到测试服务器,来执行该操作。数据库引擎优化顾问不会将实际数据从生产服务器复制到测试服务器中。它仅复制元数据和必要的统计信息。

首先考虑应用与预算,大部分中小企业正处于业务的发展阶段,他们需要面对的是亟需解决的IT问题,而不是一步到位去购置一台高端服务器。目前由于处理器技术,尤其是多核技术的迅速发展,很多中小企业的内部应用仅仅依靠单路服务器就可以完全解决;当然,在价格相差不大的情况下,几乎可以解决中小企业面对的绝大部分问题的双路四核服务器也是个不错的选择。

1.首先,你必须创建一个小的逻辑单位LUN)卷。理论上1MB就足够了,但是为了安全起见,最好的办法是创建一个至少一柱一般为8MB)的SBD。接下来,你需要找到这个LUN设备独一无二的设备名称,因为这个将会被集群中的节点们看到。典型意义上来说,你会使用multipath –l命令在Linux集群中的一个节点来找出这个LUN所使用的独一无二的设备名称。

下列步骤概要介绍了用于在测试服务器上优化生产数据库的过程:

当初步确认服务器路数之后,面对足够丰富的不同处理器配置时,中小企业业主也会看的眼花缭乱,其实在中小企业的应用规模而言,只要不选择昂贵的顶级处理器就好。这是因为,目前的处理器性能主要依靠处理器本身的架构技术来体现,高频、高发热量又十分昂贵的顶级处理器并不是个好选择在硬盘和硬盘控制器上也要注意。

2.现在作为root用户,从众多节点中的一个命令行开始,你需要标记你刚刚创建的SBD设备的LUN,使用sbd -d <devicename> create 命令。这条命令会将SBD的信息写入设备,所以不管你使用哪个设备名称,只要你能从那个节点看到这个设备就行。确保当使用此设备工作时,你工作的设备名称不会改变。那就意味着你应该使用/dev/disk/by-id 在一开始来命名设备名称。虽然这些名字又长又丑,但是至少他们不会改变。你可以使用ls-l 命令来查阅“简单的”设备名称。所以定义这个设备/dev/disk/by-id/scsi-149455400000000000000000003000000250600000f000000 作为SBD STONITH 设备, 使用sbd -d /dev//disk/by-id/scsi-149455400000000000000000003000000250600000f000000 来创建。

  1. 确保两台服务器上都存在要使用测试服务器的用户。

对中小企业说,SATA(串行ATA)是目前的主流。SATA相对于较早之前传统的并行ATA硬盘相比具有非常明显的优势:最明显的就是数据线从80 pin变成了7 pin,而且IDE线的长度不能超过0.4米,而SATA线可以长达1米,安装更方便,利于机箱散热。除此之外,它还有很多优点:

4.此时,你可以使用sbd -d /dev/disk/by-id/scsi-149455400000000000000000003000000250600000f000000 dump 命令来查看哪些被写入了此设备。这给予了你类似下文的一份输出

开始之前,请确保两台服务器上都存在要使用测试服务器来优化生产服务器上的数据库的用户。这就需要您在测试服务器上创建用户及其登录帐户。如果您在两台计算机上都是 sysadmin 固定服务器角色成员,将不需要执行此步骤。

热拔插

Listing: Requesting current SBD information using sbd -d <device> dump

  1. 优化测试服务器上的工作负荷。

目前市场的产品大部分都支持热拔插,热拔插对于普通家庭用户来说可能作用不大,但对于服务器却是至关重要。事实上,SATA在低端服务器应用上取得的成功,远比在普通家庭应用中的影响力大。

xen1:/dev/disk/by-id # sbd -d /dev/disk/by-id/scsi-149455400000000000000000003000000250600000f000000 dump

若要优化测试服务器上的工作负荷,必须通过 dta 命令行实用工具使用 XML 输入文件。在 XML 输入文件中,在 TuningOptions 父元素下使用 TestServer 子元素指定测试服务器的名称,并为其他子元素指定值。

以往由于性能可靠性优秀而著称的SCSI技术已经被SAS所替代。SAS(Serial Attached SCSI)即串行连接SCSI,是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等,并且提供与SATA硬盘的兼容性。

Header version  : 2

在优化进程中,数据库引擎优化顾问将在测试服务器上创建 Shell 数据库。若要创建此 Shell 数据库并对其进行优化,数据库引擎优化顾问需要在下列情况下调用生产服务器:

本文由ca88手机版登录发布于亚洲城官网,转载请注明出处:数据库服务器负荷的分析与优化,如何将有问题

TAG标签: ca88手机版登录
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。