TokyoCabinet Слишком низкая скорость записи
У меня есть скрипт на Perl (в Ubuntu 12.04 LTS), записывающий в 26 файлов TCH. Ключи примерно одинаково распределены. Запись становится очень медленной после 3 миллионов вставок (в равной степени распределенных по всем файлам), и скорость снижается с 240 000 вставок / мин в начале до 14 000 вставок / мин после 3 мм вставок. Размер отдельных файлов шарда не превышает 150 МБ, а общий размер составляет около 2,7 ГБ.
Я запускаю оптимизацию для каждого файла TCH после каждых 100K вставок в этот файл с bnum как 4*num_records_then и параметрами, установленными на TLARGE, и проверяю, соответствует ли xmsiz размеру bnum (как упомянуто в разделе Почему токийский тиран замедляется экспоненциально даже после настройки bnum?)
Даже после этого вставки запускаются с высокой скоростью, а затем медленно уменьшаются до 14 тыс. Вставок / мин с 240 тыс. Вставок / мин. Может ли это быть из-за удержания нескольких соединений tch (26) в одном скрипте? Или есть параметр конфигурации, который я пропускаю (отключение справки по ведению журнала, но вышеупомянутая тема говорит, что ведение журнала влияет на производительность только после того, как размер файла tch станет больше 3-4 ГБ, мои осколки будут <150 МБ файлов..)?
1 ответ
Я бы отключил ведение журнала и измерил, какие изменения. Упомянутый поток говорит о 2-3-гигабайтном файле TCH, но если вы суммируете размеры своих 26-ти канальных файлов, вы находитесь в одной лиге. Для файловой системы общий объем записанных диапазонов данных должен быть соответствующим параметром.