Hoppa till innehållet
Stackship-dokumentation English

PostgreSQLAnvändareMaskinöversatt

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
  • nano och small anvä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. 2xlarge krä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_buffers delat med max_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.