Berbicara dari pengalaman yang sederhana tapi saya pikir layak untuk dibagikan, hambatan utama dengan database SQL (Sybase dan SQL server di sini) adalah penyimpanan.
Tapi saya pikir itu adil jika seseorang pertama-tama membuat tolok ukur pengaturan mereka sebelum membuat asumsi yang salah. Dalam kasus saya, penggunaan CPU tidak pernah naik cukup tinggi untuk membenarkan peningkatan CPU dalam waktu dekat. Sebagai gantinya, saya telah meningkatkan dari satu drive ke RAID 1 dan kemudian ke RAID 10+ per ton dari 8GB ke 16GB RAM.
Semua upgrade RAID ini membantu mengurangi waktu tunggu sebelumnya dengan faktor 2 hingga 6. Saya menduga upgrade ke SSD akan lebih baik. Jika Anda memikirkannya, semuanya dapat dikurangi menjadi bandwidth (teoritis). Kombo [(Kecepatan RAM + Ukuran RAM + Pengontrol memori) Anda ke CPU] memiliki batas bandwidth yang akan menjadi faktor paling penting dalam operasi baca ketika data Anda harus selalu di-cache, penyimpanan (RAID) khusus Anda memiliki batas bandwidth ( memengaruhi pembacaan saat cache tidak terjawab dan penulisan saat membilas atau dengan banyak klien menulis banyak data yang digabungkan).
Normalisasikan semua batas sebanyak mungkin (mendekatkan mereka sehingga Anda tidak menghabiskan sumber daya) dan menaikkannya sebanyak mungkin (tingkatkan jika diperlukan dan hanya jika diperlukan, jangan biarkan sumber daya terbuang sia-sia jika sistem menang ' t dapat menggunakannya karena beberapa hambatan lain menghalangi). Pada akhirnya, kemacetan terburuk Anda akan menjadi subsistem server yang paling berkinerja (dengan bandwidth paling sedikit) dalam konfigurasi khusus Anda.
Saya mungkin juga menambahkan bahwa, dalam proses peningkatan, saya telah membuat konfigurasi RAID terpisah untuk file database dan file log database. Alasannya adalah bahwa file log basis data cenderung menjadi intensif menulis. File log digunakan untuk memulihkan database dari kerusakan dan selalu ditulis untuk segera karena transaksi dilakukan sebelum data ditulis ke file database.
File log juga digunakan oleh beberapa server replikasi database tetapi kebanyakan replikasi tidak dilakukan secara instan tetapi sering sehingga dampak kinerja baca minimal di sini. Setidaknya saya pikir begitu. Saya telah melakukan benchmarking minimal sambil melakukan peningkatan ini lagi, saya sarankan siapa saja yang pertama kali melakukan tolok ukur konfigurasi yang berbeda dan terlebih dahulu meningkatkan penyimpanan mereka, kemudian RAM dan tautan jaringan, sebelum berpikir untuk meningkatkan CPU mereka.
Setelah peningkatan yang lebih luas pada lebih dari 5 server, saya kembali untuk berbagi pengalaman. Saya pasti masih menganjurkan untuk meningkatkan penyimpanan pertama, kemudian RAM dan kemudian CPU. Alasannya adalah perbedaan bandwidth dalam sistem antara penyimpanan, RAM dan CPU, dalam urutan terendah ke tertinggi. Jadi saya memutakhirkan banyak server dari RAID10 dan dual RAID1 ke SSD.
Cara saya melakukannya karena masalah biaya (saya memiliki 20 server untuk ditingkatkan) adalah memindahkan data database dan file objek ke SSD (ya, hanya satu SSD di RAID0) dan memindahkan log transaksi plus tempdb ke 4xHDD RAID10 konfigurasi. Saya menguji dengan tempdb pada SSD juga dengan hasil yang luar biasa (bahkan hasil yang sangat bagus dengan lebih dari 15 kali permintaan lebih cepat kadang-kadang, menghasilkan beberapa laporan mengambil detik daripada menit di masa lalu) tetapi kemudian memindahkan tempdb ke disk RAID10 karena masalah penulisan yang intensif untuk SSD.
Jadi sekarang pada dasarnya saya telah mengamati waktu respons 10-15 kali lebih cepat per beberapa pertanyaan terlama. SSD sangat bagus untuk membaca data ke dalam RAM dengan cepat karena SQL Server tidak membawa data ke dalam RAM sampai diminta untuk dan tentu saja data terlebih dahulu perlu dimuat ke dalam RAM untuk diproses oleh CPU (kemudian, dalam cache L1, L2, L3) , jadi SSD membantu mengurangi waktu tunggu awal dengan faktor besar. Dan SSD juga membantu mengurangi waktu swapping ... membersihkan RAM dan memuat data baru, terutama jika basis data Anda lebih besar dari yang bisa masuk ke dalam RAM.
Semua dalam semua, kami sangat senang dan telah berjalan seperti itu selama beberapa bulan dalam semacam proses migrasi yang lambat untuk memungkinkan server berjalan sehingga saya dapat mengumpulkan informasi tingkat keausan sebelum saya mengalihkan semua server saya ke konfigurasi ini. Dan ini hanya SQL Server Express! : D - Pastikan SSD Anda dapat memberikan IOPS konstan karena itu hal lain yang membuat perbedaan besar (hanya google saja). Itu sebabnya saya memilih Intel DC (DataCenter) seri SSD.