Медленная выборка данных

118 views
Skip to first unread message

petrov...@gmail.com

unread,
Oct 19, 2020, 7:23:32 AM10/19/20
to tarantool-ru
Здравствуйте!
Tarantool 1.10.5-27.
Использую движок memtx, без репликации. Объем данных в памяти 45Гб, сейчас там 155М кортежей.
Конфиг:
box.cfg {
    listen = '*:3305',
    
    io_collect_interval = nil,
    readahead = 50 * 1024 * 1024,
    worker_pool_threads = 20,
    
    memtx_memory = 50 * 1024 * 1024 * 1024,
    memtx_min_tuple_size = 16,
    memtx_max_tuple_size = 128 * 1024 * 1024,
    snap_io_rate_limit = 100,
    net_msg_max = 2000,
    
    wal_mode = 'write',
    wal_max_size = 512 * 1024 * 1024,
    rows_per_wal = 1500000,
    
    checkpoint_interval = 6 * 60 * 60,
    checkpoint_count = 2,
    force_recovery = true,
    
    log_level = 5,
    log_nonblock = true,
    too_long_threshold = 1,
    
    feedback_enabled = false,
}
Спейс:
   u_p = box.schema.space.create('user')
    u_p:create_index('primary', {type = 'hash', parts = {1, 'string'}})
    u_p:create_index('secondary', {type = 'tree', unique = false, parts = {2, 'unsigned'}})
индекс 'secondary' это время создания записи, третье поле это данные - структура хеш.
Работаю с tarantool на perl коннектор модуль DR::Tnt. Количество подключений 200 из которых 150 только читают данные (по 3-5 кортежей в сек.), остальные потоки читают и пишут (суммарно ~500 чтений и ~500 записей в секунду).
Средняя нагрузка на проц. ~20%.
Провел тесты на скорость выборки данных в один поток при текущей нагрузке по Tarantool и Memcached скорость выборки в секунду:
Tarantool - 750
Memcached - 6500
Подскажите пожалуйста почему такая большая разница в скорости извлечения данных, и как можно увеличить скорость получения данных из tarantool?
Возможно конфигурация инстанса, или драйвер медленный...

Mons Anderson

unread,
Oct 20, 2020, 5:47:30 AM10/20/20
to tarantool-ru
Скорее всего проблема в коннекторе.
Если у вас асинхронное приложение, можете попробовать http://github.com/Mons/EV-Tarantool16

понедельник, 19 октября 2020 г. в 14:23:32 UTC+3, petrov...@gmail.com:

petrov...@gmail.com

unread,
Oct 20, 2020, 6:45:06 AM10/20/20
to tarantool-ru
Спасибо за ответ. Приложения синхронно отправляют запросы и получают ответы.
EV::Tarantool16 - EV client for Tarantool 1.6, будет ли он работать с Tarantool 1.10.
Возможно есть другие быстрые коннекторы.

вторник, 20 октября 2020 г. в 12:47:30 UTC+3, mo...@cpan.org:

Mons Anderson

unread,
Oct 23, 2020, 9:04:33 AM10/23/20
to tarantool-ru
Он работает со всеми версиями, которые больше, чем Tarantool 1.6 (1.7, 1.10, 2.2, 2.3, 2.4, 2.5...)
О существовании других коннекторов мне неизвестно.
Хотя в принципе EV::Tarantool16 можно использовать и в синхронном окружении

вторник, 20 октября 2020 г. в 13:45:06 UTC+3, petrov...@gmail.com:
Reply all
Reply to author
Forward
0 new messages