Manticore 27.1.5 - увеличение workers и queue length

Доброго дня!
В рамках тестирования одной из новых версий, а именно 27.1.5, по метрикам заметно значительное увеличение workers и queue length:

По графикам до ~18:00 работа прошлой версии 13.6.7.
Затем сервис Manticore был остановлен, удалены пакеты и установлен единый пакет версии 27.1.5.

После установки запуск был не успешный, в логах было:

[Mon Jul 20 13:24:00.116 2026] [2000948] FATAL: failed to open file for meta serialization: failed to create /var/lib/manticore/literature_works/literature_works.meta.new: Too many open files

и множество:

[Mon Jul 20 13:20:23.150 2026] [1999671] WARNING: table 'customer_bookmarks_5': prealloc: disk chunk /var/lib/manticore/customer_bookmarks_5/customer_bookmarks_5.64815: prealloc failed: failed to open file '/var/lib/manticore/customer_bookmarks_5/customer_bookmarks_5.64815.spb': 'Too many open files' - NOT SERVING [Mon Jul 20 13:20:23.162 2026] [1999666] WARNING: table 'customer_bookmarks_6': disabled at the JSON config
...

Это удалось решить путем установки параметров в:

  • /etc/sysctl.conf - fs.inotify.max_user_instances = 100000
  • /etc/security/limits.conf:
    manticore soft nofile 100000
    manticore hard nofile 100000
    
  • добавлением параметра max_open_files = max в /etc/manticoresearch/manticore.conf

После этого сервис Manticore был успешно запущен, ошибок нет.

Но остается рост workers и queue length, ниже график за 6 часов:


Наглядно видно как идет рост, затем упирается в практически ровный график и далее резкое падение и после снова рост.
При этим утилизация по CPU и диску в норме.

Текущая конфигурация /etc/manticoresearch/manticore.conf:

# ansible_managment
common {
    plugin_dir = /usr/local/lib/manticore
}
searchd {
    listen = ****:9312
    listen = ****:9306:mysql
    listen = ****:9308:http
    listen = ****:9322-9325:replication
    log = /var/log/manticore/searchd.log
    query_log = /var/log/manticore/query.log
    pid_file = /var/run/manticore/searchd.pid
    data_dir = /var/lib/manticore
    query_log_format = sphinxql
    query_log_min_msec = 500
    query_log_mode = 644
    node_address = ****
    max_batch_queries = 0
    max_packet_size = 128M
    max_open_files = max
    thread_stack = 16M
    binlog_flush = 0
    binlog_max_log_size = 16M
    binlog_path =  # disable logging
    threads = 11
    optimize_cutoff = 16
    collation_server = utf8_ci
    network_timeout = 300s
    sphinxql_timeout = 30m
    client_timeout = 1h

    secondary_indexes = 1

    telemetry = 0
}

С чем может быть связано такое поведение на новой версии?
Manticore стал больше задействовать потоки и упирается в лимит threads?

По логам ничего подозрительного.
А вывод SHOW THREADS пуст:

mysql> SHOW THREADS OPTION format=al; 
+---------+--------+-------+-------+-----------------+--------+--------------------+-----------+---------------+-------------------------------+ 
| TID     | Name   | Proto | State | Connection from | ConnID | This/prev job time | Jobs done | Thread status | Info                          | 
+---------+--------+-------+-------+-----------------+--------+--------------------+-----------+---------------+-------------------------------+ 
| 2033854 | work_2 | mysql | query | 10.9.2.99:47060 | 509510 | 739us              |   7981232 | working       | SHOW THREADS OPTION format=al | 
+---------+--------+-------+-------+-----------------+--------+--------------------+-----------+---------------+-------------------------------+ 
1 row in set (0,00 sec)

И еще стоит отметить, что в новой версии (включая 28.4.4) не работает команда status и ее короткая версия

mysql> status;
ERROR 1064 (42000): P01: syntax error, unexpected '(' near '() limit 1'
mysql> \s
ERROR 1064 (42000): P01: syntax error, unexpected '(' near '() limit 1'
mysql> 

Попробуйте последний релиз. Вроде бы фиксили.

Фиксили мемлик файловых дескрипторов и соответственно workers и queue length. По status лучше завести issue.

1 Like

Не видел в Changelog по версии. Но попробую на последней и напишу.

Закинул issue: Syntax error for command "status" · Issue #4741 · manticoresoftware/manticoresearch · GitHub

Установил версию 28.4.4:


Пока по метрикам все в порядке, понаблюдаю еще.

@Sergey верно ли понимаю, что из-за не проблем файловых дескрипторов были ошибки:

[Mon Jul 20 13:24:00.116 2026] [2000948] FATAL: failed to open file for meta serialization: failed to create /var/lib/manticore/literature_works/literature_works.meta.new: Too many open files

и им сопутствующие?
И не требуется но новой версии 28.4.4 задавать лимиты?

После upgrade не наблюдается проблем с workers и queue length.

С большой вероятностью да.

Понял, проверим потом без параметров.

Итого, на версии 28.4.4 сейчас корректно работает по workers и queue length - роста нет.

1 Like