纪事地图和Yahoo Cloud服务基准

总览

Yahoo Cloud Service Benchmark是一种相当广泛使用的基准测试工具,用于测试大量密钥(例如1亿)和少量客户端(即由一台计算机提供服务)的密钥值存储。

在本文中,我将研究如何使用Chronicle Map在具有128 GB内存,双Intel E5-2650 v2 @ 2.60GHz和六台Samsung 840 EVO SSD的 台计算机上使用Chronicle Map进行1亿* 1 KB键/值的测试。

1 KB值由100个字节的字符串的十个字段组成。 对于更好的解决方案,原始数将是一个更好的选择。 尽管SSD有所帮助,但峰值传输速率为700 MB / s,可以由两个SATA SSD驱动器支持。

这些基准是在报告发布时使用最新版本的Chronicle Map 2.0.5a-SNAPSHOT进行的。

微秒世界

在阅读有关键值存储的基准时,令我感到困惑的是,它们从性能真的很重要的前提开始。 恕我直言,大约90%的时间里,性能不是最重要的功能,只要您有足够的性能即可。
然后,这些基准测试报告继续以毫秒(而不是微秒)报告时间,并且以数万而不是数十万或数百万的吞吐量进行报告。 如果性能确实如此重要,那么他们将围绕性能来构建产品,而不是出于性能原因 ,而不是他们支持的有用功能 (例如多键事务性,仲裁更新和Chronicle Map不支持的其他功能)。

那么,为性能而构建的密钥库如何与YCSB一起看起来呢?

吞吐量措施

“ 50/50”测试50%的随机读取和50%的随机写入,“ 95/5”测试95%的读取至5%的写入。 预计写操作会更昂贵,读操作的百分比越高,吞吐量越高。

线程数 50/50读取/更新 95/5读取/更新
1个 122 K /秒 245 K /秒
2 235 K /秒 414 K /秒
4 339 K /秒 750 K /秒
8 646 K /秒 1.295 M /秒
15 819 K /秒 1.452 M /秒
30 900 K /秒 1.641 M /秒

延迟时间

以下等待时间以微秒为单位,而不是毫秒。

线程:8 50/50读取 95/5阅读 50/50更新 95/5更新
平均 5微秒 3.9微秒 15.9微秒 11.3微秒
第95名 12微秒 8微秒 31微秒 19微秒
第99名 19微秒 14微秒 42微秒 27微秒
最坏的 67毫秒 70毫秒 67毫秒 70毫秒


注意:基准测试并非旨在免费提供GC,并会产生一些垃圾。 这并不是特别高,根据飞行模拟器,基准本身仅使用大约1/4的CPU,但是确实会影响最糟糕的延迟。

结论

确保键值存储具有所需的功能,但是如果性能至关重要,则寻找针对性能而设计的解决方案,因为它可能比全功能产品快100倍。

其他高性能示例

Aerospike基准测试 –具有超过1 M TPS,亚微秒延迟的单服务器基准测试。 使用较小的100字节记录。
NuoDB基准测试 –支持跨仲裁的事务。 1 M TPS的24个节点。
Oracle NoSQL基准测试 – 已有两年的历史,使用很多线程,否则效果很好。
VoltDB基准测试 –未测试到1 M TPS,但很有希望。 延迟为1-2毫秒左右,报告具有99%的延迟,而其他人未包括。

有待改进

MongoDB驱动程序基准测试 -具有1000微秒而不是毫秒。
Cassandra,HBase,Redis –显示如果使用足够多的服务器,则可以获得1百万TPS,而1 M TPS则是288个节点。
包含Elasticsearch的报告–报告包含“资源节约型环境”中的运行时
Hyperdex –仅涵盖吞吐量。
WhiteDB –报告170 K记录的延迟(以微秒为单位),并且吞吐量适中。
包括航空航天在内的基准–报告

脚注

使用较小的值会有所帮助,我们建议尝试使值接近100个字节。 这是95/5工作负载B(使用10×10字节字段)和5000万个条目(与Aerospike基准测试一样)的结果。
[OVERALL],运行时间(毫秒),29,542
[总体],吞吐量(操作数/秒), 3,385,011
[READ],操作,94999832
[READ],AverageLatency(us), 1.88
[READ],MinLatency(us), 0
[READ],MaxLatency(us),50201
[READ],95thPercentileLatency(ms),0.004
[READ],99thPercentileLatency(ms), 0.006
[READ],返回值= 0,48776825
[READ],返回值= 1,46230007
[更新],操作,5001168
[更新],AverageLatency(us), 8.04
[UPDATE],MinLatency(us), 0
[UPDATE],MaxLatency(us),50226
[UPDATE],95thPercentileLatency(ms),0.012
[UPDATE],99thPercentileLatency(ms), 0.018
[UPDATE],Return = 0,5001168

翻译自: https://www.javacodegeeks.com/2014/10/chronicle-map-and-yahoo-cloud-service-benchmark.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JSP 插入到数据库的数据出现 “SQLServerException: 将截断字符串或二进制数据” 错误解决方案

最近在编写一个小型基于的jsp系统开发。掌握数据库一直感觉还不错。但是今天就出现了一个问题困扰我大半天。后来本来准备睡觉,但是觉得今天不解决这个问题恐怕晚上是“彻夜难眠啊”!!于是打开电脑,又开始捣腾。遇到问题首先去网上…

c++ 错误处理

void __fastcall TForm1::Button1Click(TObject *Sender) { try { int iEdit1->Text.ToInt(); Edit1->TextAnsiString(10/i); } catch (...) { ShowMessage("Error"); } } 通过 为知笔记 发布转载于:https://www.cnblogs.com/xe2011/archive/2012/07/16/55298e…

使用FizzBu​​zz和Mockito进行单元测试

我有时使用FizzBu​​zz向新手演示单元测试的基础。 尽管FizzBu​​zz确实是一个简单的问题,但是它也可以用于演示更高级的单元测试技术,例如模拟 。 FizzBu​​zz Kata: “ 编写一个程序,打印从1到100的数字。但是,…

前后端分手大师——MVVM 模式

阅读目录简而言之组成部分没有什么是一个栗子不能解决的简而言之 之前对 MVVM 模式一直只是模模糊糊的认识,正所谓没有实践就没有发言权,通过这两年对 Vue 框架的深入学习和项目实践,终于可以装B了有了拨开云雾见月明的感觉。 Model–View–…

Java性能调优调查结果(第三部分)

这是该系列文章的第三篇,我们将分析2014年10月进行的调查的结果。如果您尚未这样做,我建议从该系列的前两篇文章开始: 问题严重性分析和监视域分析 。 这篇文章着重于故障排除/根本原因检测。 本调查部分的背景:意识到性能问题并…

划分树

昨天的杭电多校联合训练热身赛的一道题,求区间的中位数,快排会超时,划分树的模版题。。 划分树是一种基于线段树的数据结构。主要用于快速求出(在log(n)的时间复杂度内)序列区间的第k大值 。划分树和归并树都是用线段树作为辅助的…

Canvas事件绑定

canvas事件绑定 众所周知canvas是位图,在位图里我们可以在里面画各种东西,可以是图片,可以是线条等等。那我们想给canvas里的某一张图片添加一个点击事件该怎么做到。而js只能监听到canvas的事件,很明显这个图片是不存在与dom里面…

使用Maven配置JBoss / Wildfly数据源

大多数Java EE应用程序在其业务逻辑中使用数据库访问,因此开发人员经常面临在应用程序服务器中配置驱动程序和数据库连接属性的需求。 在本文中,我们将使用Maven为JBoss / Wildfly和Postgre数据库自动化该任务。 这项工作是根据我从以前的魔兽拍卖批量应…

控件注册 - 利用资源文件将dll、ocx打包进exe文件(转)

很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个exe,点击直接运行呢?就像很多安全控件,如支付宝的aliedit.exe那样。 现在介绍一种使用资源文件,将…

Canvas-图片旋转

Canvas-图片旋转 众所周知canvas是位图,你可以在里面渲染你要的东西,不过你只能操作canvas的属性来进行编辑。就是说你并不能操作画进canvas的东西,例如我在canvas里添加一幅画,我现在想将那幅画移动10px,我们并不能直…

在嵌入式Neo4j中使用Neo4j浏览器

有时候,您有一个应用程序以嵌入式模式使用Neo4j,但还需要使用Neo4j Web浏览器来处理图形。 由于一次最多只能从一个进程访问数据库,因此在嵌入式Neo4j应用程序运行时尝试启动Neo4j服务器将无法工作。 WrappingNeoServerBootstrapper尽管已被…

CSS3实现多页签图片缩放切换效果

多页签切换效果,图片缩放,鼠标移动到图片上后显示文字内容等等,效果很集中呐 截图如下: 下载地址:http://www.lanrenzhijia.com/js/css3/2012/0718/602.html 预览地址:http://www.lanrenzhijia.com/yulan/2…

正则表达式学习笔记

该笔记内容通过《Learn regular expressions in about 55 minutes》整理得到。 文章链接:https://qntm.org/files/re/re.html 其中文翻译很多,中文名叫:55分钟学会正则表达式。 实际上我也算过了,55分钟实在不太可能,也…

清洁单元测试图案–演示幻灯片

我有机会在2014年GDG DevFestKarlsruhe会议上谈论“清洁单元测试模式”。 感谢组织者邀请我,也感谢所有听我讲话的人。 如所承诺的,我为那些想看一下我在演讲中没有讲到的其他幻灯片的人分享了演示文稿: 清洁单元测试图案 JUnit测试并不像看…

“取反”运算符

“取反”运算符转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/24/3845558.html

Angular使用总结 --- 如何正确的操作DOM

无奈接手了一个旧项目,上一个老哥在Angular项目中大量使用了JQuery来操作DOM,真的是太不讲究了。那么如何优雅的使用Angular的方式来操作DOM呢? 获取元素 1、ElementRef --- A wrapper around a native element inside of a View. 在组件…

Hibernate Collection乐观锁定

介绍 Hibernate提供了一种乐观的锁定机制 ,即使长时间通话也可以防止丢失更新 。 结合实体存储,跨越多个用户请求(扩展的持久性上下文或分离的实体),Hibernate可以保证应用程序级的可重复读取 。 脏检查机制检测实体状…

非首屏图片延时加载

目标 减少资源加载可以明显的优化页面加载的速度,所以可以减少页面载入时立即下载的图片的数量,以提高页面加载速度,其他的图片在需要的时候再进行加载。 思路 想要实现以上的目标,有几个地方需要思考。 1、如何判断哪些图片需要…

具有链接资源的Spring RestTemplate

Spring Data REST是一个了不起的项目,它提供了一些机制来将基于Spring Data的存储库中的资源公开为REST资源。 使用链接资源公开服务 考虑两个简单的基于JPA的实体,课程和教师: Entity Table(name "teachers") public class Tea…

POJ 1521 Entropy

求哈夫曼树的平均码长,用优先队列来写,先记录某个字符在字符串里出现的次数,然后放入 队列。依次取出第一小和第二小的数,将两个数相加,构成新的虚拟结点,放入队列中。 /*Accepted 196K 0MS C …