Ada pepatah jaringan lama yang berbunyi:“Masalah bandwidth dapat disembuhkan dengan uang. Masalah latensi lebih sulit karena kecepatan cahaya tetap.”
Secara tradisional, ada empat lapisan utama dalam keseluruhan memori dan hierarki penyimpanan dari server database. Mulai dari bagian atas piramida, Anda memiliki cache memori akses acak (SRAM) statis, yang biasanya dibagi antara cache L1 dan L2 yang relatif kecil dan cepat untuk setiap inti fisik prosesor dan yang lebih besar, lebih lambat, on-die, cache L3 bersama untuk seluruh prosesor. Misalnya, prosesor 14nm Intel Xeon E7-8890 v4 (Broadwell-EX) memiliki 64KB per core L1 cache dan 256KB per core L2 cache, bersama dengan cache L3 60MB yang jauh lebih besar tetapi lebih lambat yang digunakan bersama di seluruh prosesor fisik .
Lapisan kedua adalah memori akses acak dinamis (DRAM) dengan kapasitas lisensi hingga 4 TB dengan Windows Server 2012 R2, naik hingga 24 TB dengan Windows Server 2016 dan dengan latensi dalam rentang nanodetik. Baik SRAM maupun DRAM bersifat volatil, artinya keduanya hanya menyimpan data saat daya listrik diterapkan.
Lapisan ketiga adalah SSD SATA/SAS (NAND), dengan kapasitas individu hingga sekitar 4 TB dan latensi dalam kisaran mikrodetik. Salah satu faktor pembatas dengan SATA/SAS (NAND) SSD yang lebih lama adalah kenyataan bahwa mereka menggunakan antarmuka SATA/SAS yang membatasi total bandwidth mereka, tergantung pada versi SATA/SAS yang mereka gunakan. Mereka juga dibatasi dengan menggunakan protokol AHCI lama yang memiliki lebih banyak overhead I/O dan latensi lebih tinggi daripada protokol NVMe yang lebih baru. Lapisan keempat adalah hard disk drive media pemintalan magnetis lama, dengan kapasitas individual hingga 10 TB dan latensi dalam kisaran milidetik.
Masing-masing lapisan tradisional ini memiliki latensi yang lebih tinggi, tetapi biaya per MB/GB lebih rendah dan kapasitas total yang lebih tinggi saat Anda menurunkan hierarki memori/penyimpanan. Latensi relatif dari keempat lapisan tradisional ini ditunjukkan pada Tabel 1.
Antarmuka | Jenis | Latensi Relatif (membaca) |
On core/On Die CPU | Tembolok SRAM | 1x |
Lampirkan Langsung | DRAM DDR4 | 10x |
PCIe NVMe atau SATA/SAS AHCI | SSD | 100.000x |
SAS/SATA | HDD | 10.000.000x |
Tabel 1:Lapisan Memori/Penyimpanan Tradisional
Lapisan Memori/Penyimpanan Baru
Selama beberapa tahun terakhir, kami telah melihat pengenalan dan peningkatan penggunaan SSD PCIe NVM Express (NVMe) berdasarkan teknologi flash NAND yang ada. Ini biasanya memiliki latensi dalam kisaran 50-100 mikrodetik. Mereka juga menggunakan protokol NVMe dan antarmuka PCIe yang lebih baru dan jauh lebih efisien, memberikan kinerja yang jauh lebih baik daripada SSD SAS/SATA lama yang menggunakan protokol AHCI lama.
Saat ini, Hewlett Packard Enterprise (HPE) menjual modul NVDIMM 8GB untuk server HPE Proliant DL360 Gen9 dan server HPE Proliant DL380 Gen9. Modul-modul ini memiliki DRAM 8GB yang didukung oleh flash 8GB seharga $899.00, yang cukup mahal per gigabyte. Server dua soket ini memiliki 24 slot memori yang masing-masing mendukung hingga 128GB DDR4 DIMM tradisional. Setiap slot yang Anda gunakan untuk modul NVDIMM tidak akan tersedia untuk penggunaan memori biasa. Anda dapat menggunakan maksimum 16 slot memori untuk penggunaan NVDIMM, yang memberi Anda kapasitas maksimum 128GB. Anda harus menggunakan prosesor seri Intel Xeon E5-2600 v4 untuk mendapatkan dukungan NVDIMM resmi. Micron dijadwalkan untuk merilis NVDIMM berkapasitas lebih besar 16 GB pada bulan Oktober 2016.
Perangkat | IOPS | Latensi Rata-Rata (ns) | MB/dtk |
NVM Express SSD | 14.553 | 66,632 | 56,85 |
Blokir Mode NVDIMM | 148.567 | 6.418 | 580,34 |
Mode DAX NVDIMM | 1.112.007 | 828 | 4.343,78 |
Tabel 2:Perbandingan Kinerja Penulisan Acak 4K (1 utas, QD1)
Angka kinerja di Tabel 2 berasal dari presentasi Microsoft/Intel (Memori Persisten di Windows) di IDF16 di San Francisco, menggunakan metodologi pengujian kinerja ini:
- Beban Kerja :penulisan acak 4KB, 1 utas, 1 I/O luar biasa, I/O sinkron, file 1GB, NTFS, pemanasan 3 detik, waktu pengukuran 7 detik
- Perangkat Keras :HPE ProLiant DL380 Gen9, 2x Intel Xeon E5-2650L v3 @ 1.8GHz, RAM 96GB, 2x 8GB NVDIMM-N, 1x 1600GB NVMe SSD
- Perangkat Lunak :Pra-rilis WS 2016, alat I/O internal Microsoft
Ada video Channel 9 yang bagus berjudul Mempercepat Kinerja SQL Server 2016 dengan Memori Persisten di Windows Server 2016 yang menampilkan Lindsey Allen dan Tobias Klima. Demo dalam video menunjukkan bagaimana SQL Server 2016 yang berjalan di Windows Server 2016 mendukung mode DAX (dengan tanda jejak yang tidak ditentukan). Setelah Windows Server 2016 menjadi GA, tanda pelacakan tidak akan diperlukan dengan versi SQL Server yang akan datang.
Lapisan penyimpanan memori baru ini akan ditempatkan di antara memori DRAM tradisional dan SSD SATA/SAS.
Volume penyimpanan yang telah diformat dalam Mode DAX dapat digunakan untuk menghosting file log transaksi SQL Server 2016 dalam skenario di mana Anda memerlukan kinerja penulisan terbaik mutlak, dan Anda tidak ingin menggunakan Ketahanan Tertunda atau OLTP dalam Memori. Skenario lain yang mungkin adalah menggunakan volume Mode DAX untuk menghosting file data tempdb Anda jika Anda memiliki beban kerja yang memberikan tekanan ekstrem pada tempdb.
Lapisan Memori/Penyimpanan Masa Depan
Pada akhir 2016/awal 2017, kita akan melihat pengenalan SSD Intel Optane menggunakan protokol NVMe. Ini akan menjadi perangkat penyimpanan flash yang menggunakan Intel/Micron 3D XPoint Technology (diucapkan sebagai titik silang), yang akan bekerja di server yang ada. Dalam pengujian internal Intel, perangkat ini menunjukkan latensi sekitar 10X lebih rendah, dan IOPS sekitar 10X lebih tinggi daripada perangkat Intel DC P3700 Series PCIe NVMe SSD berkinerja sangat tinggi yang sudah ada.
Pada pertengahan/akhir 2017, kita juga akan melihat peluncuran bentuk baru DIMM persisten yang dapat digunakan sebagai memori persisten berkapasitas sangat besar, atau sebagai penyimpanan berkapasitas rendah berkinerja sangat tinggi. Ini akan kompatibel secara elektrik dan fisik dengan DIMM DDR4 saat ini, dan akan didukung di platform berbasis prosesor Intel Xeon generasi berikutnya (platform Skylake “Purley”). Produk ini juga akan berbasis Intel/Micron 3D XPoint Technology. DIMM Intel ini akan menawarkan hingga dua kali kapasitas memori sistem dengan biaya yang jauh lebih rendah daripada DRAM DDR4 tradisional, dengan asumsi platform prosesor/server Anda mendukungnya (dan Microsoft menaikkan batas memori lisensi setelah Windows Server 2016 dirilis). DIMM ini tidak akan memiliki latensi yang sama dengan DRAM tradisional (mereka akan lebih lambat), tetapi mereka akan menawarkan latensi yang jauh lebih rendah daripada perangkat penyimpanan PCIe NVMe.
Dari perspektif industri yang lebih luas, kategori baru perangkat Persistent Memory (PM) ini akan menawarkan penyimpanan non-volatil dengan kinerja hampir seperti DRAM. Perangkat PM berada langsung di bus memori, memberi mereka latensi yang sangat rendah dan bandwidth tinggi. Microsoft mendukung perangkat PM di Pembaruan Ulang Tahun Windows 10 dan Windows Server 2016. Akan ada dukungan untuk kelas volume penyimpanan baru, yang disebut Volume Penyimpanan Akses Langsung (DAX). Volume DAX menggunakan file yang dipetakan memori untuk menyediakan aplikasi dengan akses langsung ke perangkat PM untuk kinerja terbaik mutlak.
Salah satu alasan mengapa mode DAX jauh lebih cepat adalah karena setelah Anda memetakan memori wilayah NVDIMM pada volume DAX, interaksi lebih lanjut dengan penyimpanan tersebut sepenuhnya melewati tumpukan penyimpanan. Secara harfiah hanya memcopy agar data tetap ada. Itu adalah banyak kode yang tidak harus Anda jalankan pada setiap interaksi dengan penyimpanan. Itu adalah kontributor lain yang sangat signifikan untuk latensi (bersama dengan kecepatan cahaya). Volume DAX didukung pada NTFS dan Anda harus memilih mode DAX saat memformat volume. Aplikasi (seperti SQL Server 2016) harus telah dimodifikasi (oleh Microsoft) untuk mendukung dan menggunakan mode DAX, dan Anda juga harus mengaktifkan bendera pelacakan.
Untuk kompatibilitas mundur pada perangkat keras PM, juga akan ada volume mode Blokir, yang mempertahankan semua semantik penyimpanan yang ada. Semua operasi I/O akan melintasi tumpukan penyimpanan ke driver disk PM. Ini membuat mode Blok sepenuhnya kompatibel dengan aplikasi yang ada. Jika Anda memiliki perangkat keras PM, dengan sistem operasi yang didukung, Anda akan mendapatkan kinerja penyimpanan yang signifikan tanpa modifikasi aplikasi apa pun dalam mode Blokir. Ini berarti bahwa versi tingkat bawah dari SQL Server akan dapat menggunakan volume penyimpanan mode Blokir.
Intinya dari semua ini adalah bahwa kami akan memiliki lebih banyak fleksibilitas dan opsi baru tentang cara mendesain dan mengonfigurasi lapisan subsistem memori dan penyimpanan Anda selama 12-18 bulan ke depan, selama Anda menggunakan SQL Server 2016 di Windows Server 2016 dan memiliki perangkat keras yang cukup baru yang dapat mendukung perangkat PM. Versi SQL Server yang lebih lama akan dapat menggunakan volume PM mode Blok jika dijalankan di Windows Server 2016. Perangkat keras yang lebih lama dan versi Windows Server yang lebih lama akan dapat menggunakan Intel Optane SSD. Ini akan memberi kami banyak pilihan tambahan untuk meningkatkan kinerja penyimpanan!