Satu pertanyaan yang cukup sering muncul adalah bagaimana menentukan berapa banyak RAM fisik yang harus ada di server database yang menjalankan SQL Server 2012. Salah satu informasi pertama yang Anda perlukan untuk menentukan ini adalah versi dan edisi SQL Server yang akan Anda jalankan. di server baru Anda.
Versi dan edisi yang berbeda dari 64-bit SQL Server memiliki batasan lisensi yang berbeda untuk berapa banyak RAM fisik yang dapat mereka gunakan untuk tujuan yang berbeda, seperti yang ditunjukkan pada Tabel 1.
Versi | Edisi | Batas Mesin | Batas SSAS |
---|---|---|---|
SQL Server 2008 | Standar | Batas OS | Batas OS |
Perusahaan | Batas OS | Batas OS | |
SQL Server 2008 R2 | Standar | 64GB | 64GB |
Perusahaan | 2TB | 2TB | |
Pusat Data | Batas OS | Batas OS | |
SQL Server 2012 | Standar | 64GB | 64GB |
Kecerdasan Bisnis | 64GB | Batas OS | |
Perusahaan | Batas OS | Batas OS |
Tabel 1:Batasan RAM SQL Server menurut Versi dan Edisi
Seperti yang Anda lihat dari Tabel 1, SQL Server 2008 dapat menggunakan hingga batas sistem operasi untuk RAM fisik untuk Edisi Standar dan Perusahaan. Ketika Microsoft merilis SQL Server 2008 R2, mereka memiliki ide yang buruk (menurut saya) untuk memperkenalkan batas RAM fisik yang lebih rendah untuk Edisi Standar dan Perusahaan. Mereka juga memperkenalkan Edisi Pusat Data baru dari SQL Server 2008 R2, yang memiliki batas sistem operasi lama yang sudah dikenal sebagai batas lisensi untuk RAM fisik.
Batas Memori SQL Server 2012
Ketika Microsoft merilis SQL Server 2012, mereka dengan bijaksana menyingkirkan SKU Edisi Pusat Data, tetapi mereka mempertahankan batas RAM 64GB artifisial rendah yang sama untuk Edisi Standar. Saya telah menulis panjang lebar tentang mengapa ini adalah ide yang buruk, jadi saya tidak akan merangkum argumen-argumen itu lagi di sini. Cukuplah untuk mengatakan bahwa agak konyol untuk dibatasi menggunakan RAM DDR3 ECC senilai kurang dari $800,00 (64GB dikalikan $12/GB) di server dua soket baru yang mungkin berharga sekitar $10-$15K untuk server itu sendiri , ditambah sekitar $29K untuk enam belas Lisensi Inti SQL Server 2012 Edisi Standar, belum lagi biaya penyimpanan Anda.
Sejauh ini, tidak ada indikasi bahwa Microsoft memiliki niat untuk mengubah batas RAM ini untuk SQL Server 2014, jadi kami mungkin harus terus menanganinya. Satu aspek positif kecil dari batas RAM ini adalah per instance SQL Server, bukan per server. Itu berarti bahwa Anda dapat, dengan sedikit pemikiran dan perencanaan, memutuskan untuk menginstal dua atau tiga instans SQL Server 2012 Standard Edition pada mesin fisik yang sama untuk memanfaatkan semua memori, prosesor, dan sumber daya penyimpanan mesin, jika Anda mau. untuk menangani penggunaan sumber daya ekstra dan overhead manajemen dari instance bernama. Ini dapat menghemat banyak uang untuk perangkat keras dan biaya lisensi SQL Server 2012 dibandingkan dengan memiliki dua atau tiga server terpisah.
Jika Anda memutuskan untuk tetap menggunakan satu contoh default SQL Server 2012 Edisi Standar (yang saya lebih suka jika saya terbatas pada Edisi Standar), haruskah Anda mendapatkan 64GB RAM untuk server database? Saya pikir jawabannya adalah tidak!
Contoh Konfigurasi Memori SQL Server 2012 Edisi Standar
Sejak kelas server, DDR3 ECC RAM sangat terjangkau; Saya pikir jumlah minimum RAM yang masuk akal untuk server dua soket baru mendekati 96GB RAM. Ini akan memungkinkan Anda menyetel setelan memori server maks tingkat instans ke 65536MB, yang persis 64GB RAM, sambil menyisakan banyak RAM berlebih untuk sistem operasi, dan aplikasi lain yang mungkin berjalan di server database Anda.
Vendor server utama memiliki dokumentasi dan alat konfigurasi memori online yang membantu memastikan Anda mendapatkan konfigurasi memori terbaik untuk jumlah memori fisik yang diinginkan. Anda juga dapat menggunakan alat seperti CPU-Z untuk memeriksa kecepatan memori sistem Anda untuk memastikannya berjalan pada kecepatan yang Anda harapkan.
Misalnya, Dell memiliki alat konfigurasi online di sini. Alat ini memungkinkan Anda memilih model server Dell yang Anda inginkan, termasuk keluarga prosesor mana yang akan Anda gunakan (bila Anda memiliki pilihan), dan jumlah prosesor fisik yang akan benar-benar ada di server. Kemudian Anda memasukkan berapa banyak RAM fisik yang Anda inginkan di server, dan memilih opsi keandalan memori yang Anda inginkan (seperti mirroring memori, hemat peringkat, dll.), dan kemudian alat akan muncul dengan tiga kemungkinan konfigurasi memori yang berbeda:Konfigurasi nominal, Performa maksimal, dan konfigurasi Seimbang. Konfigurasi ini menunjukkan jenis, jumlah, dan ukuran modul memori yang harus Anda gunakan, serta saluran dan slot memori apa yang harus Anda isi untuk memenuhi opsi konfigurasi yang dipilih.
Jika Anda memilih server dua soket Dell PowerEdge R720, dengan dua prosesor 22nm Intel Xeon E5-2600 v2 (Ivy Bridge-EP) baru dan Anda memilih 96GB RAM tanpa opsi keandalan memori lainnya, Anda akan mendapatkan tiga memori yang disarankan opsi konfigurasi. Opsi Performa maksimum menyarankan dua belas, 8GB 1866MHz 1R x4 RDIMM, dengan Slot 0 pada Saluran 1-4 terisi, dan Slot 1 pada Saluran 1-2 terisi untuk setiap prosesor. Ini memberi Anda kecepatan memori sistem 1866MHz, yang merupakan maksimum yang didukung oleh prosesor seri Intel Xeon E5-2600 v2 baru.
Omong-omong, jika Anda akan menggunakan SQL Server 2012 Standard Edition, prosesor persis yang Anda inginkan di Dell R720 adalah Intel Xeon E5-2667 v2, yang memiliki delapan inti fisik dengan kecepatan clock dasar 3.3GHz. Memiliki model jumlah inti yang lebih tinggi akan mencapai batas lisensi inti fisik 16 untuk SQL Server 2012 Edisi Standar.
Opsi konfigurasi Seimbang menyarankan dua belas, 8GB 1600MHz 1R x4 RDIMM, dengan Slot 0 pada Saluran 1-4 terisi, dan Slot 1 pada Saluran 1-2 terisi untuk setiap prosesor. Ini memberi Anda kecepatan memori sistem 1600MHz, yang akan menggunakan daya listrik sedikit lebih sedikit daripada opsi Performa maksimum.
Opsi konfigurasi Nominal menyarankan dua puluh empat, 4GB 1333MHz 1R x8 RDIMM dengan semua Slot di semua saluran yang diisi untuk setiap prosesor. Ini memberi Anda kecepatan memori sistem 1333MHz, dengan semua slot Anda diisi dengan RDIMM 4GB yang cukup kecil. Ini adalah pilihan yang kurang optimal yang dirancang untuk menghemat biaya memori dengan menggunakan DIMM berkapasitas lebih kecil dan kecepatan lebih rendah. Sayangnya, ada sedikit penghematan uang yang nyata di sini, dengan mengorbankan jumlah kinerja memori yang layak dan tidak memiliki slot memori kosong.
Dengan prosesor seri Intel Xeon E5-2600 dan E5-2600 v2, Anda akan mendapatkan bandwidth memori setinggi mungkin jika Anda hanya mengisi satu atau dua slot per saluran memori. Mengisi slot memori ketiga menyebabkan penurunan kecepatan memori sistem. Jumlah memori tertinggi yang dapat Anda gunakan pada kecepatan memori sistem maksimum menggunakan RDIMM 16GB ekonomis adalah 256GB, yang akan menjadi enam belas, RDIMM 16GB, mengisi semua slot di Saluran 1 dan 2. Tidak ada keuntungan kecepatan memori sistem dari memiliki kurang dari 256GB RAM di server dua soket dengan dua prosesor seri Xeon E5-2600 atau E5-2600 v2.
Meskipun lebih baik mencoba membuat konfigurasi memori yang menghasilkan kecepatan memori sistem setinggi mungkin untuk jumlah RAM tertentu, dalam pengalaman saya (dan di sebagian besar tolok ukur aplikasi aktual yang saya lihat), perbedaan kinerja dunia nyata antara kecepatan memori sistem yang berbeda jauh lebih kecil dari yang Anda harapkan, cukup sering dalam kisaran 5-10% atau kurang. Untuk penggunaan SQL Server Enterprise Edition, saya lebih suka memiliki RAM yang cukup untuk menyesuaikan seluruh beban kerja saya di kumpulan buffer daripada memilih jumlah RAM yang lebih rendah untuk mendapatkan kecepatan memori setinggi mungkin dengan biaya harus menarik data dari subsistem penyimpanan lebih banyak sering. Bahkan RAM "lambat" memiliki latensi yang jauh lebih kecil daripada jenis subsistem penyimpanan apa pun, termasuk penyimpanan berbasis flash.
Jika beban kerja saya tidak sesuai dengan 256GB RAM, saya lebih suka menambahkan lebih banyak RAM dan mengambil kecepatan memori sistem daripada menerima pukulan karena harus mengakses subsistem penyimpanan yang jauh lebih lambat lebih sering. Jadi untuk rekap, saya pikir sweet spot memori untuk SQL Server 2012 Standard Edition untuk jenis server ini adalah 96GB, meningkat menjadi 256GB untuk SQL Server 2012 Enterprise Edition (kecuali beban kerja Anda lebih besar dari 256GB).