Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Pantau instans SQL Server secara berkala untuk mengonfirmasi bahwa penggunaan memori berada dalam rentang umum.
Mengonfigurasi memori maks SQL Server
Secara default, instans SQL Server mungkin seiring waktu menggunakan sebagian besar memori sistem operasi Windows yang tersedia di server. Setelah memori diperoleh, memori tidak akan dirilis kecuali tekanan memori terdeteksi. Ini dirancang dan tidak menunjukkan kebocoran memori dalam proses SQL Server. Gunakan opsi memori server maks untuk membatasi jumlah memori yang diizinkan untuk diperoleh SQL Server untuk sebagian besar penggunaannya. Untuk informasi selengkapnya, lihat Panduan Arsitektur Manajemen Memori.
Di SQL Server di Linux, atur batas memori dengan alat mssql-conf dan pengaturan memory.memorylimitmb.
Memantau memori sistem operasi
Untuk memantau kondisi memori rendah, gunakan penghitung server Windows berikut. Banyak penghitung memori sistem operasi dapat dikueri melalui tampilan manajemen dinamis sys.dm_os_process_memory dan sys.dm_os_sys_memory.
Memori: Byte yang Tersedia Penghitung ini menunjukkan berapa banyak byte memori yang saat ini tersedia untuk digunakan oleh proses. Nilai rendah untuk penghitung Byte yang Tersedia dapat menunjukkan kekurangan memori sistem operasi secara keseluruhan. Nilai ini dapat dikueri melalui T-SQL menggunakan sys.dm_os_sys_memory.available_physical_memory_kb.
Memori: Halaman/detik Penghitung ini menunjukkan jumlah halaman yang diambil dari disk karena kesalahan halaman keras atau ditulis ke disk ke ruang kosong dalam set kerja karena kesalahan halaman. Tingkat tinggi untuk penghitung Halaman/detik dapat menunjukkan paging yang berlebihan.
Memori: Kesalahan Halaman/detik Penghitung ini menunjukkan tingkat Kesalahan Halaman untuk semua proses termasuk proses sistem. Tingkat aktivitas paging ke disk yang rendah tetapi tidak nol (dan karenanya terjadi kesalahan halaman) adalah hal yang biasa terjadi, bahkan ketika komputer memiliki banyak memori yang tersedia. Microsoft Windows Virtual Memory Manager (VMM) mengambil halaman dari SQL Server dan proses lainnya saat mengurangi ukuran working set dari proses tersebut. Aktivitas VMM ini cenderung menyebabkan kesalahan halaman.
Proses: Kesalahan Halaman/detik Penghitung ini menunjukkan tingkat Kesalahan Halaman untuk proses pengguna tertentu. Monitor Proses : Kesalahan Halaman/detik untuk menentukan apakah aktivitas disk disebabkan oleh pemetaan memori oleh SQL Server. Untuk menentukan apakah SQL Server atau proses lain adalah penyebab paging yang berlebihan, pantau penghitung Proses: Page Faults/detik untuk instance proses SQL Server.
Untuk informasi lebih lanjut tentang penyelesaian masalah paging yang berlebihan, lihat dokumentasi sistem operasi.
Mengisolasi memori yang digunakan oleh SQL Server
Untuk memantau penggunaan memori SQL Server, gunakan SQL Server Objects berikut. Banyak penghitung objek SQL Server dapat dikueri melalui tampilan manajemen dinamis sys.dm_os_performance_counters atau sys.dm_os_process_memory.
Secara default, SQL Server mengelola persyaratan memorinya secara dinamis, berdasarkan sumber daya sistem yang tersedia. Jika SQL Server membutuhkan lebih banyak memori, SQL Server meminta sistem operasi untuk menentukan apakah memori fisik gratis tersedia dan menggunakan memori yang tersedia. Jika ada memori bebas rendah untuk OS, SQL Server merilis memori kembali ke sistem operasi sampai kondisi memori rendah dikurangi, atau sampai SQL Server mencapai batas memori server min . Namun, Anda dapat mengabaikan opsi untuk menggunakan memori secara dinamis dengan menggunakan opsi konfigurasi server memori server minimum dan memori server maksimum. Untuk informasi selengkapnya, lihat opsi konfigurasi memori Server.
Untuk memantau jumlah memori yang digunakan SQL Server, periksa penghitung kinerja berikut:
SQL Server: Manajer Memori: Total Memori Server (KB) Penghitung ini menunjukkan jumlah memori sistem operasi yang saat ini telah diterapkan oleh manajer memori SQL Server ke SQL Server. Jumlah ini diperkirakan akan bertambah sesuai kebutuhan aktivitas aktual, dan akan tumbuh mengikuti startup SQL Server. Lakukan kueri terhadap penghitung ini dengan menggunakan tampilan manajemen dinamis sys.dm_os_sys_info, dengan mengamati kolom committed_kb.
SQL Server: Manajer Memori: Memori Server Target (KB) Penghitung ini menunjukkan jumlah memori ideal yang dapat dikonsumsi SQL Server, berdasarkan beban kerja terbaru. Bandingkan dengan Total Memori Server setelah periode operasi normal untuk menentukan apakah SQL Server memiliki jumlah memori yang diinginkan yang telah dialokasikan. Setelah operasi umum, Total Memori Server dan Memori Server Target harus serupa. Jika Total Memori Server secara signifikan lebih rendah dari Memori Server Target, instans SQL Server mungkin mengalami tekanan memori. Selama periode setelah SQL Server dimulai, Total Server Memory diperkirakan lebih rendah dari Target Server Memory, pada saat Total Server Memory bertambah. Gunakan penghitung ini melalui tampilan manajemen dinamis sys.dm_os_sys_info dengan mengamati kolom committed_target_kb. Untuk informasi selengkapnya dan praktik terbaik mengonfigurasi memori, lihat Opsi konfigurasi memori server.
Proses: Set Kerja Penghitung ini menunjukkan jumlah memori fisik yang digunakan oleh proses saat ini, sesuai dengan sistem operasi. Pantau instance sqlservr.exe pada penghitung ini. Kueri penghitung ini menggunakan pandangan manajemen dinamis sys.dm_os_process_memory, perhatikan
physical_memory_in_use_kbkolom.Proses: Byte Privat Penghitung ini menunjukkan jumlah memori yang telah diminta proses untuk penggunaannya sendiri ke sistem operasi. Pantau instance sqlservr.exe pada penghitung ini. Karena penghitung ini mencakup semua alokasi memori yang diminta oleh sqlservr.exe, termasuk yang tidak dibatasi oleh opsi memori server maksimum, penghitung ini dapat melaporkan nilai yang lebih besar dari opsi memori server maks.
SQL Server: Manajer Buffer: Halaman Database Penghitung ini menunjukkan jumlah halaman di kumpulan buffer dengan konten database. Tidak menyertakan memori kumpulan nonbuffer lainnya dalam proses SQL Server. Kueri penghitung ini pada tampilan dinamis manajemen sys.dm_os_performance_counters.
SQL Server: Manajer Buffer: Rasio Hit Buffer Cache Penghitung ini khusus untuk SQL Server. Rasio 90 atau lebih tinggi diinginkan. Nilai yang lebih besar dari 90 menunjukkan bahwa lebih dari 90 persen dari semua permintaan data terpenuhi dari cache data dalam memori tanpa harus membaca dari disk. Temukan informasi selengkapnya tentang SQL Server Buffer Manager, lihat objek SQL Server, Buffer Manager. Kueri penghitung ini pada tampilan dinamis manajemen sys.dm_os_performance_counters.
SQL Server: Manajer Buffer: Harapan hidup halaman Penghitung ini mengukur jumlah waktu dalam detik yang halaman tertua tetap berada di kumpulan buffer. Untuk sistem yang menggunakan arsitektur NUMA, ini adalah rata-rata di semua simpul NUMA. Nilai yang lebih tinggi dan berkembang adalah yang terbaik. Penurunan mendadak menunjukkan churn data yang signifikan masuk dan keluar dari kumpulan buffer, menunjukkan beban kerja tidak dapat sepenuhnya mendapat manfaat dari data yang sudah ada dalam memori. Setiap simpul NUMA memiliki simpul sendiri dari kumpulan buffer. Di server dengan lebih dari satu simpul NUMA, lihat harapan hidup halaman dari setiap simpul kumpulan buffer menggunakan SQL Server: Buffer Node: Harapan hidup halaman. Kueri penghitung ini pada tampilan dinamis manajemen sys.dm_os_performance_counters.
Contoh
Menentukan alokasi memori saat ini
Kueri berikut mengembalikan informasi tentang memori yang saat ini dialokasikan.
SELECT
(total_physical_memory_kb/1024) AS Total_OS_Memory_MB,
(available_physical_memory_kb/1024) AS Available_OS_Memory_MB
FROM sys.dm_os_sys_memory;
SELECT
(physical_memory_in_use_kb/1024) AS Memory_used_by_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_by_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;
Menentukan pemanfaatan memori SQL Server saat ini
Kueri berikut mengembalikan informasi tentang pemanfaatan memori SQL Server saat ini.
SELECT
sqlserver_start_time,
(committed_kb/1024) AS Total_Server_Memory_MB,
(committed_target_kb/1024) AS Target_Server_Memory_MB
FROM sys.dm_os_sys_info;
Menentukan harapan hidup halaman
Kueri berikut menggunakan sys.dm_os_performance_counters untuk mengamati nilai "umur harapan halaman" instance SQL Server saat ini di tingkat manajer buffer keseluruhan, dan pada setiap tingkat simpul NUMA.
SELECT
CASE instance_name WHEN '' THEN 'Overall' ELSE instance_name END AS NUMA_Node, cntr_value AS PLE_s
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Page life expectancy';
Konten terkait
- Memantau Penggunaan Sumber Daya (Monitor Performa)
- sys.dm_os_sys_memory (T-SQL)
- sys.dm_os_process_memory (T-SQL)
- sys.dm_os_sys_info (T-SQL)
- sys.dm_os_performance_counters (Transact-SQL)
- SQL Server, objek Manajer Memori
- SQL Server, objek Manajer Buffer
- Opsi konfigurasi memori server
- Panduan arsitektur manajemen memori