Здравствуйте,
Мы периодически сталкиваемся с огромной нагрузкой на хранилище при выполнении транзакций. Мы не смогли выявить никакого расписания или временного паттерна для этого события, но оно происходит как минимум раз в день. Длительность также варьируется от 10 минут до нескольких часов.
Во время таких нагрузок вся наша установка ведёт себя немного странно: например, чтение тем не распознаётся, поэтому они продолжают отображаться в разделах «Новые» и/или «Непрочитанные».
Кажется, что Discourse перемещает огромные объёмы файлов. В частности, увеличивается количество операций READ. Мы уже проверили, не растёт ли также внешний трафик, но он остаётся неизменным. Затронут только трафик между Discourse и хранилищем.
Мы впервые заметили это поведение после обновления с версии Discourse 2.4.0.beta9 до 2.4.0.beta10, но не уверены, не происходило ли это и раньше. Сейчас мы работаем на версии 2.5.0.beta4.
Наша установка Discourse работает в среде Azure с Premium Storage, подключённым через SMBv3, который обычно функционирует вполне стабильно.
Может ли кто-то объяснить, что происходит? Сначала мы подозревали задание sidekiq MigrateUploadScheme, но если это задание отвечает за такие транзакции, мы должны были бы видеть такую высокую нагрузку гораздо чаще, чем это происходит. Кроме того, мы не нашли других заданий, которые могли бы быть причиной.
Из-за «всплесков IOPS» вы можете видеть этот пик примерно на уровне 800 тыс. транзакций за 30 минут. После исчерпания кредитов нагрузка снижается до ~250 тыс. транзакций за 30 минут. Поэтому, пожалуйста, не обращайте внимания на этот пик — это просто ограниченный/кредитованный бонус уровня хранилища Azure.
Обычно у нас наблюдается от 5 до 40 тыс. транзакций за 30 минут.
На данный момент мы не понимаем, куда смотреть, и будем признательны за любую идею или подсказку.
С уважением,
Саша

