Memori maksimum SQL Server, file halaman, paralelisme derajat maks

15

Tiga pertanyaan harap Anda para master DBA di alam semesta dapat menjawab:


  1. Saya tahu ini adalah praktik terbaik untuk mengatur memori maks SQL Server. Jadi jika server dengan 44 GB RAM telah menginstal SQL Server, kita harus mengatur memori maksimum SQL Server menjadi sekitar 37GB.

Tetapi apa yang harus kita atur jika Layanan Analisis SQL dan Layanan Pelaporan SQL diinstal pada server yang sama dengan SQL Server? Apakah lebih baik untuk mengatur memori maks SQL Server ke 22GB RAM sehingga Analisis dapat mengambil 22GB RAM lainnya?


  1. Pada server yang menjalankan SQL Server dengan 44 GB RAM praktik apa yang terbaik untuk mengatur ukuran file halaman? Saya membaca di Brent Ozar ( http://www.brentozar.com/archive/2014/06/sql-server-setup-checklist-free-ebook-download/ ) berikut ini:

SQL Server doest tidak perlu file halaman raksasa. jika Anda menginstal aplikasi lain di server (yang tidak kami sarankan - SQL Server harus diisolasi). Anda mungkin memerlukan file halaman yang lebih besar. Jika SQL Server adalah satu-satunya layanan utama yang berjalan pada kotak, kami biasanya membuat file halaman ukuran 2GB pada drive sistem.

Microsoft mengatakan kita harus mengatur sistem file halaman berhasil 1.5x RAM yang cocok dengan saran yang diberikan oleh Remus (lihat -> http://rusanu.com/2009/11/22/system-pagefile-size-on-machines-with -large-ram / ).

Jadi pada server kami dengan RAM 44GB kami menginstal SQL Server di sebelah Layanan Analisis SQL dan Layanan Pelaporan SQL. Berapa ukuran yang harus kita atur file halaman?


  1. Untuk SharePoint, SQL Server yang merupakan bagian dari farm SharePoint dan tempat SharePoint menyimpan basis datanya, tingkat paralelisme maksimum harus ditetapkan pada 1. Sekarang kami memiliki server yang bukan bagian dari farm SharePoint (sebut saja sql2) pada ini server kami memiliki SQL Server, Analisis SQL dan Pelaporan diinstal. SharePoint tidak menyimpan databasenya di server ini, tetapi kami memiliki database / kubus pelaporan dan analisis yang dibuat dimana SharePoint membaca dan menulis.

Brent Ozar mengatakan:

Aturan praktis: setel ini ke jumlah inti fisik dalam satu soket NUMA (prosesor) pada perangkat keras Anda atau kurang

Apa yang harus kita konfigurasikan pada contoh SQL Server ini untuk derajat paralelisme maks ketika memiliki 4 VCPU?


Semoga kalian tidak hanya memberi saya tetapi lebih banyak admin lebih banyak wawasan dalam praktik terbaik daripada hutan di jalinan.

sp_eric_blitz
sumber

Jawaban:

12

3 pertanyaan Anda menyentuh max memory, page filedan max dop setting.

MAX MEMORY


Jika server didedikasikan SQL Server hanya tanpa layanan Analisis (karena SSAS adalah binatang lain), maka praktik terbaik yang direkomendasikan Glenn adalah titik awal yang baik . Untuk komponen tambahan, Anda harus merujuk ke blog Jonathan tentang cara mengkonfigurasi memori maks .

Saya telah menjawab tentang konfigurasi SQL Server Maximum dan Minimum memory . Ini akan membantu jika Anda memiliki banyak paket SSIS yang berjalan di server Anda.

File Halaman


Saya biasanya menyimpannya dari C:\drive pada drive yang memiliki ruang disk yang cukup. Saya setuju dengan rekomendasi Remus dan Brent. Seharusnya begitu PAGE FILE FOR SQL SERVER = 1.5 * RAM. File halaman akan berguna ketika Anda menemukan diri Anda dalam situasi di mana Anda harus mengambil DUMP MEMORY LENGKAP (biasanya diminta oleh Microsoft CSS) untuk pemecahan masalah.

Baca Cara menentukan ukuran file halaman yang sesuai untuk Windows 64-bit versi 649 bit KB secara menyeluruh dan Buck Woody berbicara tentang file halaman di sini .

Pengaturan MAX DOP


Untuk Sharepoint direkomendasikan itu maxdop = 1 lebar instance instance. Untuk server sql normal, saya sarankan Anda untuk mengikuti - Apa cara yang baik dan berulang untuk menghitung MAXDOP pada SQL Server? Saya memiliki skrip yang ditulis yang akan menghitungnya untuk Anda.

Intinya di bawah ( KB 2806535 juga menyebutkan hal yang sama):

8 or less processors    ===> 0 to N (where N= no. of processors)
More than 8 processors  ===> 8
NUMA configured         ===> MAXDOP should not exceed no of CPUs assigned to each 
                                 NUMA node with max value capped to 8
Hyper threading Enabled ===> Should not exceed the number of physical processors.

Sebagai catatan, saya sarankan Anda membaca - Pembaruan yang disarankan dan opsi konfigurasi untuk SQL Server 2012 dan SQL Server 2014 dengan beban kerja kinerja tinggi

Kin Shah
sumber
Satu hal yang perlu diperhatikan adalah bahwa pada posting blog Buck Woody yang dirujuk di atas, Remus berkomentar "Apa yang menyelamatkan hari ini adalah AWE: memori yang dipesan melalui AWE tidak diharuskan memiliki reservasi file halaman (karena terkunci dalam RAM fisik dan oleh karena itu tidak dapat halaman). Penggunaan AWE otomatis di x64. " Yang sepertinya terlihat dengan AWE, kita tidak perlu file halaman besar.
Jason Carter
@Kin Anda berkata, "Saya setuju dengan rekomendasi Remus dan Brent". Tetapi setelah melalui Panduan Pengaturan Brent (dikutip oleh OP di atas) dan Artikel Remus, mereka saling bertentangan. Jadi bagi saya jawaban Anda mengenai file halaman meninggalkan pertanyaan yang tertunda.
Magier
1
@ Majer Saya cenderung untuk pergi dengan rekomendasi MS karena saya telah ke dalam situasi di mana kami harus mengambil dump memori penuh untuk mendiagnosis masalah - kami tidak tahu apakah itu windows atau sql server. Dalam situasi itu, rekomendasi MS adalah yang terbaik. Jika Anda tidak masuk ke dalam situasi itu, maka saran Brent juga berlaku. Saya cenderung berada di sisi yang aman, jadi saya ikut PAGE FILE FOR SQL SERVER = 1.5 * RAM. Apakah itu menjawab pertanyaan Anda?
Kin Shah
3

Jadi pada server kami dengan RAM 44GB kami menginstal SQL Server di sebelah Layanan Analisis SQL dan Layanan Pelaporan SQL. Berapa ukuran yang harus kita atur file halaman?

Nah menambahkan apa yang sudah disebutkan Kin saya sarankan Anda gunakan Perfmon Countersuntuk menghitung apa yang harus menjadi ukuran file halaman Anda. Saya juga setuju dengan rekomendasi Remus dari file halaman harus 1,5 kali RAM pada sistem . Tetapi rekomendasi ini mempertimbangkan semua aspek dan skenario yang mungkin dan 'rekomendasi umum'. Saya kira Anda lebih tertarik pada nilai konkret. Jadi begini

Kebutuhan file halaman dari sistem individual akan bervariasi berdasarkan pada peran server, memuat dll. Ada beberapa penghitung kinerja yang dapat Anda gunakan untuk memantau penggunaan memori yang dilakukan secara pribadi pada basis file systemwide atau per-halaman-file. Tidak ada cara untuk menentukan berapa banyak memori yang dikomit pribadi suatu proses adalah residen dan berapa banyak paging keluar untuk paging file.

Memory: Committed Bytes: Jumlah byte dari memori virtual yang telah dikomit. Ini tidak selalu mewakili penggunaan file halaman - ini mewakili jumlah ruang file halaman yang akan digunakan jika proses itu sepenuhnya dibuat bukan penduduk

Memori: Batas Komit: Jumlah byte memori virtual yang dapat dikomit tanpa harus memperpanjang file paging.

File Paging:% Persentase Penggunaan file paging yang dilakukan

File Paging:% Usage Peak Persentase tertinggi dari file paging yang dilakukan

Silakan gunakan penghitung di atas untuk menetapkan nilai yang tepat untuk file halaman. Anda dapat membaca Tautan Ini untuk mendapatkan informasi lebih lanjut tentang file halaman.

Apakah lebih baik untuk mengatur memori maks SQL Server ke 22GB RAM sehingga Analisis dapat mengambil 22GB RAM lainnya?

Tidak, saya rasa Anda tidak melewatkan persyaratan OS di sini. Anda harus terlebih dahulu mengatur memori server maks optimal untuk SQl Server. Utas SE ini memiliki detail lebih lanjut tentang pengaturan nilai memori server maks yang benar. Sekali lagi saya sangat dan selalu membalas pada penghitung perfmon untuk melihat whay akan nilai optimal. Saya sarankan Anda untuk membaca artikel ini dan mengambil bantuan dari counter untuk menetapkan nilai optimal untuk SSAS. Saya pernah menggunakan blog ini untuk mengatur nilai memori untuk SSAS. Saya tidak begitu banyak ke SSAS sehingga komentar saya akan terbatas pada artikel ini saja.

Anda harus menjaga MAXDOP = 1 untuk Sharepoint instance parameter yang diterima secara luas. Jika IIRC rekomendasi menjadi diterima secara luas setelah kebuntuan yang sering ditemui ketika derajat maks paralelisme dibiarkan nilai default

Shanky
sumber
3

Semua jawaban lain yang diberikan sejauh ini untuk referensi ukuran file halaman relatif ketinggalan zaman. Ini TechNet Blog posting lebih up to date (Oktober 2015) dan memberikan cara yang lebih rinci untuk menghitung yang ideal ukuran file halaman pada sistem modern.

Mereka dengan jelas menyatakan bahwa aturan praktis 1,5 x RAM tidak lagi berlaku.

Saya telah menempelkan konten inti dari artikel di bawah ini untuk menghindari pembusukan tautan.

Perhatikan bahwa mereka merekomendasikan pengumpulan metrik dari server Anda berjalan pada penggunaan puncak selama setidaknya 1 minggu - jadi pada tahap perencanaan dan implementasi proyek Anda, Anda mungkin tidak dalam posisi untuk melakukan itu, dan harus meluangkan waktu nanti dalam proyek Anda untuk melakukannya.


Saat mengatur ukuran file halaman, kita perlu mempertimbangkan kebutuhan memori aplikasi kita dan pengaturan dump crash.

Bagaimana Anda tahu berapa banyak memori yang dibutuhkan aplikasi Anda? Cara terbaik adalah mengambil garis dasar.

Run Performance Monitor (Perfmon)
Go to Data Collector Sets\User Defined
Right click on User Defined and select New
Select Create Manually and next
Check Performance counter
Add the following counters:

        Memory\Committed Bytes - Committed Bytes is the amount of committed virtual memory, in bytes.
        Memory\Committed Limit - Amount of virtual memory that can be committed without having to extend the paging file
        Memory\% Committed Bytes In Use - Ratio of Memory\Committed Bytes to the Memory\Commit Limit 

Catatan: Pastikan Anda mengumpulkan informasi dalam jangka waktu yang lama (setidaknya satu minggu), dan server berjalan pada penggunaan puncak.

Rumus ukuran file halaman harus:

(Nilai maksimum Bytes Komit + buffer 20% tambahan untuk mengakomodasi semburan beban kerja) -RAM ukuran

Sebagai contoh: Jika server memiliki 24 GB RAM dan maksimum byte yang dilakukan adalah 26 GB, maka file halaman yang disarankan adalah: (26 * 1.2) -24) = 7.2 GB

Bagaimana dengan faktor kedua: ukuran yang kita butuhkan untuk mencatat informasi ketika sistem crash?

Ukuran dump memori ditentukan oleh jenisnya:

Complete Memory Dump  RAM Size + 257 MB
Kernel Memory Dump  The amount of kernel-mode memory in use (on 32-bit maximum is 2 GB, on 64-bit the maximum can go up until 8 TB)
Small Memory Dump  64KB  512 KB

Dalam kebanyakan kasus, Kernel Memory Dump cukup baik untuk analisis penyebab dasar, karena Complete Memory Dump hanya diperlukan dalam kasus-kasus tertentu, misalnya Anda ingin melihat apa yang terjadi dalam mode pengguna.

Dari pengalaman saya, ukuran untuk Kernel Memory Dump biasanya adalah sebagai berikut:

On System with up to 256GB RAM =  8-12 GB size for Kernel Memory dump
On System with up to 1.5TB RAM = 8-32 GB size for Kernel Memory dump

Namun, angka-angka ini BUKAN rekomendasi resmi Microsoft, dan mungkin berbeda pada server Anda, jadi selalu uji sebelum Anda mendaftar.

Mike
sumber
2

Menjawab karena saya salah satu dari orang yang Anda kutip, heh.

1. Apa yang harus saya atur memori maks ketika saya juga menjalankan Layanan Analisis?

Anda tidak akan menemukan panduan di luar sana karena SSAS sama seperti aplikasi lain yang diinstal pada SQL Server Anda: kami tidak tahu berapa banyak memori yang akan Anda gunakan. Perlakukan SSAS / SSIS / SSRS sebagai aplikasi pihak ketiga - mereka kebetulan dimasukkan sebagai "gratis" di kotak SQL Server. Mereka memiliki kebutuhan CPU, memori, dan penyimpanan yang sama sekali berbeda.

2. Apa yang harus saya atur ukuran file halaman?

Rekomendasi saya adalah agar Windows dapat melakukan dump mini. Jika Anda mengalami masalah di mana Anda perlu menghubungi dukungan Microsoft, Anda bisa mulai dengan dump mini. Jika masalah berulang, dan mereka tidak dapat menemukannya dari dump mini (atau sumber informasi lainnya, seperti log kesalahan), maka mereka mungkin meminta Anda untuk pergi ke ukuran RAM 1,5x.

Rekomendasi 1,5x RAM dari Microsoft adalah agar Windows dapat melakukan dump memori FULL ketika sistem Anda crash.

Saat ini, dengan server yang memiliki RAM 64-128-256GB, biasanya bukan ide yang baik untuk membuat Windows jeda untuk menulis seluruh isi memori selama crash. Anda lebih suka memiliki SQL Server kembali dan berjalan, dan berurusan dengan konten dump mini daripada penuh. Simpan dump lengkap untuk nanti - Anda biasanya dapat pergi sepanjang karier Anda tanpa perlu mengunggah file dump 64 + GB ke Microsoft. (Semoga sukses untuk yang itu.)

3. Apa yang saya setel MAXDOP untuk untuk SharePoint?

Apa yang Anda sebut rekomendasi "saya" berasal dari Microsoft KB 2806535 . Mulai dari sana secara umum, tetapi ketika aplikasi tertentu memberi tahu Anda sesuatu yang berbeda, maka mereka tahu sesuatu tentang aplikasi mereka yang berbeda dari SQL Server pada umumnya - ikuti itu.

Brent Ozar
sumber