Tarantool sphia 使选择变慢?

Tarantool sphia make slow selects?

使用tarantool版本:Tarantool 1.6.8-586-g504e151 它是从 epel 安装的。 我在 sphia 模式下使用 tarantool:

log_space = box.schema.space.create('logs',
    {
        engine = 'sophia',
        if_not_exists = true
    }
)

log_space:create_index('primary', {
        parts = {1, 'STR'}
    }
)

我有 500.000 条记录并发出 select 请求:

box.space.logs:select({'log_data'})

大约需要 1 分钟。 为什么这么慢?

unix/:/var/run/tarantool/g_sofia.control> box.stat()
—-
- DELETE:
    total: 0
    rps: 0
  SELECT:
    total: 587575
    rps: 25
  INSERT:
    total: 815315
    rps: 34
  EVAL:
    total: 0
    rps: 0
  CALL:
    total: 0
    rps: 0
  REPLACE:
    total: 1
    rps: 0
  UPSERT:
    total: 0
    rps: 0
  AUTH:
    total: 0
    rps: 0
  ERROR:
    total: 23
    rps: 0
  UPDATE:
    total: 359279
    rps: 17

通过agent-0007直接上门帮助调试,我们发现了几个问题。

其中大部分与缓慢的虚拟环境(使用了 openvz)有关,这表明 pread() 停顿和 io 时序不足。

此外,我们还发现了两个集成问题:

https://github.com/tarantool/tarantool/issues/1411(eio_finish 中的 SIGSEGV) https://github.com/tarantool/tarantool/issues/1401(使用 sophia 的 upsert applier 回调函数中的错误)

谢谢。

Sophia 引擎自 1.7.x 后已弃用。请使用 vinyl 引擎代替它。

请查看更多详情:https://www.tarantool.io/en/doc/1.10/book/box/engines/vinyl/