【问题标题】:Tokyo cabinet - Slower inserts after hitting 1million东京内阁 - 达到 100 万后插入速度较慢
【发布时间】:2009-03-03 14:50:41
【问题描述】:

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

详情

东京内阁 - 1.4.3
Perl 绑定 - 1.23
操作系统:Ubuntu 7.10(Windows XP 之上的 VMWare 播放器)

【问题讨论】:

    标签: tokyo-cabinet


    【解决方案1】:

    我在每个分片上也遇到了大约 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 上(这可能会浪费两倍的内存量,但可能值得)。

    【讨论】:

      【解决方案2】:

      我刚刚设置了缓存选项,它现在明显更快了。

      【讨论】:

        【解决方案3】:

        我认为修改 dbtune 函数中的 bnum 参数也会显着提高速度。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多