Kami memiliki serangkaian instance SQL Server (2008 R2) yang berjalan di server virtual yang sama. Setiap instance mewakili tahap dalam siklus pengembangan kami (Dev / Test / Stage / dll.). Semua instance harus online pada waktu tertentu, tetapi beban cenderung diisolasi untuk satu instance sebagai waktu, tergantung di mana kita berada dalam siklus rilis.
SQL Server tampaknya mengambil dan menahan berapa pun jumlah memori yang kita atur sebagai maks. Apa yang saya ingin tahu jika ada cara mengkonfigurasi contoh untuk menjadi "pintar" tentang konsumsi memori sehingga mereka tidak menghalangi satu sama lain untuk mendapatkan memori saat dibutuhkan.
sql-server
sql-server-2008-r2
Phil Sandler
sumber
sumber
Jawaban:
SQL Server akan menggunakan memori sebanyak yang Anda bisa gunakan (cukup banyak), dan selalu disarankan untuk menetapkan batas pada setiap instance. Pengaturan standar adalah 2147483647MB.
Tergantung pada penggunaan dan keadaan unik Anda sendiri, pengaturan Anda mungkin berbeda, tetapi biasanya titik awal yang baik adalah mengatur memori server maks antara 75 dan 90 persen, tergantung pada berapa banyak RAM yang Anda miliki. Glenn Berry membagikan indikasi yang baik beberapa tahun yang lalu di SINI .
Jika Anda memiliki beberapa instance aktif di server, Anda mungkin harus berbagi sumber daya di antara mereka, untuk misalnya jika Anda memiliki 32GB RAM dengan 3 instance, Anda harus menetapkan sekitar 9500MB untuk setiap instance. Ketika Anda menggunakan hanya satu contoh pada satu waktu, yang lain tidak akan melepaskan RAM yang mereka gunakan. Anda dapat membebaskan RAM mereka dengan menghentikan layanan.
Ketika Anda menjalankan aplikasi / layanan lain, jumlah memori mungkin harus disesuaikan untuk mengakomodasi mereka.
sumber