Оптимизация производительности
maildir_very_dirty_syncs¶
Опция Dovecot maildir_very_dirty_syncs включена по умолчанию, начиная с выпуска animails 2023-05. Этот параметр может значительно повысить производительность почтовых ящиков, содержащих очень большие папки (более 100 000 писем).
Эта опция позволяет избежать повторного сканирования всего каталога cur при каждой загрузке электронного письма. Если эта опция отключена, Dovecot перестраховывается и сканирует весь каталог cur (аналогично выполнению команды ls), чтобы проверить, не было ли затронуто конкретное письмо (переименовано и т. д.), разыскивая все файлы, чьи имена содержат нужный ID. Это происходит очень медленно, если каталог большой, даже на файловых системах, оптимизированных для таких сценариев (например, ext4 с включенным dir_index), и на быстрых SSD-дисках.
Эту опцию безопасно использовать до тех пор, пока вы не вносите изменения в файлы в каталоге cur вручную (в этом случае Dovecot может не заметить изменений). Даже при включенной опции Dovecot все равно заметит изменения, если изменится mtime файла (время последнего изменения), но в противном случае он не будет сканировать каталог, предполагая, что индекс актуален. По сути, это то же самое, что делают sdbox/mdbox, и с этой опцией вы можете получить часть того прироста производительности, который дают sdbox/mdbox, продолжая использовать maildir.
Использование этой опции безопасно в стандартной установке animails. Однако, если вы используете какие-либо сторонние инструменты, которые вручную изменяют файлы непосредственно в maildir (а не через IMAP), вы можете захотеть ее отключить. Чтобы отключить эту опцию, создайте файл data/conf/dovecot/extra.conf и добавьте в него следующий параметр:
maildir_very_dirty_syncs=no
Внимание
Пожалуйста, ВСЕГДА используйте вышеупомянутый extra.conf для ваших собственных настроек, так как изменения, внесенные в обычный dovecot.conf, могут быть перезаписаны после обновления исходного кода из GitHub.