Perencanaan Kapasitas dan Audit Bloat
Prakirakan pertumbuhan disk dan IOPS, audit bloat tabel dan indeks secara berkala, serta rencanakan peningkatan sebelum kehabisan kapasitas
Perencanaan Kapasitas dan Audit Bloat adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang Perlu Diproyeksikan
Untuk menentukan kapasitas basis data selama 6–12 bulan ke depan, Anda perlu memproyeksikan:
- Penggunaan disk (data + WAL + indeks)
- Kebutuhan IOPS
- Working set RAM
- Jumlah koneksi
Pertumbuhan Disk
Amati tren pertumbuhan terbaru:
SELECT pg_size_pretty(pg_database_size(current_database()));
SELECT pg_size_pretty(pg_total_relation_size(t.oid)) AS total,
relname
FROM pg_class t
WHERE relkind = 'r'
ORDER BY pg_total_relation_size(t.oid) DESC LIMIT 20;Pelacakan Pertumbuhan per Tabel
Jadwalkan tugas pencatatan metrik dan buat grafiknya:
INSERT INTO size_history (ts, tablename, size_bytes)
SELECT NOW(), relname, pg_total_relation_size(oid)
FROM pg_class WHERE relkind = 'r';Estimasi IOPS
Tabel yang paling banyak melakukan I/O baca terlihat di pg_stat_user_tables:
SELECT relname, seq_tup_read, idx_tup_fetch,
seq_tup_read + idx_tup_fetch AS total_reads
FROM pg_stat_user_tables
ORDER BY total_reads DESC LIMIT 20;Menentukan Kapasitas RAM
shared_buffers ≈ 25% RAM. effective_cache_size ≈ 75% (petunjuk bagi perencana, bukan alokasi). work_mem per koneksi × jumlah koneksi tidak boleh melebihi RAM yang tersedia.
Audit Pembengkakan
Temukan tabel dengan baris mati terbanyak:
SELECT relname,
n_live_tup,
n_dead_tup,
round(n_dead_tup::numeric / NULLIF(n_live_tup, 0), 2) AS dead_ratio,
last_autovacuum
FROM pg_stat_user_tables
ORDER BY n_dead_tup DESC
LIMIT 20;Pembengkakan Indeks
Gunakan pgstattuple atau alat bawaan:
CREATE EXTENSION pgstattuple;
SELECT relname,
pg_size_pretty(pg_relation_size(indexrelid)) AS size,
(pgstatindex(indexrelid::regclass)).leaf_fragmentation
FROM pg_stat_user_indexes
ORDER BY pg_relation_size(indexrelid) DESC LIMIT 20;Indeks yang Tidak Digunakan
Temukan dan hapus indeks tersebut — indeks menghabiskan sumber daya penulisan:
SELECT schemaname, relname, indexrelname,
pg_size_pretty(pg_relation_size(indexrelid))
FROM pg_stat_user_indexes
WHERE idx_scan = 0
AND indexrelname NOT LIKE '%_pkey'
ORDER BY pg_relation_size(indexrelid) DESC;Audit Koneksi
Berapa banyak klien yang terhubung, dan dalam keadaan apa:
SELECT datname, usename, application_name, state, COUNT(*)
FROM pg_stat_activity
GROUP BY 1,2,3,4 ORDER BY 5 DESC;Transaksi Panjang
Penyebab terhambatnya vacuum:
SELECT pid, state, xact_start, NOW() - xact_start AS xact_age, query
FROM pg_stat_activity
WHERE xact_start IS NOT NULL
ORDER BY xact_age DESC NULLS LAST LIMIT 20;WAL dan Arsip
Pantau laju pembuatan WAL untuk menentukan kapasitas penyimpanan arsip:
SELECT pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), '0/0')) AS total_wal_generated;Rencanakan Pengalihan Saat Gagal
Disk replika harus sama dengan disk primer. Pastikan laju penyelarasan replika ≥ laju penulisan primer.
Ringkasan
Perencanaan kapasitas berarti membuat grafik metrik yang tepat.
- Pertumbuhan ukuran per tabel
- Rasio baris mati
- Indeks yang tidak digunakan
- Transaksi panjang yang memblokir vacuum
- Jumlah koneksi
Pemeriksaan Singkat
Tampilan mana yang Anda kueri untuk menemukan tabel dengan baris mati terbanyak sebagai bagian dari perencanaan vacuum?
Belajar SQL dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 46
- Pelajaran
- 183
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Perencanaan Kapasitas dan Audit Bloat” gratis?
Ya — teks lengkap “Perencanaan Kapasitas dan Audit Bloat” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Perencanaan Kapasitas dan Audit Bloat”?
Prakirakan pertumbuhan disk dan IOPS, audit bloat tabel dan indeks secara berkala, serta rencanakan peningkatan sebelum kehabisan kapasitas Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Perencanaan Kapasitas dan Audit Bloat” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- pg_stat_statements: Kueri Teratas
- pgBadger untuk Analisis Log
- Pengumpulan Koneksi: PgBouncer
- Perencanaan Kapasitas dan Audit Bloat