Saya punya satu node SQL2012 SP4 yang menjalankan beberapa basis data.
Server memiliki 20GB memori yang tersedia, 14GB dialokasikan untuk SQL (tidak ada yang berjalan pada kotak).
Setiap beberapa menit SQL membuang seluruh cache buffer. Harapan hidup halaman mencapai nol, deskriptor cache cache menunjukkan bahwa tidak ada apa-apa di cache.
Saya telah melihat notifikasi monitor sumber daya dan notifikasi memantul dari tinggi / stabil / rendah setiap beberapa milidetik:
RESOURCE_MEMPHYSICAL_HIGH RESOURCE_MEM_STEADY RESOURCE_MEMPHYSICAL_LOW
Dengan cap waktu yang terpisah beberapa milidetik. PLE pada dasarnya adalah pola gigi gergaji.
Saya pernah melihat ini terjadi sebelumnya dengan SQL2012 SP1 dan pertanyaan ini:
SQL Server 2012 Halaman Gratis di Buffer Cache Tidak Digunakan
Tampaknya menjadi masalah yang serupa, meskipun saya sudah memperbarui ke SP4.
Saya sudah mencoba menyalakan LPIM untuk akun layanan dan saya sudah mencoba mengacaukan pengaturan memori maks. Menurunkan memori maks tampaknya telah menyebabkan cache buffer kosong lebih sering.
Ada ide tentang apa yang harus diperiksa selanjutnya?
Beban kerja server sebenarnya tidak ada apa-apanya (saya menggulir daftar item dalam sistem ERP dan mencapai sekitar 40-50MB sebelum cache turun lagi).
Sangat menarik karena saya memutakhirkan dari SP1 untuk mencoba dan memperbaikinya - cache di sana mencapai sekitar 500MB. Sejak itu saya menjatuhkan pengaturan memori maks ke 14GB yang tampaknya membuatnya semakin buruk.
Saya bertanya-tanya apakah Windows panik dan melempar pemberitahuan yang salah untuk tekanan memori pada SQL - ini berarti bahwa server dengan memori maks yang disetel tidak terikat tampaknya berjalan dengan baik, tetapi tidak pernah mengisi cache lebih dari beberapa ratus MB - tetapi sekarang nyaris tidak sampai 50 ...
Info Lebih Lanjut: untuk yang bertanya
Jumlah inti: 4
Ukuran Basis Data: 80GB
Log kesalahan menunjukkan: A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 247928, committed (KB): 495656, memory utilization: 50%.
Hasil menjalankan skrip dari tautan ini: https://www.sqlskills.com/blogs/jonathan/identifying-external-memory-pressure-with-dm_os_ring_buffers-and-ring_buffer_resource_monitor/
Tidak yakin bagaimana menafsirkan ini - sepertinya ada tekanan memori internal dan eksternal pada berbagai waktu ..
Info lebih lanjut:
Ini adalah tamu Hyper-V yang duduk di host dengan 96GB ram total yang sekitar setengahnya dialokasikan untuk para tamu.
Gejala-gejalanya mirip dengan ini:
SQL Server 2012 x64 - tidak dapat mengalokasikan lebih dari 50% RAM dengan aman
Namun, ketika saya mengalokasikan 14GB untuk SQL gejala langsung muncul (hampir 3GB dari memori server dilakukan)
Tadi malam saya menabrak memori tamu menjadi 32GB dan masalahnya hilang tetapi saya melihat hanya 14GB komit dari total memori server (dan bisnis yang menjalankan DB sibuk pagi ini dan ini adalah saat mereka biasanya memiliki masalah kinerja).
Sekitar 8-9GB data dalam cache saat ini, tampaknya stabil.
Tampaknya memberi kesan bahwa 20GB sudah cukup untuk beban kerja pada kotak ini. Saya senang meninggalkannya dengan 32GB untuk saat ini tetapi saya benar-benar ingin membahas hal ini sehingga saya dapat mengkonfigurasi VMs / SQL dengan lebih baik.
Saya akan terus menggali dan memperbarui jika saya menemukan jawabannya!
Info lebih lanjut:
Saya tidak me-restart SQL setelah menyalakan LPIM (tidak menyadari bahwa itu persyaratan) tapi saya membiarkan pengaturan ini dan restart untuk meningkatkan memori jadi sekarang saya tidak yakin apakah peningkatan memori atau LPIM telah meringankan masalah.
Akan melompat pada malam ini ketika server menganggur dan memeriksa tampilannya 20GB lagi.
Bahkan Lebih Jauh Lebih Banyak Info Lebih Lanjut:
Saat ini server berdetak ok dengan alokasi 32GB dan kami tidak melihat masalah sejak itu. Jika ini muncul lagi saya akan kembali ke pertanyaan ini dan terus menggali.
Saat ini masih menjadi misteri tetapi dugaan saya adalah bahwa saya hanya menutupi masalah saat ini.