Jon*_*son 12 performance couchdb
我运行的CouchDB(1.1.1)服务器包含大量400-600KB大小的文档.
如果我从数据库(而不是从视图,只是原始文档)中获取完整文档,则需要200-400ms才能完成,这相当于大约1.5MB/s的吞吐量.
如果我将相同的数据写入磁盘上的原始文件,它们将加载10-20ms(大约25-50 MB/s).
我希望CouchDB有一些开销,但一个数量级(和一些)似乎疯狂的本质上是一个读取!
任何人都可以阐明为什么会出现这种情况?
更新:根据下面的要求,从卷曲的时间:
# time curl http://localhost:5984/[dbname]/[documentname]
real 0m0.684s
user 0m0.004s
sys 0m0.020s
Run Code Online (Sandbox Code Playgroud)
获取的文档是642842字节.我已经在标准1TB硬盘和EC2实例(EBS卷)上测试了它,结果相似.
Jas*_*ith 16
我认为这是几个因素
curl.(Web浏览器和大多数客户端软件都保留了持久的HTTP/1.1 keepalive连接池.)但从根本上说,CouchDB选择"较慢"的协议,因为它是如此通用且标准化..couch.您可能会看到磁盘延迟的影响倍增.您可以比较读取文档与读取等效的MySQL行,而不是比较读取文档与读取文件系统文件.注意,我不是说CouchDB实际上很快并且你的结果不正确.恰恰相反:CouchDB比许多人预期的要慢.在某种程度上,它有改进和优化的空间; 但主要是 CouchDB已经确定这些成本对于它所带来的更广泛的利益是值得的.
CouchDB未能通过基准测试,并且使得学院难以接受.我建议您接下来对CouchDB的全部负载进行基准测试,模拟您对多个并发访问的预期需求,并尽可能接近您对它的实际需求.这将是一个更有用的测试,一般来说CouchDB在那里表现令人印象深刻.
也就是说,CouchDB是一个特定于域的数据库,所以很明显你也在寻找一个不同的工具.
| 归档时间: |
|
| 查看次数: |
7215 次 |
| 最近记录: |