Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pemilihan Prosesor Praktis untuk Beban Kerja OLTP SQL Server 2014/2016

Mungkin bukan CPU yang Anda cari.

Bayangkan Anda baru saja mendapatkan persetujuan manajemen untuk server database lokal baru yang akan menjalankan beban kerja OLTP misi penting dengan SQL Server 2014 Enterprise Edition yang berjalan di Windows Server 2012 R2 Standard Edition. Server baru ini akan menggantikan server lama Dell PowerEdge R910 yang menjalankan SQL Server 2008 R2 Enterprise Edition pada Windows Server 2008 R2 Enterprise Edition. Server yang ada ini memiliki empat, prosesor 45nm Intel Xeon X7560 Nehalem-EX (memberi Anda total 32 ”inti fisik dalam sistem) dan memiliki RAM 512GB, yang merupakan pengaturan premium saat dibeli pada tahun 2010.

Untuk contoh ini, Anda memiliki anggaran lisensi perangkat keras dan perangkat lunak yang agak terbatas yang tersedia untuk peningkatan platform. Anda ingin pindah ke SQL Server 2014 Enterprise Edition, di server baru dengan kinerja CPU single-threaded yang jauh lebih baik (karena Anda memiliki beban kerja OLTP), dan kapasitas CPU keseluruhan yang lebih tinggi, sambil tetap meminimalkan biaya lisensi perangkat keras dan SQL Server Anda.

Dengan informasi ini, bagaimana Anda memutuskan server model mana yang akan dipilih dan prosesor mana yang tepat untuk dipilih? Maukah Anda membiarkan seseorang di I.T. departemen membuat keputusan ini, atau apakah Anda akan terlibat dalam evaluasi dan proses pengambilan keputusan? Daripada membiarkan "Shon the server guy" memutuskan, saya ingin menunjukkan kepada Anda metode praktis dan mudah untuk mencari tahu ini, menggunakan skor benchmark TPC-E, beberapa aritmatika sederhana dan beberapa akal sehat.

Langkah pertama adalah memeriksa skor hasil benchmark TPC-E secara online, mencari sistem setara terdekat dengan sistem Anda yang ada. Jika Anda beruntung, Anda akan menemukan pengiriman benchmark resmi yang sama persis dengan sistem Anda. Dalam kasus kami, saya menemukan kiriman dari 10 April 2010 yang kebetulan sama persis dengan sistem warisan kami. Sistem Dell PowerEdge R910 ini memiliki skor TPC-E Throughput aktual 1.933,96, dengan empat prosesor delapan inti Intel Xeon X7560. Skor Throughput TPC-E aktual adalah pengukuran yang baik dari keseluruhan kapasitas CPU sistem, memberi Anda indikasi kasar tentang berapa banyak kueri bersamaan yang dapat ditanganinya (dengan asumsi Anda tidak memiliki penyimpanan atau kemacetan terkait memori).

Langkah kedua adalah mengambil skor Throughput TPC-E aktual untuk sistem ini, dan membaginya dengan jumlah inti prosesor fisik dalam sistem, untuk mendapatkan gambaran tentang kinerja prosesor single-threaded untuk prosesor tertentu dalam sistem benchmark . Untuk sistem ini, kita cukup membagi 1.933,96 dengan 32 inti fisik, untuk mendapatkan "skor per inti" 60,44. Intel Xeon X7560 memiliki kecepatan clock dasar 2.26GHz, dengan kecepatan clock Turbo 2.66GHz. Ini memiliki cache L3 bersama 24MB, dan kecepatan Intel QPI 6,4 GT/s. Quick Path Interconnect (QPI) adalah interkoneksi point-to-point antara CPU dan pengontrol memori terintegrasi, sehingga memiliki kecepatan QPI yang lebih tinggi berarti akses memori yang lebih cepat.

Langkah ketiga adalah mencari hasil benchmark TPC-E untuk sistem dan prosesor generasi saat ini, mencoba menemukan hasil untuk sistem yang kira-kira setara dengan jenis sistem baru yang Anda pertimbangkan. Sayangnya, hal ini terkadang menjadi sulit karena vendor server belum mengirimkan sistem baru sebanyak dulu, dan karena mereka selalu mengirimkan sistem yang menggunakan "flagship", prosesor dengan jumlah inti tertinggi untuk generasi dan keluarga prosesor tertentu. Ini membuat skor TPC-E Throughput aktual lebih tinggi, tetapi juga membuat sistem yang menggunakan prosesor itu jauh lebih mahal untuk lisensi SQL Server karena jumlah inti yang lebih tinggi. Masalah lain dengan model prosesor "unggulan" ini adalah bahwa mereka biasanya memperdagangkan jumlah inti fisik yang lebih tinggi untuk kecepatan clock dasar yang lebih rendah, sehingga Anda akhirnya membayar biaya lisensi yang jauh lebih tinggi dan benar-benar mendapatkan kinerja CPU single-threaded yang lebih rendah.

Kebijaksanaan konvensional adalah Anda menginginkan server empat soket baru untuk menggantikan server empat soket yang ada. Dengan server dua soket modern, itu mungkin tidak diperlukan lagi, tergantung pada besarnya beban kerja Anda. Ada suatu periode, dari awal 2012 hingga awal 2014, ketika prosesor server keluarga Xeon E5 dua soket baru jauh lebih cepat untuk kinerja single-threaded daripada prosesor server keluarga Xeon E7 empat soket baru. Kesenjangan kinerja ini sedikit tertutup ketika keluarga Xeon E7 v2 Ivy Bridge-EX dirilis pada awal tahun 2014. Sejak itu, keluarga E5 dan E7 sekarang semakin dekat karena keduanya menggunakan mikroarsitektur Haswell.

Mengingat paritas kinerja CPU yang mendekati ini, pilihan model server Anda bergantung pada keseluruhan memori, CPU, dan kapasitas IO. Server dua soket saat ini praktis terbatas pada RAM 768GB dengan DIMM 32GB, sedangkan server empat soket saat ini dapat memiliki RAM 3TB dengan DIMM 32GB. Sebagian besar pelanggan yang saya temui dapat dengan nyaman menjalankan beban kerja mereka pada 768GB RAM, tetapi beberapa sebenarnya membutuhkan lebih dari itu. Server dua soket dan empat soket dapat menggunakan prosesor Haswell dengan masing-masing 18 inti fisik, jadi Anda memiliki batas 36 atau 72 inti fisik di sistem Anda, bergantung pada jumlah soket Anda.

Untuk latihan ini, terdapat hasil benchmark TPC-E untuk sistem Fujitsu Primergy RX2540 M1 dua soket dengan skor Throughput TPC-E aktual sebesar 3.772,08, menggunakan dua prosesor Intel Xeon E5-2699 v3 delapan belas inti Haswell-EP dan 512GB RAM. Prosesor Xeon E5-2699 v3 memiliki kecepatan clock dasar 2.3GHz, dengan kecepatan clock Turbo 3.6GHz. Ini memiliki cache L3 bersama 45MB, dan kecepatan Intel QPI 9,6 GT/s. Untuk sistem ini, kami akan membagi skor aktual 3.772,08 dengan 36 inti fisik, untuk menghasilkan "skor per inti" 104,78.

Sistem dua soket baru ini akan memiliki hampir dua kali lipat kapasitas CPU keseluruhan dari sistem lama, dengan sekitar 1,57 kali kinerja single-threaded. Dari perspektif kapasitas CPU dan kinerja single-threaded, saya akan cukup yakin bahwa sistem dua soket baru ini akan menjadi pengganti yang baik untuk sistem lama. Sistem baru ini juga akan memiliki slot ekspansi PCIe 3.0, sehingga akan memiliki kapasitas IO total lebih banyak daripada sistem lama. Sayangnya, ia memiliki 36 inti fisik yang memerlukan lisensi SQL Server 2014 Enterprise Edition, yang akan agak mahal.

Pilihan prosesor yang lebih baik mungkin adalah Intel Xeon E5-2667 v3, yang memiliki delapan inti fisik, dengan kecepatan clock dasar 3.2GHz, kecepatan clock Turbo 3.6GHz, cache L3 bersama 20MB, dan Intel 9,6 GT/s kecepatan QPI. Dengan menggunakan beberapa aritmatika sederhana, kita dapat menyesuaikan perbedaan antara Xeon E5-2699 v3 dan Xeon E5-2667 v3, (karena keduanya berasal dari generasi dan keluarga prosesor yang sama).

Pertama, saya menyesuaikan perbedaan jumlah inti fisik. Jika Anda membagi 8 dengan 18, hasilnya adalah 0,44, jadi Anda mengalikan 3,772,08 dikali 0,44, kita mendapatkan hasil 1,676,48. Selanjutnya, kita harus menyesuaikan perbedaan kecepatan clock dasar antara kedua prosesor ini. E5-2667 v3 memiliki kecepatan clock dasar 39% lebih tinggi daripada prosesor E5-2699 v3, jadi kami akan mengalikan 1.676,48 kali 1,39 untuk mendapatkan perkiraan akhir Skor TPC-E 2330,31. Jika kita membagi perkiraan skor ini dengan 16 inti fisik, kita mendapatkan hasil "skor per inti" 145,64.

Jadi, menurut perhitungan ini, kami masih akan memiliki kapasitas CPU keseluruhan yang lebih besar daripada sistem lama, dan kinerja CPU single-threaded yang jauh lebih baik menggunakan jumlah inti yang lebih rendah, prosesor Xeon E5-2667 v3 yang "dioptimalkan frekuensi" di dua soket baru sistem. Bonus terakhir dari pilihan prosesor ini adalah biaya lisensi SQL Server 2014 yang jauh lebih rendah, karena kami hanya memerlukan 16 lisensi inti, bukan 36 lisensi inti, yang merupakan penghematan sekitar $136.000,00.

Mudah-mudahan, sedikit lebih jelas bagaimana Anda dapat melakukan beberapa analisis sederhana untuk membantu Anda memutuskan prosesor yang tepat yang harus Anda pilih untuk server database baru, mengingat beban kerja dan kendala anggaran Anda. Analisis ini sedikit lebih rumit ketika Anda harus membandingkan prosesor dari generasi dan keluarga yang berbeda, tetapi prinsip dasar yang sama dapat digunakan. Saya akan membahas lebih dalam tentang subjek ini di artikel mendatang.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penggantian ISNUMERIC() yang efisien di SQL Server?

  2. Bagaimana ISNUMERIC() Bekerja di SQL Server

  3. Apakah Anda Menggunakan Alat Pemantauan Kinerja Basis Data yang Tepat?

  4. Mengubah Prioritas Akun dalam Database Mail Profile (SSMS)

  5. cara menemukan ukuran baris dalam tabel