Beräkningsplaner och parametrar
PostgreSQL-beräkningsplanerna — CPU, minne, lagring, instanser — parametrarna varje plan ställer in, vad en ändring startar om, och reglerna för dina egna parametrar.
Planerna
Det här är planerna som varje installation börjar med. CPU är varje instans begäran och gräns; minne är både begäran och gräns, eftersom PostgreSQL dimensionerar sina cacheminnen efter gränsen. Lagring är startstorleken på varje instans datavolym, och WAL-volymen en separat volym för transaktionsloggen.
| Plan | CPU | Minne | Lagring | WAL-volym | Instanser | Produktionsnivå |
|---|---|---|---|---|---|---|
nano |
0,1–0,5 | 512 MiB | 5 GiB | ingen | 1 | Nej |
small |
0,25–1 | 1 GiB | 10 GiB | 2 GiB | 1 | Nej |
medium |
0,5–2 | 2 GiB | 20 GiB | 4 GiB | 1 | Nej |
standard |
1–2 | 4 GiB | 50 GiB | 8 GiB | 3 | Ja |
large |
2–4 | 8 GiB | 100 GiB | 16 GiB | 3 | Ja |
xlarge |
4–8 | 16 GiB | 200 GiB | 32 GiB | 3 | Ja |
2xlarge |
8–12 | 32 GiB | 500 GiB | 64 GiB | 3 | Ja |
nanoochsmallanvänder installationens standardlagringsklass; de andra dess premiumklass.- En plan med en instans har ingen replik att gå över till: en nod som går sönder betyder driftstopp
medan instansen startas någon annanstans.
2xlargekräver noder med minst 32 GiB ledigt minne för en podd. - Produktionsnivåerna slår på PgBouncer — i transaktionsläge, med två instanser — för ett kluster som skapas med CLI:t eller API:t och inte anger något annat. Portalens guide lämnar valet till dig.
Driftansvariga kan lägga till egna planer; de visas i samma lista. Vilka planer en boundary får använda kan begränsas av dess policy för beräkningsplaner.
Custom
Plattformen räknar ut vilken plan ett kluster följer genom att jämföra dess CPU, minne och antal instanser med katalogen. När de inte motsvarar någon plan är klustret på Custom. Dit kommer du genom att justera resurser individuellt eller ändra antalet instanser, och därifrån genom att välja en plan — se Justera resurser individuellt.
Vad en ändring startar om
| Ändring | Effekt |
|---|---|
| Lagringen växer | Ingen |
| CPU, minne, antal instanser eller en parameter som kräver omstart, på en ensam instans | Databasen startas om och är kortvarigt otillgänglig |
| Samma sak, med fler än en instans före eller efter ändringen | Instanserna startas om en i taget; anslutningar till den primära bryts en gång |
| En ny huvudversion | Alla instanser stoppas medan uppgraderingen körs |
| Nätverksinställningar, säkerhetskopiering, poolning | Ingen omstart rapporteras |
Parametrarna som kräver omstart är max_connections, superuser_reserved_connections,
max_worker_processes, max_wal_senders, max_replication_slots, max_prepared_transactions,
max_locks_per_transaction, autovacuum_max_workers, shared_buffers, wal_buffers,
huge_pages, shared_preload_libraries, max_parallel_workers, track_commit_timestamp och
wal_level.
Härledda parametrar
En plan ställer in PostgreSQL efter sitt minne och sitt högsta antal anslutningar. Från planens minnesgräns:
shared_buffers— en fjärdedel;effective_cache_size— 70 %;maintenance_work_mem— 5 %, högst 2GB;work_mem—shared_buffersdelat medmax_connections, minst 4MB;
och på alla planer wal_compression = on, checkpoint_completion_target = 0.9 och
random_page_cost = 1.1. synchronous_commit lämnas på PostgreSQL:s standardvärde.
| Plan | shared_buffers |
effective_cache_size |
maintenance_work_mem |
work_mem |
max_connections |
|---|---|---|---|---|---|
nano |
128MB | 358MB | 25MB | 4MB | 50 |
small |
256MB | 716MB | 51MB | 4MB | 100 |
medium |
512MB | 1433MB | 102MB | 4MB | 150 |
standard |
1GB | 2867MB | 204MB | 5MB | 200 |
large |
2GB | 5734MB | 409MB | 6MB | 300 |
xlarge |
4GB | 11468MB | 819MB | 10MB | 400 |
2xlarge |
8GB | 22937MB | 1638MB | 16MB | 500 |
Värdena skrivs in i klustret när det skapas från en plan, och dina egna värden — se
Ange PostgreSQL-parametrar — ersätter dem ett och ett. Ett
senare planbyte ersätter dem inte i dag: ett kluster som flyttas till en annan plan behåller de
parametrar det hade, max_connections inräknad. Ange själv de som ska följa den nya storleken.
Parametrar du kan ange
- Ett namn består av bokstäver, siffror, understreck och punkter och börjar med en bokstav eller ett understreck; ett värde är en enda rad.
- De här parametrarna kontrolleras innan något skrivs, och ett värde som PostgreSQL skulle vägra vid start avvisas med skälet:
| Typ | Parametrar | Tas emot |
|---|---|---|
| Heltal | max_connections (1–262143), superuser_reserved_connections, max_worker_processes, max_wal_senders, max_replication_slots, max_prepared_transactions (0–262143), max_parallel_workers, max_parallel_workers_per_gather, max_parallel_maintenance_workers (0–1024), max_locks_per_transaction (minst 10), autovacuum_max_workers (1–262143), default_statistics_target (1–10000), effective_io_concurrency (0–1000) |
Ett heltal i intervallet |
| Tal | random_page_cost, seq_page_cost, checkpoint_completion_target |
Noll eller mer |
| Storlek | shared_buffers, effective_cache_size, work_mem, maintenance_work_mem, autovacuum_work_mem, temp_buffers, wal_buffers, min_wal_size, max_wal_size, wal_keep_size |
Ett tal, eventuellt med B, kB, MB, GB eller TB |
| Tidslängd | statement_timeout, lock_timeout, idle_in_transaction_session_timeout, checkpoint_timeout, autovacuum_naptime, deadlock_timeout, log_min_duration_statement, log_autovacuum_min_duration |
-1, eller ett tal, eventuellt med us, ms, s, min, h eller d |
| På eller av | jit, autovacuum, log_connections, log_disconnections, log_lock_waits, track_io_timing |
on, off, true, false, yes, no, 1, 0 |
| Val | huge_pages (on, off, try), log_statement (none, ddl, mod, all), wal_compression (on, off, pglz, lz4, zstd), synchronous_commit (on, off, local, remote_write, remote_apply) |
Ett av värdena |
Andra parametrar skickas till PostgreSQL utan kontroll. Operatorn sköter själv vissa parametrar och kan vägra ett värde för dem.