postgreSQL のフルバキュームを実行すると、Zabbix Server がほとんど動かなくなる

【現在の環境】
OS:RockyLinux 8.4
Zabbix server:5.4.7
Zabbix agent2: 5.4.7
PostgreSQL:13.3

現在、毎週土曜日の 22時から、cron にて、postgreSQL のフルバキューム(/usr/bin/vacuumdb -a -f)を実行しており、
その処理に約30分ほど要しているのですが、その間 Zabbix Server がほとんど動かない状態となってしまい、
フルバキュームが終了したのちに、その間処理できなかったトリガーに関する多量の障害が通知される
という状態になっています。

ちなみに、zabbix_server.log では、通常 1分間に 10件以上のログが出力されているのですが、
フルバキュームを実施した時間帯の 1分間のログの出力件数は、以下のように、
フルバキュームを開始した 22:00 からログの件巣が減少し、22:01~22:24の間は全くログがなく、
フルバキュームが終了した 22:30 に多量の通知がされたという状況です。

20220402:2157 17
20220402:2158 12
20220402:2159 12
20220402:2200 2
20220402:2225 6
20220402:2228 5
20220402:2229 14
20220402:2230 249
20220402:2231 22
20220402:2232 19

ただ、22:00~22:30 の間、zabbix server が全く動いていなかったのかというと、そうでもなく、
zabbix server を実行しているホストのダッシュボードの System performance の CPU usage のグラフを見ると、
22:00 から CPU iowait time が 50%近く(vCPU 1つ分ほとんど)を占めている状態のグラフが 22:09 まで出力され、
その後、22:28 からグラフが再開したという状況になっておりました。
(他のホストに関するグラフも同様な状況です)

また、フルではないバキューム(/usr/bin/vacuumdb -a)は毎日 24時に実施しています。

このような状況下において、zsbbix server の動作に支障がない形でフルバキュームを実行するにはどうすればよいのでしょうか?
それとも、フルバキュームはやめるべき、もしくは、実施頻度を変えるべきなのでしょうか?

なお、AWS を利用しているため、PostgreSQL のデータ用のストレージの性能を上げることも可能なのですが、
zabbix server でのアクセスの場合、IOPS と スループットのどちらの性能を上げると効果がありますでしょうか?
現状は gp3 のデフォルトの IOPS:3000、スループット:125 で運用しており、
前述の高負荷状態におけるストレージの状態は以下の通りです。
 Disk read rate の最大値 780 r/s
 Disk write rate の最大値 820 w/s
 Disk average que size の最大値 5.7
 Disk utilization の最大値 98%

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー hige.no.papa の写真

postgreSQL には疎くて、Zabbix を使うためだけに使用しているというレベルなため、こちらで質問させていただきましたが、
本件は、Zabbix の問題というよりは、postgreSQL の問題ということで、ご回答はいただけていないのかもしれないので、自分で調べてみました。

https://wiki.postgresql.org/wiki/VACUUM_FULL/ja
を参照したところ

ネットワーク上の間違ったアドバイスや「優れている」に違いないという仮定に基づき、多くの人は定期的に自身のテーブルに対してVACUUM FULLを実行しています。 これは一般的に本当に間違った考えであり、自身のデータベースを高速にではなく低速にしています。

テーブルに対してVACUUM FULLを実行する時、その操作の間テーブルはロックされます。 このためそのテーブルに対する作業を行うことはできません。 VACUUM FULLは通常のVACUUMより非常に低速ですので、そのテーブルはしばらく利用できなくなるかもしれません。

といった記述があり、私共の環境での事象とも合致いたしましたので、cron でのバキューム実施は行わないようにいたしました。