When there is a bulk load on the database server it can reach the threshold set using the max_wal_size (for v9.5 and greater) / checkpoint_segments for v9.4 and lower PostgresDB and if the checkpoints are occurring very frequently the database starts logging the below messages
Example logs for PG/EPAS v9.5+ 2019-02-01 04:10:11 CET : [7771-00000] user=,db=,app=,client= LOG: checkpoints are occurring too frequently (16 seconds apart)
2019-02-01 04:10:11 CET : [7772-00000] user=,db=,app=,client= HINT: Consider increasing the configuration parameter "max_wal_size".
For PG/EPAS v9.4 or lower 2019-03-13 23:52:26 IST LOG: checkpoints are occurring too frequently (24 seconds apart)
2019-03-13 23:52:26 IST HINT: Consider increasing the configuration parameter "checkpoint_segments".
The message are at 'LOG' level does and it is NOT error/fatal messages ..does that impact database server?
Yes. Checkpoints are fairly expensive.
1. At checkpoint time, all dirty data pages are flushed to disk. So, frequent checkpoint consume OS resources, causing high IO
2. They result in extra subsequent WAL traffic.
By default the full_page_write is set to "on" which is recommended as well to ensure data page consistency, the first modification of a data page after each checkpoint results in logging the entire page content. In that case, a smaller checkpoint interval increases the volume of output to the WAL log.
We can check that when frequent checkpoint occurs the amount WALs generated is due to full page write using the pg_waldump stats which
says in below example FPI (Full page image size): 88%