POSETTE 2026 konferensiyasida Sai Srirampur "Postgres Isn’t Slow. Your Storage Is" mavzusida ma'ruza qildi. Ushbu ma'ruza PostgreSQL performansining saqlash tizimiga bog'liq ekanligi haqida so'z yuritdi. Ma'ruza natijalari, lokal NVMe ishlatishning afzalliklari va ishlab chiqarish uchun taklif qilingan arxitektura haqida gap keldi.
PostgreSQL Tezkorligi Muammolari
PostgreSQL ishlatuvchilar ko'pincha quyidagi muammolar bilan uchrashadilar:
- Sekin ma'lumot kiritish: UPDATE va UPSERT operatsiyalarining sekinlashuvi.
- Noyob o'qish kechikishlari: Ba'zi so'rovlar sekinlashishi va P95 kechikishning o'sishi.
- VACUUM kechikishi: Autovacuum operatsiyalarining kechikishi va table bloatning yig'ilishi.
- Sevinishlar kechikishi: Checkpoint operatsiyalarining kechikishi va resurslar bilan raqobatlashishi.
- Logical replication kechikishi: PostgreSQL ma'lumotlarining boshqa tizimlarga o'tkazilishi va WAL decodingning kechikishi.
Saqlash Tizimining Ta'siri
Bu muammolar ko'pincha saqlash tizimining past performansi bilan bog'liq. Saqlash tizimining past tezligi ma'lumotlarni o'qish va yozish operatsiyalarining kechikishiga sabab bo'lishi mumkin. Bu esa PostgreSQL performansiga salbiy ta'sir ko'rsatadi.
Lokal NVMe Afzalliklari
Lokal NVMe ishlatilishi saqlash tizimining past performansi muammosini hal qilishga yordam beradi. NVMe tizimlari millisekundlar darajasidagi operatsiyalarni mikrosekundlarga qisqartiradi. Bu esa PostgreSQL performansini sezilarli darajada oshiradi.
Benchmark Natijalari
Sai Srirampur 3.3 milliard qatorli PostgreSQL yukini lokal NVMe va EBS tizimlarida taqqosladi. Natijalar shuni ko'rsatdiki, NVMe tizimlarida TPS 16,030 ga yetdi, EBS tizimlarida esa 1,734 TPS. Bu 9.24 marta farqni tashkil etdi.
VACUUM operatsiyalarida NVMe tizimlarida 10 GB bloatni 366 sekundda, EBS tizimlarida esa 964 sekundda tozaladi. Logical replication kechikishlari ham NVMe tizimlarida 139 sekundda, EBS tizimlarida esa 238 sekundda tozalandi.
Natijalar Tahlili
EBS tizimlarida kechikishning asosiy sababi saqlash tizimidagi kutilishlar edi. Page reads operatsiyalarida EBS tizimlarida 19 ms, NVMe tizimlarida esa 0.3 ms vaqt sarflandi. WAL fsync operatsiyalarida EBS tizimlarida 11 ms, NVMe tizimlarida esa 1.5 ms vaqt sarflandi.
CPU ishlashi ikki tizimda taxminan bir xil edi, ammo saqlash tizimidagi kutilishlar EBS tizimlarida ko'proq vaqtni egalladi.
Yakun
Lokal NVMe ishlatilishi PostgreSQL performansini sezilarli darajada oshiradi. Bu esa ma'lumot kiritish, o'qish va yozish operatsiyalarining tezlashuviga olib keladi. Saqlash tizimining past performansi muammosi hal qilinsa, PostgreSQL ishlatuvchilar ko'proq samarali ishlashlari mumkin.
Asl manba: clickhouse.com