Как устранить замедления, вызванные HADR_FLAGS = STANDBY_RECV_BLOCKED? - PullRequest
0 голосов
/ 06 ноября 2019

У нас было серьезное замедление наших приложений в нашей среде HADR. Когда мы запускаем db2pd -hadr, мы видим следующее:

HADR_FLAGS = STANDBY_RECV_BLOCKED
STANDBY_RECV_BUF_PERCENT = 100
STANDBY_SPOOL_PERCENT = 100

Они восстановились позже и теперь выглядят лучше, когда STANDBY_SPOOL_PERCENT постепенно снижается. Не могли бы вы помочь понять значение этих параметров и понять, что нужно сделать, чтобы мы не попали в такую ​​ситуацию?

1 Ответ

1 голос
/ 06 ноября 2019

Эта проблема, скорее всего, вызвана пиковым количеством транзакций, происходящих на первичном сервере. Резервный приемный буфер и катушка насыщены. Если вы не используете параметр конфигурации HADR_SYNCMODE в режиме SUPERASYNC, вы можете попасть в эту ситуацию. Замедление работы приложения было вызвано первичным ожиданием подтверждения от резервного устройства, что оно получило файл журнала, но поскольку буферы буфера и приема были заполнены в то время, резервное устройство задерживало это подтверждение.

Вы можете рассмотреть возможность установки HADR_SYNCMODE в SUPERASYNC, но это также будет означать, что система будет более уязвимой для потери данных в случае сбоя на первичном сервере. Чтобы управлять этими временными пиками, вы можете внести одно из следующих изменений конфигурации:

  • Увеличить размер буфера приема журнала в резервной базе данных, изменив значение DB2_HADR_BUF_SIZE переменная реестра.
  • Включите буферизацию журнала в резервной базе данных, установив HADR_SPOOL_LIMIT

Для получения дополнительной информации см. Руководство по производительности HADR

...