shared_buffers - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

shared_buffers

shared_buffersParameter mengontrol jumlah memori yang PostgreSQL gunakan untuk menyimpan data dalam memori. Menyetel parameter ini ke nilai yang sesuai dapat membantu meningkatkan kinerja kueri.

Untuk Amazon RDS, nilai default untuk shared_buffers diatur ke {DBInstanceClassMemory/32768} byte, berdasarkan memori yang tersedia untuk instans DB. Untuk Aurora, nilai default diatur ke{DBInstanceClassMemory/12038,-50003}, berdasarkan memori yang tersedia untuk instans DB. Nilai optimal untuk parameter ini tergantung pada beberapa faktor, termasuk ukuran database, jumlah koneksi bersamaan, dan memori instance yang tersedia.

AWS CLI sintaks

Perintah berikut berubah shared_buffers untuk grup parameter DB tertentu. Perubahan ini berlaku untuk semua instance atau cluster yang menggunakan grup parameter.

# Modify shared_buffers on a DB parameter group aws rds modify-db-parameter-group \ --db-parameter-group-name <parameter_group_name> \ --parameters "ParameterName=shared_buffers,ParameterValue=<new_value>,ApplyMethod=immediate" # Modify shared_buffers on a DB cluster parameter group aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name <parameter_group_name> \ --parameters "ParameterName=shared_buffers,ParameterValue=<new-value>,ApplyMethod=immediate"

Jenis: Statis (menerapkan perubahan membutuhkan reboot)

Nilai default: {DBInstanceClassMemory/32768} byte di Amazon RDS untuk PostgreSQL, di Aurora {DBInstanceClassMemory/12038,-50003} PostgreSQL kompatibel. Dalam kebanyakan kasus, persamaan ini ternyata sekitar 25 persen dari memori sistem Anda. Mengikuti pedoman ini, shared_buffers pengaturan dalam grup parameter diatur dengan menggunakan unit default PostgreSQL dari buffer 8K alih-alih byte atau kilobyte.

Pengaturan shared_buffers parameter dapat berdampak signifikan pada kinerja, jadi sebaiknya Anda menguji perubahan secara menyeluruh untuk memastikan bahwa nilainya sesuai dengan beban kerja Anda.

Contoh

Katakanlah Anda memiliki aplikasi layanan keuangan yang menjalankan database PostgreSQL di Amazon RDS atau Aurora. Database ini digunakan untuk menyimpan data transaksi pelanggan. Ini memiliki sejumlah besar tabel dan diakses oleh beberapa aplikasi pada sejumlah besar server. Aplikasi ini mengalami kinerja kueri yang lambat dan penggunaan CPU yang tinggi. Anda menentukan bahwa menyetel shared_buffers parameter dapat membantu meningkatkan kinerja.

Di Amazon RDS untuk PostgreSQL, nilai shared_buffers default diatur ke byte memori yang {DBInstanceClassMemory/32768} db.r5.xlarge tersedia di (misalnya, 3 GB). Untuk menentukan nilai yang sesuaishared_buffers, Anda menjalankan serangkaian pengujian dengan nilai yang bervariasishared_buffers, dimulai dengan nilai default memori yang tersedia dan meningkatkan nilai secara bertahap. Untuk setiap pengujian, Anda mengukur kinerja kueri dan penggunaan CPU database.

Berdasarkan hasil pengujian, Anda menentukan bahwa menyetel nilai shared_buffers hingga 8 GB menghasilkan kinerja kueri keseluruhan terbaik dan penggunaan CPU untuk beban kerja Anda. Nilai ditentukan melalui kombinasi pengujian dan analisis karakteristik beban kerja, termasuk ukuran database, jumlah dan kompleksitas kueri, jumlah pengguna bersamaan, dan sumber daya sistem yang tersedia. Setelah Anda melakukan perubahan, sistem pemantauan Anda memeriksa kinerja database untuk memastikan bahwa nilai baru sesuai dengan beban kerja Anda. Anda kemudian dapat menyempurnakan parameter tambahan yang diperlukan untuk lebih meningkatkan kinerja.