PostgreSQL 9.5 Запаздывание репликации на EC2 - PullRequest
0 голосов
/ 28 января 2020

У меня есть серия PostgreSQL 9,5 серверов, работающих на r4.16xlarge экземплярах и Amazon Linux 1, которые начали испытывать задержку репликации в несколько секунд, начиная с этой недели. Конфигурации были изменены, но старые конфиги не были сохранены, поэтому я не уверен, какие были предыдущие настройки. Вот пользовательские значения:

max_connections = 1500
shared_buffers = 128GB
effective_cache_size = 132GB
maintenance_work_mem = 128MB
checkpoint_completion_target = 0.7
wal_buffers = 16MB
default_statistics_target = 100
#effective_io_concurrency = 10
work_mem = 128MB
min_wal_size = 1GB
max_wal_size = 2GB
max_worker_processes = 64
synchronous_commit = off

Структура диска следующая: 4 диска для диска xlog и 10 для обычного раздела, все gp2 тип диска.

Personalities : [raid0]
md126 : active raid0 xvdo[3] xvdn[2] xvdm[1] xvdl[0]
      419428352 blocks super 1.2 512k chunks

md127 : active raid0 xvdk[9] xvdj[8] xvdi[7] xvdh[6] xvdg[5] xvdf[4] xvde[3] xvdd[2] xvdc[1] xvdb[0]
      2097146880 blocks super 1.2 512k chunks

Главный сервер является экземпляром c4.8xlarge меньшего размера с этой настройкой:

max_connections = 1500
shared_buffers = 15GB
effective_cache_size = 45GB
maintenance_work_mem = 1GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 16
work_mem = 26MB
min_wal_size = 1GB
max_wal_size = 2GB
max_worker_processes = 36

С этой схемой дисков:

Personalities : [raid0]
md126 : active raid0 xvdd[2] xvdc[1] xvdb[0] xvde[3]
      419428352 blocks super 1.2 512k chunks

md127 : active raid0 xvdr[12] xvdg[1] xvdo[9] xvdl[6] xvdh[2] xvdf[0] xvdp[10] xvdu[15] xvdm[7] xvdj[4] xvdn[8] xvdk[5] xvdi[3] xvds[13] xvdt[14] xvdq[11]
      3355435008 blocks super 1.2 512k chunks

Я думаю, я ищу оптимальные настройки для этих двух экземпляров типы, чтобы я мог устранить задержку репликации. Ни один из серверов я бы не назвал сильно загруженным.

1 Ответ

0 голосов
/ 29 января 2020

При дальнейшем копании я обнаружил, что следующий параметр исправил задержку репликации:

hot_standby_feedback = on

Это может привести к вздутию живота WAL на ведущем устройстве, но теперь отставание исчезло.

...