如何评估服务器处理能力

如何评估服务器处理能力,第1张

是要测试WEB服务器还是数据库服务器呢?tpcc值算法不一样的,有专门的公式的。但这个算出来的其实并不准确。可以尝试从稳定性、可靠性、高I/O需求、设备同构需求、外围设备特殊要求等方面多想办法。

很多国产数据库乘风破浪

我们正处在一个数据库技术大爆炸的时代。

这几年,NoSQL数据库、NewSQL数据库、时序数据库、图数据库、分布式数据库、超融合数据库等专业数据库技术发展势头很猛,国产数据库的表现也相当亮眼。

过去十年,是互联网发展的黄金十年。与此对应的是业务系统访问并发呈指数级上升,海量数据计算和分析需求越来越普遍,传统单机系统在业务支撑、成本、开放性等方面均面临巨大挑战,数据库垂直扩展模式难以维护等困境。

眼看着数据库性能瓶颈快要扼住发展的喉咙,摆在这些长久依赖Oracle、IBM等传统数据库的巨头们面前的,只有两条路:要么开启无限加量的PLUS模式,即更换更多更强的服务器、硬盘、内存、CPU等,要么自研能满足业务发展需求的数据库。

开拓者们的眼光一开始就聚焦在更长远的未来,他们发现即便是系统变成真正的“傻大粗”,也只是解了燃眉之急,不能从源头解决问题。

再看一眼像Oracle、IBM等传统数据库高昂的拓容价格,像阿里这样的富一代也吃不消哇!

那么,自研数据库,走起!

2010年后,云计算和开源社区兴起,国产数据库开始了弯道超车。

2019年被认为是国产数据库的元年。

这一年,众多国产数据库产品闯入了我们的视线,热度不断攀升;这一年,OceanBase登顶TPCC,并于一年后再次刷新自己的记录。

从刀耕火种到摘下Oracle在数据库领域的皇冠,国产数据库经历的是一段不被理解和不被看好的岁月。

在国外数据库先驱长期占据市场优势的情况下,国产数据库要想杀出重围,一是要付出多倍努力,二是要拿出更强的产品才能在客户面前更有底气。

当然,国产数据库发展至今,已然是百花齐放。未来,国产数据库的发展趋势相对也比较明显,即往云原生和分布式发展。

金融级分布式数据库应运而生

数字时代,数据成为各家必争之地。

在金融应用场景下,国内数据库市场于近几年开始发生变化。

随着应用层和业务层的压力加大,金融机构对分布式技术架构转型的需求应运而生。

作为软件系统的三大底层技术( *** 作系统、中间件、数据库)之一,数据库成为系统往分布式架构转型的枢纽。

不过,在早年国外传统数据库厂商盘根错节的“蚕食”下,这个核心变得又硬又难啃!

面对如今市场的需求变化,传统数据库系统呈现出一个通病:又笨重又贵。

再是,随着诸如2013年“棱镜门”事件的爆发,各界越来越重视数据安全和技术自主可控。

此外,金融机构对快速、灵活、可伸缩性、创新、敏捷等开发能力需求大大提升,出于对长期IT建设的成本考虑,自主可控更是成为他们出于自身长远发展考量的刚需。

数字化时代,金融机构的整体架构正处于往分布式、云原生、微服务等方向发展的关键时刻,数据库的选型便显得至关重要。

根据中国人民银行发布的《金融 科技 (FinTech)发展规划(2019-2021年)》,我国将有计划、分步骤地稳妥推动分布式数据库产品先行先试,形成可借鉴、能推广的典型案例和解决方案,为分布式数据库在金融领域的全面应用探明路径,确保分布式数据库在金融领域稳妥应用。

目前已有不少业界实践证明了分布式数据库应用于金融场景的可靠性。同时,金融级分布式数据库云化已经在路上。

单组件式测试工具

有一些有用的工具可以测试MySQL 和基于MySQL 的系统的性能 节将演示如何利用这些工具进行测试

mysqlslap

mysqlslap(//dev mysql /doc/refman/ /en/mysqlslap )可以模拟服务器的负载 并输出计时信息 它包含在MySQL 的发行包中 应该在MySQL 或者更新的版本中都可以使用 测试时可以执行并发连接数 并指定SQL 语句(可以在命令行上执行 也可以把SQL 语句写入到参数文件中) 如果没有指定SQL 语句 mysqlslap 会自动生成查询schema 的SELECT 语句

MySQL Benchmark Suite (sql bench)

在MySQL 的发行包中也提供了一款自己的基准测试套件 可以用于在不同数据库服务器上进行比较测试 它是单线程的 主要用于测试服务器执行查询的速度 结果会显示哪种类型的 *** 作在服务器上执行得更快

这个测试套件的主要好处是包含了大量预定义的测试 容易使用 所以可以很轻松地用于比较不同存储引擎或者不同配置的性能测试 其也可以用于高层次测试 比较两个服务器的总体性能 当然也可以只执行预定义测试的子集(例如只测试UPDATE 的性能) 这些测试大部分是CPU 密集型的 但也有些短时间的测试需要大量的磁盘I/O *** 作

这个套件的最大缺点主要有 它是单用户模式的 测试的数据集很小且用户无法使用指定的数据 并且同一个测试多次运行的结果可能会相差很大 因为是单线程且串行执行的 所以无法测试多CPU 的能力 只能用于比较单CPU 服务器的性能差别 使用这个套件测试数据库服务器还需要Perl 和BDB 的支持 相关文档请参考//dev mysql /doc/en/mysql benchmarks /

Super Smack

Super Smack(//vegan net/tony/super ack/)是一款用于MySQL 和PostgreSQL的基准测试工具 可以提供压力测试和负载生成 这是一个复杂而强大的工具 可以模拟多用户访问 可以加载测试数据到数据库 并支持使用随机数据填充测试表 测试定义在 ack 文件中 ack 文件使用一种简单的语法定义测试的客户端 表 查询等测试要素

Database Test Suite

Database Test Suite 是由开源软件开发实验室(OSDL Open Source DevelopmentLabs)设计的 发布在SourceFe 网站(//sourcefe net/projects/osdldbt/)上 这是一款类似某些工业标准测试的测试工具集 例如由事务处理性能委员会(TPC Transaction Processing Performance Council)制定的各种标准 特别值得一提的是 其中的dbt 就是一款免费的TPC C OLTP 测试工具(未认证) 之前本书作者经常使用该工具 不过现在已经使用自己研发的专用于MySQL 的测试工具替代了

Percona s TPCC MySQL Tool

我们开发了一个类似TPC C 的基准测试工具集 其中有部分是专门为MySQL 测试开发的 在评估大压力下MySQL 的一些行为时 我们经常会利用这个工具进行测试(简单的测试 一般会采用sy ench 替代) 该工具的源代码可以在//launchpad net/perconatools 下载 在源码库中有一个简单的文档说明

sy ench

sy ench(//launchpad net/sy ench)是一款多线程系统压测工具 它可以根据影响数据库服务器性能的各种因素来评估系统的性能 例如 可以用来测试文件I/O *** 作系统调度器 内存分配和传输速度 POSIX 线程 以及数据库服务器等 sy ench 支持Lua 脚本语言(// lua ) Lua 对于各种测试场景的设置可以非常灵活 sy ench 是我们非常喜欢的一种全能测试工具 支持MySQL *** 作系统和硬件的硬件测试

       返回目录 高性能MySQL

       编辑推荐

       ASP NET开发培训视频教程

数据仓库与数据挖掘培训视频教程

lishixinzhi/Article/program/MySQL/201311/29732

在OLTP(联机事务处理系统)应用中,人们普遍使用的是行式数据库。随着大数据和云计算时代的来临,列式数据库进入了人们的视线。在有效提升查询性能,把分析结果更快地提交给用户方面,列式数据库具有独特的优势。未来,行式数据库与列式数据库是和平共处,还是要经过一番拼杀,最终只能二择其一呢?

各展所长

在维基百科中,列式数据库是指数据以列相关存储架构进行存储的数据库,主要适合于大批量数据处理和即时查询。与此相对应,行式数据库是指数据以行相关存储架构进行空间分配的数据库,主要适合于小批量的数据处理,且常用于OLTP数据的处理。

“列式数据库与行式数据库之间并不是相互替代的关系,而是并存的关系。Sybase ASE就是传统的行式数据库,主要用于OLTP事务型应用。Sybase IQ是列式数据库,主要用于数据分析领域。此外,Sybase还拥有嵌入式产品,主要适合移动用户的应用。”SAP旗下的Sybase分析产品管理部总监Joydeep Das表示,“Sybase倡导的是数据库专项专用。传统的行式数据库技术并不是过时的技术。不同的技术、不同的产品可以解决用户不同的问题。”

Joydeep Das在数据库领域摸爬滚打了多年,亲身参与了Sybase IQ列式数据库的研发,既见证了行式数据库产品的辉煌,又亲历了Sybase IQ列式数据库的管理。Joydeep Das已经在Sybase工作了17年。Sybase ASE产品中有几项他的技术专利。他还是Sybase IQ列式数据库功能设计的关键人物。在Sybase内部,Joydeep Das被称为Sybase IQ列式数据库的“导演”。列式数据库已经成了Sybase大力投入的重点产品之一。Joydeep Das介绍说:“Sybase IQ列式数据库开发团队的规模已经扩大了一倍。Sybase针对Sybase IQ产品的市场投入也增加了一倍。”

Sybase最新推出的列式数据库Sybase IQ 153,再次点燃了用户对列式数据库的热情。曾参与Sybase IQ 153公测的comScore公司副总裁Scott Smith表示:“采用全共享MPP架构的Sybase IQ 153具有很高的查询性能,并允许更多服务器并行执行查询任务。”

数据库要专项专用,这一理念已经被数据库厂商普遍接受。Oracle Exadata与Oracle 11g数据库就针对不同的应用,IBM DB2与IBM Netezza也是互补关系。Gartner指出,今天,70%以上的企业级数据仓库产品实际上只能满足后台或少数部门的使用需求。从2010年开始,厂商纷纷加大力度开发新的数据仓库基础架构。

区别对待

行式数据库与列式数据库究竟有何不同?Joydeep Das从两个方面进行了比较:行式数据库通常重复进行行数据处理,而列式数据库的主要功能是进行数据查询;从性能指标看,行式数据库主要看重I/O吞吐量以及并行访问的能力,因此TPCC是其主要的性能衡量指标,而列式数据库侧重分析性能,其目标是以最快的速度将分析结果提交给用户,因此TPCH是其主要的性能衡量指标。

现在,用户普遍使用的关系型数据库管理系统的基础架构都是在上世纪80年代形成的。当时,计算机的价格高昂,而且速度较慢,因此数据库应用的驱动力主要来自减少CPU的占用,而忽视了I/O吞吐能力。如今,提高读取速度是列式数据库发展的新方向。但是列式数据库与行式数据库毕竟不同,如果用衡量行式数据库的随机读取性能指标来评价列式数据库是不恰当的。Joydeep Das打了个比方:“从山下往山上运送物资,汽车运输是一种方式,通过专用的索道运送货资是另一种方式。行式数据库好比是汽车运输,而列式数据库好比是索道运输。两种不同的方式不能用同一个指标进行衡量。”

在云计算时代,数据库必须解决两个方面的问题:第一,将数据快速吸收进来,形成数据库,Sybase的数据表加载、数据复制服务器等就可以加快数据入库的速度;第二,将数据库中的数据快速读出来,并进行分析,Sybase的CEP就可以在数据流动的过程中随时进行分析。

2009年,Sybase发布了Sybase IQ 15,主要提升了核心引擎的能力,包括数据加载和查询性能、改进的安全架构以及强大的集群管理能力等。这之后,Sybase又发布了Sybase IQ 151和Sybase IQ 152,每个版本都着力增强了高级分析功能,比如Sybase IQ 151新增了数据库内分析功能,Sybase IQ 152则进一步增强了分析支持功能,包括全文检索、联合查询以及Web分析功能。2011年,Sybase最新发布的Sybase IQ 153引入了大规模并行处理架构的PlexQ分布式查询平台,可将一个查询分解成多个部分,并将这些部分分布在多个服务器节点上,通过并行执行提高查询性能。

大数据带来新改变

IDC预测,未来5年内,列式数据库将成为数据库市场的主流。大数据时代的到来,加速了列式数据库的普及速度。

过去,数据库主要处理的是结构化数据,而在大数据时代,大量的数据是非结构化的。如何更有效地处理非结构化的数据,以及能否在一个平台上同时处理结构化和非结构化的数据对数据库厂商来说是一个严峻的挑战。为了解决非结构化数据处理这一难题,那些只具有结构化数据处理能力的数据库厂商开始大肆收购非结构化数据处理软件厂商,还有一些厂商选择与Hadoop进行合作。

非结构化数据的处理对Sybase来说不算是难事,因为Sybase的产品可以同时处理结构化和非构化的数据。Joydeep Das表示,对非结构化数据的处理并不是Sybase产品的新功能,但是对非结构化数据的搜索确实是新功能。

举例来说,保险公司对诈欺事件进行分析时,最基本的交易数据是结构化的,而为了更清楚地了解诈欺嫌疑人的信息,还要根据一些关键字进行匹配搜索,包括电子邮件信息、汇款信息等,然后再把所有结构化和非结构化的数据放在一起进行分析。此外,为了满足法规遵从的需要,用户也必须在一个完整的数据库中同时处理结构化和非结构化的数据。

Joydeep Das认为,有些应用适合采用Hadoop文件系统。采用Hadoop这种分散模式的分析产品,用户可以很顺利地找到农田里的“草堆”(分析结果);而采用Sybase IQ则可以找到草堆中的“针”(更精细的分析结果)。Sybase IQ具有深度分析功能,可以按照各种变化的条件快速找到用户所需的结果。“Hadoop与Sybase IQ是并存的,可以适合不同的应用。Sybase有计划将Hadoop的功能融入到Sybase IQ中。”Joydeep Das表示。

以Oracle Exadata为代表,业内现在流行软硬件一体化的解决方案。Joydeep Das表示:“软硬件一体化的解决方案只能满足某一种特定应用的需求。Sybase IQ可以支持所有硬件平台,具有中立性。”软硬件一体化的解决方案在国外通常被称为Appliance(固件)。Appliance在国外是指家用电器。由此可见,软硬件一体化解决方案的优势在于易用和部署方便,但缺点是功能单一,就像是洗衣机、冰箱一样,只具备一种功能。

Joydeep Das认为:“软硬件一体化的解决方案功能相对单一,而且扩展不灵活,适应性不强,无法满足企业动态的业务需求。不过,一体化的解决方案也有自己的生存空间。Sybase就与惠普公司合作推出了列式数据库固件。”

 有一些有用的工具可以测试MySQL 和基于MySQL 的系统的性能。这里将演示如何利用这些工具进行测试。

mysqlslap

mysqlslap可以模拟服务器的负载,并输出计时信息。它包含在MySQL 51 的发行包中,应该在MySQL 41或者更新的版本中都可以使用。测试时可以执行并发连接数,并指定SQL 语句(可以在命令行上执行,也可以把SQL 语句写入到参数文件中)。如果没有指定SQL 语句,mysqlslap 会自动生成查询schema 的SELECT 语句。

MySQL Benchmark Suite (sql-bench)

在MySQL 的发行包中也提供了一款自己的基准测试套件,可以用于在不同数据库服务器上进行比较测试。它是单线程的,主要用于测试服务器执行查询的速度。结果会显示哪种类型的 *** 作在服务器上执行得更快。

这个测试套件的主要好处是包含了大量预定义的测试,容易使用,所以可以很轻松地用于比较不同存储引擎或者不同配置的性能测试。其也可以用于高层次测试,比较两个服务器的总体性能。当然也可以只执行预定义测试的子集(例如只测试UPDATE 的性能)。这些测试大部分是CPU 密集型的,但也有些短时间的测试需要大量的磁盘I/O *** 作。

这个套件的最大缺点主要有:它是单用户模式的,测试的数据集很小且用户无法使用指定的数据,并且同一个测试多次运行的结果可能会相差很大。因为是单线程且串行执行的,所以无法测试多CPU 的能力,只能用于比较单CPU 服务器的性能差别。使用这个套件测试数据库服务器还需要Perl 和BDB 的支持,相关文档请参考

Super Smack

Super Smack是一款用于MySQL 和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。这是一个复杂而强大的工具,可以模拟多用户访问,可以加载测试数据到数据库,并支持使用随机数据填充测试表。测试定义在"smack"文件中,smack 文件使用一种简单的语法定义测试的客户端、表、查询等测试要素。

Database Test Suite

Database Test Suite 是由开源软件开发实验室(OSDL,Open Source DevelopmentLabs)设计的,发布在SourceForge 网站上,这是一款类似某些工业标准测试的测试工具集,例如由事务处理性能委员会(TPC,Transaction Processing Performance Council)制定的各种标准。特别值得一提的是,其中的dbt2 就是一款免费的TPC-C OLTP 测试工具(未认证)。之前本书作者经常使用该工具,不过现在已经使用自己研发的专用于MySQL 的测试工具替代了。

Percona's TPCC-MySQL Tool

我们开发了一个类似TPC-C 的基准测试工具集,其中有部分是专门为MySQL 测试开发的。在评估大压力下MySQL 的一些行为时,我们经常会利用这个工具进行测试(简单的测试,一般会采用sysbench 替代),在源码库中有一个简单的文档说明。

sysbench

sysbench是一款多线程系统压测工具。它可以根据影响数据库服务器性能的各种因素来评估系统的性能。例如,可以用来测试文件I/O、 *** 作系统调度器、内存分配和传输速度、POSIX 线程,以及数据库服务器等。sysbench 支持Lua 脚本语言,Lua 对于各种测试场景的设置可以非常灵活。sysbench 是我们非常喜欢的一种全能测试工具,支持MySQL、 *** 作系统和硬件的硬件测试。(节选自《高性能MySQL》)

联合SQL 服务器(Federated SQL Server Servers)可能大家都听说过集群服务器Clustered Server 但是在SQL 里面我却惊奇的发现 集群服务器不见了!取而代之的是一个叫联合服务器的东东 现在就让我们来看看它们之间有什么区别吧 SQL 的数据库能够被分散在一组独立的数据库服务器上以支持大规模的Web站点的访问需求和企业级的数据处理系统 面对日益增长的需求 只需要简单的添加一个节点服务器就可以了 ——我怎么看不出来和集群服务器有什么区别嘛?——上课的时候 不要发出这种声音!急什么 下面自然会讲到的 再乱讲话就罚站了哦 Windows 的+组件就是被设计来用于在集群的Windows 服务器上实现商业逻辑层的 每个服务器上都有一套同样的+组件 WIndows 自己来平衡各个服务器之间的负载 使用Cluster Administrator可以很方便的配置集群服务器 但是SQL 并不支持这样的集群 SQL 支持可更新的分布式视图(distributed partitioned views ) 用它来水平的将数据分割在一组服务器上 这使得用户可以把一个数据库服务器添加到一组数据库服务器中 这些数据库相互合作 以提供和集群数据库服务器相同的性能标准 虽然它们合作管理这些数据 但是它们之间是独立运作的 每个服务器有独立的管理界面 (当然 你可以使用Enterprise Manager来管理一组服务器 但总是作为一个Group中多个Server来管理的 并不能把它们当作是一个Server) 也有各自的运作规则 可以有其他的数据和进程 只是在联合起来处理一个工作的时候才联合在一起 SQL 现在在多CPU的系统上可以有非常优异的性能(可以有 个或者更多的CPU) 但是使用联合服务器 你几乎可以处理无限的负载 现在 最高的tpcc纪录就是 台 CPU的联合服务器完成的 ( 月 日的测试结果 到现在仍然是最高的 )数据库服务器和商业逻辑服务器不一样 运行商业逻辑的时候每个服务器都可以完成相同的工作 即使一台服务器down了也不会对系统有什么影响 而数据库就不一样 你必须把数据分散在不同的服务器上 否则对性能就没有什么提高了 而在这样的情况下 如果数据库服务器不能用于处理独自的事务 那么就显得有些浪费 如何使用联合服务器 建立Linked ServerSQL 就有了的东东 打开你的Enterprise Manager Security|Linked Servers 右键New Linked Server Server Type选SQL Server 然后填上用户名口令什么的 在每个服务器上建立表 On Server :CREATE TABLE Table_ _To_ (ID  INT PRIMARY KEYCHECK (ID BEEEN AND ) other fields) On Server :CREATE TABLE Table_ _To_ (ID  INT PRIMARY KEYCHECK (ID BEEEN AND ) other fields) On Server :CREATE TABLE Table_ _To(ID  INT PRIMARY KEYCHECK (ID > ) other fields) 在每个服务器上建立视图CREATE VIEW Partitioned_Views ASSELECT FROM MyDatabase dbo Table_ _To_ UNION ALLSELECT FROM Server MyDatabase dbo Table_ _To_ UNION ALLSELECT FROM Server MyDatabase dbo Table_ _To Mission Acplished现在你就只要简单的使用这个视图就可以了 服务器自己知道把数据放到该放的地方去 查询的时候也知道该从那里去取数据 是不是很easy呢? lishixinzhi/Article/program/SQLServer/201311/22144

计算原则: 以单台服务器性能进行计算,即确保单台服务器工作的时候可以满足系统正常运行的需要;假设每天有1万人次来窗口办理业务,每人次办理一项业务。即以每日1万笔前台交易为例进行综合系数的推导:1 假设每月前台交易数(未来5年内的设计指标)为220,000 (有些业务在月初、月末的处理量比较高,按月统计可以平衡此项差异);2 每日前台交易数=220000/22=10,000 ,即每日 1万笔;3 忙时处理能力:每日交易的80%在4个小时内完成,即1000080%/4=2000(笔/小时)4 峰值处理能力:20002=4000(笔/小时),即峰值处理能力为每小时4000笔,或 67笔/分,假设业务人员同时在线为100人,即每人每分钟处理07笔)5 假设每笔交易对应数据库事务数=20,基准TPC指标值对应的比例=8,cpu保留30%的处理能力冗余,计算值与公布值(最优值)的偏差经验值为4 (这几个参数估算的依据不足,更多的是经验值)则 tpmC值为:tpmC= 672084/(1-30%)= 61257倒算出 综合系数 = 61257/10000=61即数据库服务器tpmC= 每日前台交易数 61 (实际计算值应不高于该值)应用服务器的 tpmC = 数据库服务器 tpmC 50% (一般)应用服务器的 tpmC = 数据库服务器 tpmC 70% (涉及大量计算的,如社保、税

以上就是关于如何评估服务器处理能力全部的内容,包括:如何评估服务器处理能力、为什么只有阿里云和AWS拥有自研云数据库的能力、高性能MySQL:单组件式测试工具等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9859587.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存