最近对beansdb做了一次性能测试,结果性能一般,下面是我的测试过程。
1. 启动beansdb server
/duitang/dist/sys/beansdb/bin/beansdb -d -H /duitang/data/test-beansdb
2. 往beansdb set 30000条数据
from beansdb.dbclient import Beansdb import time; BEANSDB_CONF = ({"127.0.0.1:7900": range(16)}, 16) fs = Beansdb(*BEANSDB_CONF) starttime = time.time() def build(): f = open('/tmp/test') data = f.read() for x in xrange(30000): key = "HDFS%s"%(x) fs.set(key,data)
测试的数据实际是一张大小712k的图片。
3. 开始对beansdb随机读测试。
from beansdb.dbclient import Beansdb import time import random BEANSDB_CONF = ({"127.0.0.1:7900": range(16)}, 16) def test(): starttime = time.time() for x in xrange(100): i =random.randint(1, 30000) key = "HDFS%s"%(i) value = fs.get(key) endtime = time.time() exe_time = (endtime - starttime)*1000 print '%s ms'%exe_time if __name__ == "__main__": for x in xrange(20): test()
4.测试结果:
服务器普通磁盘:100次读取500ms,平均一次5ms,对于一张700k的图片这个性能算不上好吧。
[admin@server2 libs]$ python testdb.py 575.555086136 ms 555.697917938 ms 625.766038895 ms 620.676994324 ms 498.275995255 ms 490.942955017 ms 590.165138245 ms 730.442047119 ms 546.756029129 ms 723.293066025 ms 551.966905594 ms 556.042909622 ms 522.061109543 ms 501.409053802 ms 555.064201355 ms 544.654130936 ms 488.253831863 ms 540.575027466 ms 554.152965546 ms 532.576084137 ms
笔记本SSD:
yunpeng@yunpeng-taobao:/duitang/dist/sys$ python /duitang/dist/app/trunk/java/japa/src/main/webapp/libs/testdb.py 393.790006638 ms 359.507083893 ms 320.909976959 ms 372.398138046 ms 371.335983276 ms 385.787963867 ms 361.010074615 ms 338.36388588 ms 341.284990311 ms 321.836948395 ms 353.931903839 ms 338.07516098 ms 299.274206161 ms 353.310108185 ms 346.406936646 ms 336.650133133 ms 314.879894257 ms 350.219011307 ms 328.777074814 ms 336.888074875 ms
附 beansdb stats
TAT total_items 10001 STAT bytes_read 7175626210 STAT bytes_written 9276565564 STAT threads 16 END stats STAT pid 8335 STAT uptime 979 STAT time 1395413333 STAT version 0.5.3 STAT pointer_size 64 STAT rusage_user 74.416686 STAT rusage_system 30.456369 STAT rusage_minflt 1748290 STAT rusage_majflt 0 STAT rusage_nswap 0 STAT rusage_inblock 0 STAT rusage_oublock 0 STAT rusage_nvcsw 62693 STAT rusage_nivcsw 2516 STAT item_buf_size 4096 STAT curr_connections 1 STAT total_connections 9 STAT connection_structures 3 STAT cmd_get 12930 STAT cmd_set 10001 STAT cmd_delete 0 STAT slow_cmd 2 STAT get_hits 12930 STAT get_misses 0 STAT curr_items 10001 STAT total_items 10001 STAT bytes_read 7175626217 STAT bytes_written 9276566235
相关推荐
- **分布式设计**:BeansDB采用了分布式架构,这意味着它可以将数据分散存储在多个服务器上,从而提高了系统的整体性能和可扩展性。 - **最终一致性**:BeansDB在设计上追求最终一致性,即在短期内可能会存在数据不...
BeansDB是豆瓣于2009年开发的一款开源数据库存储系统,它主要被设计为一种高性能、分布式、高可用的Key-Value数据库。不同于传统的事务型关系数据库或POSIX文件系统,BeansDB特别适用于处理大量小至中等大小的对象...
这是本人花了几天的时间对 目前beansdb的源代码进行的分析,其中核心部分每一行都有详细注释。详细注释的文件有htree.c hstore.c bitcask.c record.c beansdb.c,其它部分注释的比较少。因为其它部分不会影响我们的...
通过将数据分片并构建层次化的哈希索引,HashTree可以高效地检测数据的完整性和一致性。每个节点都包含其子节点的哈希值,根节点的哈希值可以代表整个树的内容。当数据发生变化时,只需要更新受影响的部分,而不是...
4. **易于部署和扩展**:由于 Beanseye 使用了 Go 语言编写,Go 语言以其高效的性能和简单的并发模型,使得 Beanseye 能够轻松地在各种硬件环境中部署,并且易于扩展,适应业务的增长。 5. **开源项目**:Beanseye ...
BeansDB 是一个主要针对大数据量、高可用性的分布式KeyValue存储系统,采用HashTree和简化的版本号来快速同步保证最终一致性(弱),一个简化版的 Dynamo。 它采用类似memcached的去中心化结构,在客户端实现数据...
beansdb -p 7901 -d -P/tmp/beansdb1.pid -L/tmp/beansdb1.log -H /home/gfreezy/beans/db/db1 -vv beansdb -p 7902 -d -P/tmp/beansdb2.pid -L/tmp/beansdb2.log -H /home/gfreezy/beans/db/db2 -vv 自定义设置。...
Memc ac hed客户端(mc ) 缓存式的Web应用程序架构 性能测试 dbc ac hed Memcached 和 dbcached 在功能上一样吗? 列存系列 Hadoop之Hbase 耶鲁大学之HadoopDB GreenPlum FaceBook之Cassandra Cassandra特点 Keyspace ...
BeansDB通过HashTree机制实现了快速的数据同步,大大提升了系统的可靠性和性能。 #### 大文件的存储实践 对于大文件的存储,豆瓣选择了MooseFS作为主要解决方案。MooseFS是一款基于C语言开发的分布式文件系统,具有...
BeansDB的设计追求简单维护、稳定性能、易扩容、高可用性以及最终一致性。在豆瓣内部,BeansDB有两个集群,doubandb和doubanfs,分别用于存储小型数据(如文本信息)和中型数据(如图片、音频)。doubandb存储了约30...
什么是Beansdb? Beansdb是为大型在线系统设计的分布式键值存储系统,旨在实现高可用性和易于管理。 它采用了Amazon Dynamo的想法,然后进行了简化以保留“什么是Beansdb”? Beansdb是为大型在线系统设计的分布式...
- BeansDB是中国豆瓣社区自主开发的分布式键值存储系统。 5. 数据挖掘与可视化: - 数据挖掘是从大量数据中提取有价值信息的过程,涉及数据清洗、预处理、模式识别等步骤。 - 数据源的质量、量级、噪声和相关性...
性能测试是指使用Memcached来测试性能。 dbcached是指使用dbcached来实现分布式缓存。 Memcached 和 dbcached 在功能上一样吗?是指比较Memcached和dbcached的功能。 列存系列: Hadoop 之 Hbase是指使用Hadoop...
- BeansDB是由豆瓣社区开发的,NewSQL数据库如MemSQL提供高性能的事务处理,而NoSQL数据库如Bigtable和Dynamo提供了灵活的数据模型。 4. 数据挖掘与可视化: - 数据挖掘包括数据融合、分析和决策支持,但发现的...
- **分布式文件系统**:为了应对图片文件剧增带来的I/O负载问题,引入了分布式文件系统(如MogileFS/FastDFS/BeansDB/TaobaoTFS)。这些系统可以提供更好的可扩展性和容错能力。 - **缓存策略改进**:传统的缓存...
NoSQL的兴起源于对高并发、灵活表结构变更需求的满足,以及在小数据访问性能上的显著提升,相较于传统的SQL数据库。例如,Memcachedb的出现引起了广泛关注,随后涌现了Tokyo Cabinet、Redis和Cassandra等著名键值...