7.6. Other Performance Considerations

This section introduces some other performance considerations.

7.6.1. Thundering Herd Problem

If num_init_children is large, it is possible that many Pgpool-II process are woke up and heavy context switching happens. This leads to high system load and hurt the overall system performance. This problem is called "the thundering herd problem". Enabling serialize_accept could solve the problem. Please note that for smaller num_init_children, serialize_accept might make the system performance worse. Please take a look at the guidance in serialize_accept section.

7.6.2. Disaster recovery settings

To create a disaster recovery setting, it is possible to deploy a Pgpool-II plus PostgreSQL primary server, and another Pgpool-II plus standby PostgreSQL server in a geographically distant place. Clients close to the standby server send read only queries to the Pgpool-II, being close to the standby server. However, since standby Pgpool-II sends internal queries to system catalog of primary PostgreSQL server, query performance may be getting worse. To avoid the problem, it is possible to use relcache_query_target so that such queries are sent to the standby. See relcache_query_target for more details.