I have a few databases with several TB-sized tables. We recently moved one of those databases from AWS EC2 to GCP. Today I ran VACUUM FREEZE on those tables and every time I saw our application freezing up (and throwing tons of errors) for a few minutes right after the message about the end of vacuum (duration: 30182257.392 ms statement: vacuum freeze verbose ...). We never saw anything like that on AWS.
The database is 9.6. At the moment I have no details about the storage configuration on GCP. The machine was set up by another department.
Any suggestions on why that is happening and how to prevent it would be appreciated.
The first thing to check is that you're using SSD PDs, not regular PDs.
Second: GCP has 2 rules for disk IO throttling (independent for regular PDs and SSD PDs): based on disk size, and based on the number of vCPUs. You need more vCPUs to get maximum disk IO, which may be counter-intuitive. I suggest checking out the docs and benchmarking the disks using fio: