Batasan pada Azure Database for PostgreSQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Fleksibel

Bagian berikut ini menjelaskan kapasitas dan batas fungsional di server fleksibel Azure Database for PostgreSQL. Jika Anda ingin mempelajari tentang tingkat sumber daya (komputasi, memori, penyimpanan), lihat artikel komputasi dan penyimpanan .

Koneksi maksimum

Tabel berikut menunjukkan jumlah koneksi maksimum default untuk setiap tingkat harga dan konfigurasi vCore. Server fleksibel Azure Database for PostgreSQL mencadangkan 15 koneksi untuk replikasi fisik dan pemantauan instans server fleksibel Azure Database for PostgreSQL. Akibatnya, nilai untuk koneksi pengguna maksimum yang tercantum dalam tabel berkurang 15 dari total koneksi maksimum.

Nama produk vCore Ukuran memori Koneksi maksimum Koneksi pengguna maksimum
Mudah meledak
B1ms 1 2 GiB 50 35
B2s 2 4 GiB 429 414
B2ms 2 8 GiB 859 844
B4ms 4 16 GiB 1,718 1,703
B8ms 8 32 GiB 3.437 3,422
B12ms 12 48 GiB 5\.000 4,985
B16ms 16 64 GiB 5\.000 4,985
B20ms 20 80 GiB 5\.000 4,985
Tujuan Umum
D2s_v3 / D2ds_v4 / D2ds_v5 / D2ads_v5 2 8 GiB 859 844
D4s_v3 / D4ds_v4 / D4ds_v5 / D4ads_v5 4 16 GiB 1,718 1,703
D8s_v3 / D8ds_V4 / D8ds_v5 / D8ads_v5 8 32 GiB 3.437 3,422
D16s_v3 / D16ds_v4 / D16ds_v5 / D16ads_v5 16 64 GiB 5\.000 4,985
D32s_v3 / D32ds_v4 / D32ds_v5 / D32ads_v5 32 128 GiB 5\.000 4,985
D48s_v3 / D48ds_v4 / D48ds_v5 / D48ads_v5 48 192 GiB 5\.000 4,985
D64s_v3 / D64ds_v4 / D64ds_v5 / D64ads_v5 64 256 GiB 5\.000 4,985
D96ds_v5 / D96ads_v5 96 384 GiB 5\.000 4,985
Memori dioptimalkan
E2s_v3 / E2ds_v4 / E2ds_v5 / E2ads_v5 2 16 GiB 1,718 1,703
E4s_v3 / E4ds_v4 / E4ds_v5 / E4ads_v5 4 32 GiB 3.437 3,422
E8s_v3 / E8ds_v4 / E8ds_v5 / E8ads_v5 8 64 GiB 5\.000 4,985
E16s_v3 / E16ds_v4 / E16ds_v5 / E16ads_v5 16 128 GiB 5\.000 4,985
E20ds_v4 / E20ds_v5 / E20ads_v5 20 160 GiB 5\.000 4,985
E32s_v3 / E32ds_v4 / E32ds_v5 / E32ads_v5 32 256 GiB 5\.000 4,985
E48s_v3 / E48ds_v4 / E48ds_v5 / E48ads_v5 48 384 GiB 5\.000 4,985
E64s_v3 / E64ds_v4 / E64ds_v5 / E64ads_v5 64 432 GiB 5\.000 4,985
E96ds_v5 / E96ads_v5 96 672 GiB 5\.000 4,985

Slot koneksi yang dipesan, saat ini pada 15, dapat berubah. Kami menyarankan untuk memverifikasi total koneksi yang dipesan secara teratur di server. Anda menghitung angka ini dengan menjumlahkan nilai reserved_connections parameter server dan superuser_reserved_connections . Jumlah maksimum koneksi pengguna yang tersedia adalah max_connections - ( + reserved_connectionssuperuser_reserved_connections).

Nilai default untuk max_connections parameter server dihitung saat Anda menyediakan instans server fleksibel Azure Database for PostgreSQL, berdasarkan nama produk yang Anda pilih untuk komputasinya. Setiap perubahan pemilihan produk berikutnya pada komputasi yang mendukung server fleksibel tidak akan berpengaruh pada nilai default untuk parameter server instans tersebut max_connections . Kami menyarankan agar setiap kali Anda mengubah produk yang ditetapkan ke instans, Anda juga menyesuaikan nilai untuk max_connections parameter sesuai dengan nilai dalam tabel sebelumnya.

Mengubah nilai max_connections

Saat pertama kali menyiapkan instans server fleksibel Azure Database for Postgres, instans server fleksibel secara otomatis memutuskan jumlah koneksi tertinggi yang dapat ditangani secara bersamaan. Nomor ini didasarkan pada konfigurasi server Anda dan tidak dapat diubah.

Namun, Anda dapat menggunakan max_connections pengaturan untuk menyesuaikan berapa banyak koneksi yang diizinkan pada waktu tertentu. Setelah mengubah pengaturan ini, Anda perlu memulai ulang server agar batas baru mulai berfungsi.

Perhatian

Meskipun dimungkinkan untuk meningkatkan nilai max_connections di luar pengaturan default, kami menyarankan untuk melawannya.

Instans mungkin mengalami kesulitan ketika beban kerja meluas dan menuntut lebih banyak memori. Ketika jumlah koneksi meningkat, penggunaan memori juga naik. Instans dengan memori terbatas mungkin menghadapi masalah seperti crash atau latensi tinggi. Meskipun nilai yang lebih tinggi mungkin max_connections dapat diterima ketika sebagian besar koneksi diam, itu dapat menyebabkan masalah performa yang signifikan setelah aktif.

Jika Anda memerlukan lebih banyak koneksi, kami sarankan Anda menggunakan PgBouncer, solusi Azure bawaan untuk manajemen kumpulan koneksi. Gunakan dalam mode transaksi. Untuk memulai, kami sarankan Anda menggunakan nilai konservatif dengan mengalikan vCore dalam rentang 2 hingga 5. Setelah itu, pantau pemanfaatan sumber daya dan performa aplikasi dengan cermat untuk memastikan kelancaran operasi. Untuk informasi terperinci tentang PgBouncer, lihat PgBouncer di Azure Database for PostgreSQL - Server Fleksibel.

Saat koneksi melebihi batas, Anda mungkin menerima kesalahan berikut:

FATAL: sorry, too many clients already.

Saat Anda menggunakan server fleksibel Azure Database for PostgreSQL untuk database yang sibuk dengan sejumlah besar koneksi bersamaan, mungkin ada ketegangan yang signifikan pada sumber daya. Ketegangan ini dapat mengakibatkan pemanfaatan CPU yang tinggi, terutama ketika banyak koneksi dibuat secara bersamaan dan ketika koneksi memiliki durasi pendek (kurang dari 60 detik). Faktor-faktor ini dapat berdampak negatif pada performa database secara keseluruhan dengan meningkatkan waktu yang dihabiskan untuk memproses koneksi dan pemutusan sambungan.

Ketahuilah bahwa setiap koneksi di server fleksibel Azure Database for PostgreSQL, terlepas dari apakah itu menganggur atau aktif, menggunakan sejumlah besar sumber daya dari database Anda. Konsumsi ini dapat menyebabkan masalah performa di luar pemanfaatan CPU yang tinggi, seperti ketidakcocokan disk dan kunci. Artikel Jumlah Koneksi database di Wiki PostgreSQL membahas topik ini secara lebih rinci. Untuk mempelajari selengkapnya, lihat Mengidentifikasi dan menyelesaikan performa koneksi di server fleksibel Azure Database for PostgreSQL.

Batasan fungsional

Bagian berikut mencantumkan pertimbangan untuk apa itu dan tidak didukung di server fleksibel Azure Database for PostgreSQL.

Operasi skala

  • Saat ini, peningkatan skala penyimpanan server memerlukan mulai ulang server.
  • Penyimpanan server hanya dapat diskalakan dalam kenaikan 2x, lihat Penyimpanan untuk detailnya.
  • Mengurangi ukuran penyimpanan server saat ini tidak didukung. Satu-satunya cara untuk dilakukan adalah mencadangkan dan memulihkannya ke instans server fleksibel Azure Database for PostgreSQL baru.

Penyimpanan

  • Setelah mengonfigurasi ukuran penyimpanan, Anda tidak dapat menguranginya. Anda harus membuat server baru dengan ukuran penyimpanan yang diinginkan, melakukan operasi pencadangan dan pemulihan manual, dan memigrasikan database Anda ke server baru.
  • Ketika penggunaan penyimpanan mencapai 95% atau jika kapasitas yang tersedia kurang dari 5 GiB (mana pun yang lebih), server secara otomatis dialihkan ke mode baca-saja untuk menghindari kesalahan yang terkait dengan situasi penuh disk. Dalam kasus yang jarang terjadi, jika tingkat pertumbuhan data melampaui waktu yang diperlukan untuk beralih ke mode baca-saja, server Anda mungkin masih kehabisan penyimpanan. Anda dapat mengaktifkan pertumbuhan otomatis penyimpanan untuk menghindari masalah ini dan secara otomatis menskalakan penyimpanan Anda berdasarkan tuntutan beban kerja Anda.
  • Sebaiknya atur aturan pemberitahuan untuk storage used atau storage percent ketika melebihi ambang batas tertentu sehingga Anda dapat secara proaktif mengambil tindakan seperti meningkatkan ukuran penyimpanan. Misalnya, Anda dapat mengatur pemberitahuan jika persentase penyimpanan melebihi penggunaan 80%.
  • Jika Anda menggunakan replikasi logis, Anda harus menghilangkan slot replikasi logis di server utama jika pelanggan yang sesuai tidak lagi ada. Jika tidak, file write-ahead logging (WAL) terakumulasi di primer dan mengisi penyimpanan. Jika penyimpanan melebihi ambang tertentu dan jika slot replikasi logis tidak digunakan (karena pelanggan yang tidak tersedia), server fleksibel Azure Database for PostgreSQL secara otomatis menghilangkan slot replikasi logis yang tidak digunakan. Tindakan tersebut merilis akumulasi file WAL dan mencegah server Anda menjadi tidak tersedia karena penyimpanan diisi.
  • Kami tidak mendukung pembuatan ruang tabel. Jika Anda membuat database, jangan berikan nama ruang tabel. Server fleksibel Azure Database for PostgreSQL menggunakan server default yang diwarisi dari database templat. Tidak aman untuk menyediakan ruang tabel seperti ruang tabel sementara, karena kami tidak dapat memastikan bahwa objek tersebut akan tetap persisten setelah peristiwa seperti restart server dan failover ketersediaan tinggi (HA).

Jaringan

  • Memindahkan masuk dan keluar dari jaringan virtual saat ini tidak didukung.
  • Menggabungkan akses publik dengan penyebaran di jaringan virtual saat ini tidak didukung.
  • Aturan firewall tidak didukung pada jaringan virtual. Anda dapat menggunakan kelompok keamanan jaringan sebagai gantinya.
  • Server database akses publik dapat tersambung ke internet publik; misalnya, melalui postgres_fdw. Anda tidak dapat membatasi akses ini. Server di jaringan virtual dapat membatasi akses keluar melalui grup keamanan jaringan.

Ketersediaan tinggi

Zona ketersediaan

  • Memindahkan server secara manual ke zona ketersediaan yang berbeda saat ini tidak didukung. Namun, dengan menggunakan zona ketersediaan pilihan sebagai zona siaga, Anda dapat mengaktifkan KETERSEDIAAN TINGGI. Setelah Anda membuat zona siaga, Anda dapat melakukan failover ke zona siaga tersebut, lalu menonaktifkan KETERSEDIAAN TINGGI.

Mesin postgres, ekstensi, dan PgBouncer

  • Postgres 10 dan versi yang lebih lama tidak didukung, karena komunitas sumber terbuka menghentikannya. Jika Anda harus menggunakan salah satu versi ini, Anda perlu menggunakan opsi server tunggal Azure Database for PostgreSQL, yang mendukung versi utama yang lebih lama 9.5, 9.6, dan 10.
  • Server fleksibel Azure Database for PostgreSQL mendukung semua contrib ekstensi dan banyak lagi. Untuk informasi selengkapnya, lihat Ekstensi PostgreSQL.
  • Pengumpul koneksi PgBouncer bawaan saat ini tidak tersedia untuk server Burstable.

Menghentikan/memulai operasi

  • Setelah Anda menghentikan instans server fleksibel Azure Database for PostgreSQL, instans server fleksibel secara otomatis dimulai setelah 7 hari.

Pemeliharaan Terjadwal

  • Anda dapat mengubah jendela pemeliharaan kustom menjadi hari/waktu dalam seminggu. Namun, setiap perubahan yang Anda buat setelah menerima pemberitahuan pemeliharaan tidak akan berdampak pada pemeliharaan berikutnya. Perubahan hanya berlaku dengan pemeliharaan terjadwal bulanan berikut.

Pencadangan server

  • Sistem mengelola cadangan. Saat ini tidak ada cara untuk menjalankan pencadangan secara manual. Sebaiknya gunakan pg_dump sebagai gantinya.

  • Rekam jepret pertama adalah cadangan penuh, dan rekam jepret berturut-turut adalah cadangan diferensial. Cadangan diferensial hanya mencadangkan data yang diubah sejak pencadangan rekam jepret terakhir.

    Misalnya, jika ukuran database Anda adalah 40 GB dan penyimpanan yang disediakan adalah 64 GB, cadangan rekam jepret pertama akan menjadi 40 GB. Sekarang, jika Anda mengubah data 4 GB, ukuran cadangan rekam jepret diferensial berikutnya hanya akan menjadi 4 GB. Log transaksi (log write-ahead) terpisah dari cadangan penuh dan diferensial, dan diarsipkan terus menerus.

Pemulihan server

  • Saat Anda menggunakan fitur pemulihan point-in-time (PITR), server baru dibuat dengan konfigurasi komputasi dan penyimpanan yang sama dengan server yang menjadi dasarnya.
  • Server database di jaringan virtual dipulihkan ke jaringan virtual yang sama saat Anda memulihkan dari cadangan.
  • Server baru yang dibuat selama proses pemulihan tidak memiliki aturan firewall yang ada di server asli. Anda perlu membuat aturan firewall secara terpisah untuk server baru.
  • Pemulihan ke langganan lain tidak didukung. Sebagai solusinya, Anda dapat memulihkan server dalam langganan yang sama lalu memigrasikan server yang dipulihkan ke langganan lain.