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.
Gunakan dua opsi memori server, memori server min dan memori server maks, untuk mengonfigurasi ulang jumlah memori (dalam megabyte) yang dikelola oleh SQL Server Memory Manager untuk proses SQL Server yang digunakan oleh instans SQL Server.
Pengaturan default untuk memori server min adalah 0, dan pengaturan default untuk memori server maks 2147483647 MB. Secara default, SQL Server dapat mengubah persyaratan memorinya secara dinamis berdasarkan sumber daya sistem yang tersedia.
Nota
Mengatur memori server maks ke nilai minimum dapat sangat mengurangi performa SQL Server dan bahkan mencegahnya dimulai. Jika Anda tidak dapat memulai SQL Server setelah mengubah opsi ini, mulai menggunakan opsi -f startup dan reset memori server maks ke nilai sebelumnya. Untuk informasi selengkapnya, lihat Opsi Startup Layanan Mesin Database.
Ketika SQL Server menggunakan memori secara dinamis, SQL Server meminta sistem secara berkala untuk menentukan jumlah memori kosong. Mempertahankan memori bebas ini mencegah sistem operasi (OS) dari paginasi. Jika sedikit memori yang tersedia, SQL Server membebaskan memori ke OS. Jika lebih banyak memori gratis, SQL Server dapat mengalokasikan lebih banyak memori. SQL Server menambahkan memori hanya ketika beban kerjanya membutuhkan lebih banyak memori; server tidak aktif tidak meningkatkan ukuran ruang alamat virtualnya.
Lihat contoh B untuk kueri untuk mengembalikan memori yang saat ini digunakan. max server memory mengontrol alokasi memori SQL Server, termasuk kumpulan buffer, memori kompilasi, semua cache, pemberian memori QE, memori manajer kunci, dan memori CLR (pada dasarnya setiap petugas memori yang ditemukan di sys.dm_os_memory_clerks). Memori untuk tumpukan utas, timbunan memori, penyedia server tertaut selain SQL Server, dan memori apa pun yang dialokasikan oleh DLL non SQL Server tidak dikendalikan oleh memori server maksimum.
SQL Server menggunakan pemberitahuan memori API QueryMemoryResourceNotification untuk menentukan kapan Manajer Memori SQL Server dapat mengalokasikan memori dan memori rilis.
Direkomendasikan untuk mengizinkan SQL Server menggunakan memori secara dinamis; namun, Anda dapat mengatur opsi memori secara manual dan membatasi jumlah memori yang dapat diakses SQL Server. Sebelum Anda mengatur jumlah memori untuk SQL Server, tentukan pengaturan memori yang sesuai dengan mengurangi, dari total memori fisik, memori yang diperlukan untuk OS dan instans SQL Server lainnya (dan penggunaan sistem lainnya, jika komputer tidak sepenuhnya didedikasikan untuk SQL Server). Perbedaan ini adalah jumlah maksimum memori yang dapat Anda tetapkan ke SQL Server.
Mengatur Opsi Memori Secara Manual
Opsi server min memori server dan memori server maks dapat diatur untuk menjangkau rentang nilai memori. Metode ini berguna bagi administrator sistem atau database untuk mengonfigurasi instans SQL Server bersama dengan persyaratan memori aplikasi lain, atau instans SQL Server lain yang berjalan pada host yang sama.
Nota
Memori server min dan opsi memori server maks adalah opsi lanjutan. Jika Anda menggunakan prosedur tersimpan sistem sp_configure untuk mengubah pengaturan ini, Anda hanya dapat mengubahnya saat menampilkan opsi tingkat lanjut diatur ke 1. Pengaturan ini berlaku segera tanpa menghidupkan ulang server.
Gunakan min_server_memory untuk menjamin jumlah minimum memori yang tersedia untuk SQL Server Memory Manager untuk instans SQL Server. SQL Server tidak akan segera mengalokasikan jumlah memori yang ditentukan dalam memori server min saat startup. Namun, setelah penggunaan memori mencapai nilai ini karena beban klien, SQL Server tidak dapat membebaskan memori kecuali nilai memori server min berkurang. Misalnya, ketika beberapa instans SQL Server dapat ada secara bersamaan di host yang sama, atur parameter min_server_memory alih-alih max_server_memory untuk tujuan menyimpan memori untuk instans. Selain itu, menentukan nilai minimum memori server sangat penting dalam lingkungan virtual untuk memastikan tekanan memori dari host utama tidak mencoba mengurangi alokasi memori dari buffer pool pada mesin virtual SQL Server tamu melebihi apa yang diperlukan untuk kinerja yang memadai.
Nota
SQL Server tidak dijamin untuk mengalokasikan jumlah memori yang ditentukan dalam memori server min. Jika beban pada server tidak pernah memerlukan alokasi jumlah memori yang ditentukan dalam memori server min, SQL Server akan berjalan dengan lebih sedikit memori.
Gunakan max_server_memory untuk menjamin OS tidak mengalami tekanan memori yang merugikan. Untuk mengatur konfigurasi memori server maks, pantau konsumsi keseluruhan proses SQL Server untuk menentukan persyaratan memori. Untuk lebih akurat dengan perhitungan ini untuk satu kasus:
- Dari total memori OS, cadangkan 1GB-4GB ke OS itu sendiri.
- Kemudian kurangi setara dengan potensi alokasi memori SQL Server di luar kontrol memori maksimum server, yang terdiri dari ukuran tumpukan 1 * maksimal utas pekerja yang dihitung 2 + -g parameter penyiapan awal 3 (atau 256MB secara default jika -g tidak disetel). Yang tersisa seharusnya menjadi pengaturan konfigurasi max_server_memory untuk penyiapan instans tunggal.
1 Lihat panduan Arsitektur Manajemen Memori untuk informasi tentang ukuran tumpukan utas per arsitektur.
2 Lihat halaman dokumentasi tentang cara Mengonfigurasi Opsi Konfigurasi Server maksimum utas pekerja, untuk mendapatkan informasi mengenai jumlah utas pekerja default yang dihitung berdasarkan jumlah CPU yang terafiliasi tertentu pada host saat ini.
3 Lihat halaman dokumentasi tentang Opsi Startup Layanan Mesin Database untuk informasi tentang parameter startup -g . Hanya dapat diajukan ke SQL Server 32-bit (SQL Server 2005 hingga SQL Server 2014).
| Jenis OS | Jumlah Memori Minimum yang Diizinkan untuk memori server maks |
|---|---|
| 32-bit | 64 MB |
| 64-bit | 128 MB |
Cara mengonfigurasi opsi memori menggunakan SQL Server Management Studio
Gunakan dua opsi memori server, memori server min dan memori server maks, untuk mengonfigurasi ulang jumlah memori (dalam megabyte) yang dikelola oleh SQL Server Memory Manager untuk instans SQL Server. Secara default, SQL Server dapat mengubah persyaratan memorinya secara dinamis berdasarkan sumber daya sistem yang tersedia.
Prosedur untuk mengonfigurasi jumlah memori tetap
Untuk mengatur jumlah memori tetap:
Di Object Explorer, klik kanan server dan pilih Properti.
Klik simpul Memori.
Di bawah Opsi Memori Server, masukkan jumlah yang Anda inginkan untuk Memori server minimum dan Memori server maksimum.
Gunakan pengaturan default untuk memungkinkan SQL Server mengubah persyaratan memorinya secara dinamis berdasarkan sumber daya sistem yang tersedia. Pengaturan default untuk memori server min adalah 0, dan pengaturan default untuk memori server maks adalah 2147483647 megabyte (MB).
Memaksimalkan Throughput Data untuk Aplikasi Jaringan
Untuk mengoptimalkan penggunaan memori sistem untuk SQL Server, Anda harus membatasi jumlah memori yang digunakan oleh sistem untuk cache berkas. Untuk membatasi cache sistem file, pastikan Maksimalkan throughput data untuk berbagi file tidak terpilih. Anda dapat menentukan cache sistem file terkecil dengan memilih Minimalkan memori yang digunakan atau Saldo.
Untuk memeriksa pengaturan saat ini pada sistem operasi Anda
Klik Mulai, klik Panel Kontrol, klik dua kali Koneksi Jaringan, lalu klik dua kali Koneksi Area Lokal.
Pada tab Umum , klik Properti, pilih Berbagi File dan Printer Jaringan Microsoft, lalu klik Properti.
Jika Maksimalkan throughput data untuk aplikasi jaringan dipilih, pilih opsi lain, klik OK, lalu tutup kotak dialog lainnya.
Kunci Halaman dalam Memori
Kebijakan Windows ini menentukan akun mana yang dapat menggunakan proses untuk menyimpan data dalam memori fisik, mencegah sistem menomori data ke memori virtual pada disk. Mengunci halaman dalam memori dapat memastikan server tetap responsif ketika memori dipindahkan ke disk. Opsi Lock Pages in Memory SQL Server diaktifkan dalam instans 32-bit dan 64-bit edisi Standar SQL Server 2014 dan lebih tinggi jika akun dengan hak istimewa untuk menjalankan sqlservr.exe diberi hak pengguna Windows "Locked Pages in Memory" (LPIM). Di versi SQL Server sebelumnya, pengaturan opsi Lock Pages untuk instans SQL Server 32-bit mengharuskan akun dengan hak istimewa untuk menjalankan sqlservr.exe memiliki hak pengguna LPIM dan opsi konfigurasi 'awe_enabled' diatur ke ON.
Untuk menonaktifkan opsi Kunci Halaman Dalam Memori untuk SQL Server, hapus pengguna "Halaman Terkunci dalam Memori" langsung untuk akun startup SQL Server.
Untuk Menonaktifkan Halaman Kunci dalam Memori
Untuk menonaktifkan opsi lock pages in memory:
Pada menu Mulai , klik Jalankan. Dalam kotak Buka , ketik
gpedit.msc.Kotak dialog Kebijakan Grup terbuka.
Pada konsol Kebijakan Grup , perluas Konfigurasi Komputer, lalu perluas Pengaturan Windows.
Perluas Pengaturan Keamanan, lalu perluas Kebijakan Lokal.
Pilih folder Penetapan Hak Pengguna.
Kebijakan akan ditampilkan di panel detail.
Di panel, klik dua kali Kunci halaman dalam memori.
Dalam kotak dialog Pengaturan Kebijakan Keamanan Lokal , pilih akun dengan hak istimewa untuk menjalankan sqlservr.exe dan klik Hapus.
Virtual Memory Manager
Sistem operasi 32-bit menyediakan akses ke ruang alamat virtual 4 GB. Memori virtual 2 GB bersifat privat per proses dan tersedia untuk penggunaan aplikasi. 2 GB dicadangkan untuk penggunaan sistem operasi. Semua edisi sistem operasi mencakup sakelar yang dapat menyediakan aplikasi dengan akses hingga 3 GB ruang alamat virtual, membatasi sistem operasi hingga 1 GB. Untuk informasi selengkapnya tentang cara menggunakan konfigurasi memori switch, lihat dokumentasi Windows tentang penyetelan 4-gigabyte (4GT). Ketika SQL Server 32-bit berjalan pada sistem operasi 64-bit, ruang alamat virtual yang tersedia penggunanya adalah 4 GB penuh.
Wilayah ruang alamat yang berkomitmen dipetakan ke memori fisik yang tersedia oleh Windows Virtual Memory Manager (VMM).
Untuk informasi selengkapnya tentang jumlah memori fisik yang didukung oleh sistem operasi yang berbeda, lihat dokumentasi Windows "Batas Memori untuk Rilis Windows".
Sistem memori virtual memungkinkan komitmen memori fisik yang berlebihan, sehingga rasio memori virtual-ke-fisik dapat melebihi 1:1. Akibatnya, program yang lebih besar dapat berjalan di komputer dengan berbagai konfigurasi memori fisik. Namun, menggunakan memori virtual yang jauh lebih banyak daripada kumpulan kerja rata-rata gabungan dari semua proses dapat menyebabkan performa yang buruk.
Memori server min dan opsi memori server maks adalah opsi lanjutan. Jika Anda menggunakan prosedur tersimpan sistem sp_configure untuk mengubah pengaturan ini, Anda hanya dapat mengubahnya saat menampilkan opsi tingkat lanjut diatur ke 1. Pengaturan ini berlaku segera tanpa menghidupkan ulang server.
Menjalankan Beberapa Instans SQL Server
Saat Anda menjalankan beberapa instans Mesin Database, ada tiga pendekatan yang dapat Anda gunakan untuk mengelola memori:
Gunakan memori server maks untuk mengontrol penggunaan memori. Tetapkan pengaturan maksimum untuk setiap instans, berhati-hatilah bahwa total jatah tidak lebih dari total memori fisik pada komputer Anda. Anda mungkin ingin memberikan setiap memori instans sebanding dengan beban kerja atau ukuran database yang diharapkan. Pendekatan ini memiliki keuntungan bahwa ketika proses atau instans baru dimulai, memori gratis akan segera tersedia untuk mereka. Kelemahannya adalah bahwa jika Anda tidak menjalankan semua instans, tidak ada instans yang berjalan yang akan dapat menggunakan memori bebas yang tersisa.
Gunakan memori server min untuk mengontrol penggunaan memori. Tetapkan pengaturan minimum untuk setiap instans, sehingga jumlah minimum ini adalah 1-2 GB kurang dari total memori fisik pada komputer Anda. Sekali lagi, Anda dapat menetapkan minimum ini secara proporsional dengan beban yang diharapkan untuk instans tersebut. Pendekatan ini memiliki manfaat bahwa jika tidak semua instans berjalan pada saat yang sama, instans yang sedang berjalan dapat menggunakan memori kosong yang tersisa. Pendekatan ini juga berguna ketika ada proses intensif memori lain di komputer, karena akan memastikan bahwa SQL Server setidaknya akan mendapatkan jumlah memori yang wajar. Kelemahannya adalah bahwa ketika instans baru (atau proses lain) dimulai, mungkin perlu waktu bagi instans yang sedang berjalan untuk merilis memori, terutama jika mereka harus menulis halaman yang dimodifikasi kembali ke database mereka untuk melakukannya.
Jangan lakukan apa-apa (tidak disarankan). Instans pertama yang disajikan dengan beban kerja akan cenderung mengalokasikan semua memori. Instans diam, atau instans yang dimulai nanti, mungkin berakhir berjalan hanya dengan jumlah memori minimal yang tersedia. SQL Server tidak mencoba menyeimbangkan penggunaan memori di seluruh instans. Namun, semua instans akan merespons sinyal Pemberitahuan Memori Windows untuk menyesuaikan ukuran jejak memorinya. Windows tidak menyeimbangkan memori di seluruh aplikasi dengan API Pemberitahuan Memori. Ini hanya memberikan umpan balik global tentang ketersediaan memori pada sistem.
Anda dapat mengubah pengaturan ini tanpa memulai ulang instans, sehingga Anda dapat dengan mudah bereksperimen untuk menemukan pengaturan terbaik untuk pola penggunaan Anda.
Menyediakan Jumlah Maksimum Memori ke SQL Server
| 32-bit | 64-bit | |
|---|---|---|
| Memori konvensional | Hingga memproses batas ruang alamat virtual di semua edisi SQL Server: 2 GB 3 GB dengan parameter boot /3gb * 4 GB di WOW64** |
Hingga memproses batas ruang alamat virtual di semua edisi SQL Server: 8 TB pada arsitektur x64 |
* /3gb adalah parameter boot sistem operasi. Untuk informasi selengkapnya, kunjungi Pustaka MSDN.
**WOW64 (Windows pada Windows 64) adalah mode di mana SQL Server 32-bit berjalan pada sistem operasi 64-bit. Untuk informasi selengkapnya, kunjungi Pustaka MSDN.
Contoh
Contoh A
Contoh berikut mengatur opsi max server memory ke 4 GB:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO
Contoh B. Menentukan Alokasi Memori Saat Ini
Kueri berikut menampilkan informasi alokasi memori saat ini.
SELECT
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_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;
Lihat Juga
Monitor dan Selaraskan Kinerja
KONFIGURASI ULANG (Transact-SQL)
Opsi Konfigurasi Server (SQL Server)
sp_configure (T-SQL)