tokyo-cabinet - Tokyo Cabinet -达到100万后更慢插入

标签 tokyo-cabinet

我正在评估 Tokyo Cabinet Table引擎。在达到100万条记录后,插入速度会大大降低。批量大小为100,000,在事务内完成。我尝试设置xmsiz,但仍然没有用。 Tokyo Cabinet 有没有人遇到过这个问题?

详细信息

Tokyo cabinet - 1.4.3
Perl bindings - 1.23
OS : Ubuntu 7.10 (VMWare Player on top of Windows XP)

最佳答案

我也碰到一堵砖墙,每个分片大约有100万条记录(在客户端分片,没什么花哨的)。我尝试了各种ttserver选项,它们似乎没有什么区别,因此我查看了内核,发现
echo 80 > /proc/sys/vm/dirty_ratio
(以前的值为10)进行了很大的改进-以下是每分钟打印的数据总大小(在8个分片上,每个分片位于其自己的节点上):

总计:14238792条记录,27.5881 GB大小
总计:14263546条记录,27.6415 GB大小
总计:14288997条记录,27.6824 GB大小
总计:14309739条记录,27.7144 GB大小
总计:14323563条记录,27.7438 GB大小
(在这里,我更改了所有分片的dirty_ratio设置)
总计:14394007条记录,27.8996 GB大小
总计:14486489条记录,28.0758 GB大小
总计:14571409条记录,28.2898 GB大小
总计:14663636条记录,28.4929 GB大小
总计:14802109条记录,28.7366 GB大小

因此,您可以看到改进大约是7-8倍。那时每个节点的数据库大小约为4.5GB(包括索引),并且节点具有8GB RAM(所以dirty_ratio为10意味着内核试图保持少于800MB的内存)。

接下来要尝试的是ext2(当前为ext3)和noatime,并将所有内容都保留在ramdisk中(这可能会浪费两倍的内存量,但可能值得)。

关于tokyo-cabinet - Tokyo Cabinet -达到100万后更慢插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/606673/

相关文章:

c - tokyabinet 列表中的内存泄漏

java - HashMap 空间和性能问题

tokyo-cabinet - 为什么东京暴君即使调整了 bnum 也会指数级减速?

database - 为什么我无法创建大于 1.8GB 的​​固定长度 tokyo Cabinet 数据库?

api - Tokyo Cabinet 和 SQLite 兼容的接口(interface)吗?

mysql - 通过将大型键值存储从 MySQL 迁移到 NoSQL 数据库,我能否期望性能得到显着提升?

ruby - 选择数据库技术

configuration - 东京箱体调音参数

tokyo cabate C程序的编译问题