Server database yang saya gunakan menjalankan 6 contoh SQL Server yang berbeda. Ini memiliki 48 GB RAM. Dan salah satunya adalah mengkonsumsi lebih dari 10 GB RAM, total konsumsi adalah 20 GB untuk saat ini. Konsumsi RAM tumbuh terus menerus. Beberapa hari sebelumnya menggunakan lebih dari 40 GB RAM dan server merespons sangat lambat. Aplikasi menunjukkan masalah mogok saat menyimpan data.
Jadi saya memulai kembali layanan SQL Server.
Segera setelah layanan dimulai kembali, penggunaannya turun menjadi 4 GB, tetapi sekarang tumbuh. Dan saya khawatir itu akan tumbuh hingga 40 GB dalam 4 atau 5 hari dan membuat server lambat.
Memulai kembali layanan bukanlah pilihan yang baik.
Saya juga menemukan dari berbagai sumber bahwa kita dapat mengatur ukuran penggunaan memori maksimum untuk SQL Server. Dan saya tidak yakin apakah ini akan membantu atau tidak. Saya tidak dapat menguji ini karena server menggunakan database produksi dan itu akan menjadi risiko jika layanan berhenti saat memodifikasi pengaturan dalam SQL Server.
Adakah yang bisa membantu untuk masalah ini?
Jawaban:
Itu dengan desain. SQL Server seharusnya menggunakan semua memori yang tersedia, karena menyimpan lebih banyak dan lebih banyak data dalam memori sehingga tidak perlu kembali ke disk untuk mendapatkan memori yang sama berulang-ulang.
Jika Anda perlu membatasi jumlah memori yang menggunakan instance SQL Server tunggal, Anda dapat melakukan ini di SQL Server Management Studio dengan mengklik kanan nama instance dalam Object Explorer dan memilih properti. Kemudian pilih tab memori dan atur jumlah maksimum memori yang SQL Server akan diizinkan untuk digunakan. Sekarang ini tidak akan membatasi semua aspek SQL Server ke jumlah memori itu. Ini hanya mengontrol kumpulan buffer dan cache rencana eksekusi. Hal-hal seperti CLR, Full Text, memori aktual yang digunakan oleh file exe SQL Server, SQL Agent, prosedur tersimpan yang panjang, dll. Tidak dikontrol oleh pengaturan ini. Namun hal-hal lain ini biasanya tidak memerlukan banyak memori, itu adalah kumpulan buffer dan cache rencana eksekusi yang membutuhkan sebagian besar memori.
Jika Anda mengatur pengaturan ini pada satu instance, Anda ingin mengaturnya pada semua instance sehingga mereka tidak saling menginjak.
sumber