HPE Persistent Memory ile Tabuları Yıkın
Sunucu ve Veri Depolama alanında teknoloji sürekli değişiyor ve yıllardan beri bizler de bu değişiklikleri yakalamaya çalışıyoruz. 2002 yılına kadar x86 mimarisinde çok çekirdekli sunucu görmemişken günümüzde soket başına 64 çekirdekleri konuşuyoruz. Zamanında GB “Gigabyte” disk alanı lüks iken TB “Terabyte” geçici bellekleri satıyoruz.
Yıllardır CPU-RAM-Disk-PCIe haberleşmesini Kuzey Köprüsü, Güney köprüsü, seri haberleşmeden paralele, paralelden seri haberleşmeye geçiriyoruz diye anlatıp tam da stabil hale geldiğini düşünürken aralarında Hewlett Packard Enterprise’ ın da bulunduğu 12 üye yepyeni bir PCIe iletişim mimarisinin temellerini attı. Gen-Z konsorsiyum adını verdiğimiz bu topluluğun üye sayısı 2019 itibari ile 60’ın üzerine çıktı. İlerleyen zamanlarda CPU ya bağlı RAM değil, RAM lere bağlı CPU lar görmeye başlayacağız. İşte bu yolculuğun ilk günlerinde RAM hızları, RAM kapasiteleri ciddi önem arz etmeye başladı.
İsmim Türker Ata ? 15 yıllık Profesyonel iş hayatımda her zaman teknolojinin içerisinde yer almaya çalıştım, son 12 yıldır HPE “Hewlett Packard Enterprise” eğitmenliğini ve teknoloji danışmanlığını yapmaya çalışıyorum. Bu makalemde sizlere Intel® Optane™ persistent memory for HPE “Persistent Memory” ismini verdiğimiz teknolojiyi açıklamaya, Intel® Optane™ persistent memory for HPE ile sunucu konfigürasyonunu ve bu sunucudaki performans testlerini aktarmaya çalışacağım. Makalemi 3 bölüme ayırdım.
- Intel® Optane™ persistent memory teknolojisi nedir?
- Intel® Optane™ persistent memory takılma kuralları ve sunucu konfigürasyonu
- Intel® Optane™ persistent memory testleri
Sunucu veri katmanlarını hiyerarşik olarak hızlıdan yavaşa göre göstermek istesek işlemci cache katmanından mekanik disklere doğru bir piramit çizmiş oluruz. Haberleşme olarak incelediğimizde işlemci, ihtiyaç duyduğu veriyi kendi L1-L2-L3 katmanlarında arar; bu veriyi bulamadıkça en alta kadar iner. Bu piramidin en hızlı – pahalı- küçük kapasiteli olanları en yukarıda yer alır.
İşte tam da bu noktada olası en yüksek erişim hızına ve kapasitesine ihtiyaç duyduğumuz noktada Persistent Memory karşımıza çıkıyor. Persistent Memory, RAM slotlarına takılan özel DIMM lerin OS katmanına kalıcı disk olarak göründüğü, sunucu elektrik problemi yaşasa bile RAM lerde olan veri kaybını yaşamadığı yeni veri depolama teknolojisidir. Detaylarına daha sonra değineceğim fakat kabaca RAM slotlarına takılan ve RAM erişim hızında disk teknolojisi demektir.
Bu noktada olası kafa karışıklığını gidermeye çalışayım. Bu teknoloji Intel’e ait bir teknolojidir ve ismi “Intel® Optane™ persistent memory ” dir. HPE bu ürüne kendi sunucularında çalışabilecek haliyle güvenlik, performans, dayanıklılık özelliklerini katarak ismini “Intel® Optane™ persistent memory for HPE ” yapıp kendi ürün portföyünde kullanmıştır. Makalemin bundan sonraki kısımlarında Intel® Optane™ persistent memory for HPE halini kullanacağım.
En alt 2 katmandan başlayacak olursak; diskler çeşitli performans ihtiyaçlarına göre çözüm sunmaktadır. Mesela bir kamera ya da yedekleme verisinde kapasite-fiyat oranına göre en makul disk tipini seçeriz. Günümüzde LFF disk tipinde 14TB lik disklerle bu iş yüküne çözüm buluyoruz. Düşük random io performansı verirken yüksek kapasite sağlıyoruz. Ancak yüksek performans ihtiyacı olduğunda çok detaylarına girmeyeceğim SSD ailesini tercih etmeye başlıyoruz.
İşte tam da bu noktadan sonra Intel® Optane™ persistent memory for HPE testlerimiz başlayacak.
Sizler için en iyi PCIe NVME SSD yi HPE DL380Gen10 sunucuma taktım ve genel olarak herkesin adını duyduğu “iometer” http://www.iometer.org/doc/downloads.html ile aşağıdaki ayarlarda testler yapmaya başladım. Testleri %100 Random Read & %100 Random Write olarak 2 şekilde gerçekleştirdim.
Sonuç1: %100 Read Performansında Sunucu CPU’su %18 iken PCIe NVME SSD disk bize maksimum 507bin IOPS verebiliyor.
Sonuç2: %100 Write Performansında Sunucu CPU’su %18 iken PCIe NVME SSD bize maksimum 216bin IOPS veriyor.
Bu sonuçlar bize sahada disk başına alınabilecek en yüksek değerleri göstermektedir. Aynı testleri piyasadaki en iyi SAS disk ile de yaptım ve değerler 160bin e 120bin olarak geldi.
Standart şartlarda Intel® Optane™ persistent memory for HPE öncesi alınabilecek en iyi değerleri yukarıda özetlemeye çalıştım.
- Intel® Optane™ persistent memory for HPE Cascade Lake Silver 4215 & Gold & Platinum İşlemcilerle çalışan, 128GB-256GB-512GB lik 3 ayrı DIMM opsiyonu olarak kullanabileceğimiz bir teknolojidir.
- Bu teknolojide Intel’in belirlediği CPU-RAM haberleşme kurallarına uymak zorundayız.
- Sunucuya takılacak CPU modeline göre adresleyebilecek RAM miktarı dolayısı ile Intel® Optane™ persistent memory for HPE miktarı değişiklik gösterecektir.
- HPE PMEM, DRAM ile birlikte çalışmak zorundadır.
- Her soket CPU için en az 1 adet RAM takılmalıdır ve CPU 6 kanaldır. Son jenerasyon DIMM mimarisi kullanmasına rağmen 2666MT/S hızında çalışmaktadır.
M-series 2nd Gen CPU (Örneğin;8280M)
- 1 Soket 8280M CPU = 2048GB toplam RAM adresleyebilir, minimum 1, maksimum 12 adet RAM takılabilir.
- 2 Soket 8280M CPU = 4096GB toplam RAM adresleyebilir, minimum 1, maksimum 12 adet RAM takılabilir.
- 4 Soket 8280M CPU = 8192GB toplam RAM adresleyebilir, minimum 1, maksimum 12 adet RAM takılabilir.
L-series 2nd Gen CPU (Örneğin;8280L)
- 1 Soket 8280L CPU = 4500GB toplam RAM adresleyebilir, minimum 2, maksimum 24 adet RAM takılabilir.
- 2 Soket 8280L CPU = 9000GB toplam RAM adresleyebilir, minimum 2, maksimum 24 adet RAM takılabilir.
- 4 Soket 8280L CPU = 18,000GB toplam RAM adresleyebilir, minimum 2, maksimum 24 adet RAM takılabilir.
Intel bu adresleme kurallarına ilave takılabilecek Intel® Optane™ persistent memory for HPE DIMM sayısını ve kapasitesini de belirledi.
1 İşlemcili sunucularda;
- 1 adet Intel® Optane™ persistent memory for HPE takabilmek için 6 adet RDIMM ya da LRDIMM takılmalıdır.
- 2 adet Intel® Optane™ persistent memory for HPE takabilmek için 4,6 ya da 8 adet RDIMM ya da LRDIMM takılmalıdır.
- 4 adet Intel® Optane™ persistent memory for HPE takabilmek için 6 adet RDIMM ya da LRDIMM takılmalıdır.
- 6 adet Intel® Optane™ persistent memory for HPE takabilmek için 6 adet RDIMM ya da LRDIMM takılmalıdır.
2 İşlemcili sunucularda;
- 2 adet Intel® Optane™ persistent memory for HPE takabilmek için 12 adet RDIMM ya da LRDIMM takılmalıdır.
- 4 adet Intel® Optane™ persistent memory for HPE takabilmek için 8,12 ya da 16 adet RDIMM ya da LRDIMM takılmalıdır.
- 8 adet Intel® Optane™ persistent memory for HPE takabilmek için 12 adet RDIMM ya da LRDIMM takılmalıdır.
- 12 adet Intel® Optane™ persistent memory for HPE takabilmek için 12 adet RDIMM ya da LRDIMM takılmalıdır.
Soket başına 6 adet 512GB lik PMEM takılabiliyorsa ki bu 3TB alanı persistent olarak kullanabiliriz anlamına geliyor.
Ben testlerimde 2 adet 128GB lik Intel® Optane™ persistent memory for HPE kullandım.
- Intel® Optane™ persistent memory for HPE nin 2 çalışma modu var.
Memory Mode ve App Direct Mode. Fiziksel olarak RAM ve Intel® Optane™ persistent memory for HPE ler taktıktan sonra sunucumuzu ilgili modelar için yapılandırmak zorundayız.
Memory Mode (Bellek Modu): L Kodlu bir CascadeLake işlemci “8280L” soket başına 4.5TB adresleyebiliyorken hali hazırda satılan 128GB DRAM ile 12 x 128 GB Maksimum 1.5TB RAM adresleyebiliyoruz. Ancak 6 x 512GB PMEM + 4 x 128GB DRAM ile 4.5TB RAM alanını CPU yönetebiliyor.
Bellek modunda, Intel® Optane™ persistent memory for HPE kapasitesi, sistem bellek kapasitesi olarak sunulur ve DRAM önbellek olarak kullanılır. DRAM önbelleği ve Intel® Optane™ persistent memory for HPE arasındaki veri hareketi bellek denetleyicisi tarafından yönetilir ve işletim sistemi ve uygulama için şeffaftır. Aşağıdaki resimde bunu basitleştirerek anlatmaya çalıştım. Data Intel® Optane™ persistent memory for HPE den okunur, DRAM’ de cache lenir. Bir sonraki alımda DRAM den cevap verilir.
Sisteme eklenmiş Intel® Optane™ persistent memory for HPE’ lerin tamamını RAM olarak kullanmak istersek örnek komut;
# ipmctl create –goal MemoryMode=100
App-Direct Mode (Disk Modu): L Kodlu bir CascadeLake işlemci “8280L” soket başına 4.5TB adresleyebiliyorken hali hazırda satılan 128GB DRAM ile 12 x 128 GB Maksimum 1.5TB RAM adresleyebiliyoruz. Ancak 6 x 512GB PMEM + 4 x 128GB DRAM ile 4.5TB RAM alanını CPU yönetebiliyor.
Bellek modunda, Intel® Optane™ persistent memory for HPE’nin kapasitesi, sistem bellek kapasitesi olarak sunulur ve DRAM önbellek olarak kullanılır. DRAM önbelleği ve PMEM arasındaki veri hareketi bellek denetleyicisi tarafından yönetilir ve işletim sistemi ve uygulama için şeffaftır.
Aşağıdaki resimde Linux sistemde AppDirect ve Direct Access path lerini basitleştirerek anlatmaya çalıştım.
Sisteme eklenmiş Intel® Optane™ persistent memory for HPE’ lerin tamamını Linux bir sistemde Persistent Disk olarak kullanmak istersek örnek komut;
# ipmctl create –goal PersistentMemoryType=AppDirectNotInterleaved
# ndctl create–namespace
# mkfs –t xfs /dev/pmem0
# mkdir /mnt/pmem0
# mount –o dax /dev/pmem0 /mnt/pmem0
Günümüzde Intel® Optane™ persistent memory for HPE takılı sunucuları birden fazla iş yüklerinde farklı modlarda görmeye başlayacağız. Aşağıdaki tabloda iş yüklerine göre önerilen çalışma modunu ve faydalarını göstermeye çalıştım
Workload | Use Case | Mode | Benefits |
SAP HANA* | Extension Node (access more warm data) | AD | 25% More Data |
SAP HANA* | Analytics Scale Up to Scale Out | AD | 100% More Data, 35%Less Cost |
SAP HANA | SAP Consolidation | AD | 100% More Capacity, 35%Less Cost |
SQL Server* | Multi-Tenant DBaaS on bare metal | MM | Up to 50% node condolidation, Up to 41% lower estimated TCO |
SQL Server/ Hyper-V* | Multi-Tenant DBaaS on Hyper-V | MM | Up to 33% more memory, 36% more VM’s per node, 26% lower HW cost per VM |
Azure Stack HCI | Azure Stack HCI Virtualization | MM | 33% more memory, 35% more VM’s per node, 26% lower HW cost per VM |
Content Delivery Network | Live Linear (video streaming) | MM | Up to 34% Less Memory cost |
SAS* Viya* | SAS Viya platform (Analytics) | MM | Up to 34% Less Memory cost |
Spark SQL | Spark SQL Decision Support Workload | AD | Up to 8x High Performance |
VMWare ESXI/VSphere | VMWare VMmark | MM | 33% more memory, 25% more VM’s per node, 19% lower HW cost per VM |
VMWare vSAN | VMWare Vmmark on VMWare vSAN | MM | 33% more memory, 33% more VM’s per node, 23% lower HW cost per VM |
VMWare VDI | VMWare VDI Virtualization | MM | 33% more memory, 22% more VM’s per node, 14% lower HW cost per VM |
KVM and Redis | KVM Virtualization with Redis | MM | 4x Memory per Server, 4x Sessions Per Server, Up to 53% cost reduction per VM |
Redis Enterprise | Redis Enterprise | MM | Up to 34% Less Memory cost |
Memcached | Memcached and Yahoo Cloud Server | MM | 33% more memory, 31% larger DB Instance |
Aerospike | Aerospike Enterprise Consolidation | AD | Up to 33% node consolidation, 33 % more data capacity per system, 24% lower cost |
SaaS – Java/Web App | SaaS – Java/Web Application Server | MM | Up to 71% node condolidation, Up to 12% lower estimated HW Cost |
Denemeleri yaptığım DL380Gen10 sunucu bilgilendirmelerini, DRAM&Intel® Optane™ persistent memory for HPE takılmalarını resimsel olarak anlatmaya çalışayım.
- RAM lerin hangi şekilde takıldığını resimden görebilirsiniz. Sistemim UEFI modunda çalışıyor ve aşağıdaki BIOS ayarlarını bu iş özelinde yapılandırmak zorundayız.
- Memory Controller
Interleaving—Auto
- Maximum Memory Bus Frequency—Auto
- Memory Patrol Scrubbing—Enabled
- Memory Remap—No Action
- Persistent Memory Address Range Scrub—Enabled.
- Memory mode—Select X %.
- App Direct mode—Select Y %.
- Persistent Memory Interleaving—Enabled or Disabled
- Security Freeze Lock—Disabled.
– Performance Setting:
*Bandwidth Optimized (default)
*Latency Optimized
İhtiyacımıza göre Bandwidth ya da Latency özelinde seçim yapabiliriz.
– Quality of Service:
*Disabled (default)
*Profile1 (6 and 4 Intel® Optane™ persistent memory for HPE modules per socket optimized)
*Profile2 (2 Intel® Optane™ persistent memory for HPE modules per socket optimized)
*Profile3 (1 Intel® Optane™ persistent memory for HPE modules per socket optimized)
Read operasyonlarında etkisi olmayan ama write işlemlerinde DRAM ile birlikte kullanımda fark yaratacak olan seçeneklerdir.
-FastGo Configuration: 3 opsiyon olarak gelir;
*Auto (default)
*Enabled
*Disabled
Intel® Optane™ persistent memory for HPE wirite iş yüklerine ihtiyacımız olduğu senaryoda yüksek bandwidth ihtiyacımız olduğunda Enabled yapmamız gereken özelliktir. Varsayılan olarak Auto yani bu özellik kullanım dışı gelir.
Snoopy Mode for App Direct:
*Disabled (default)
*Enabled
NUMA optimize edilmemiş uygulamalarda Intel® Optane™ persistent memory for HPE okuma performansını iyileştirir.
- Ben fiziksel testlerim için AppDirect Mode u tercih ettim çünkü bu mode söylediğimiz oranlarda PMEM in disk olarak çalışabilmesini sağlıyor. Memory mode cache gibi kullanılıyorken AppDirect Mode Disk alanı olarak görülecek. Bu yapılandırmayı 3 farklı kategoride yapabiliriz.
- Embedded tools UEFI System Utilities HPE Persistent Memory Management UtilityIpmctl tool (under the UEFI Shell)
- REST/iLO-based tools
- HPE iLO RESTful API
- RESTful Interface Tool
- OS-based tools
- Windows PowerShell cmdlets
- Ipmctl tool (in Linux)
- REST/iLO-based tools
Ben makalemde ipmctl tool tercih ettim. Bu araç Windows üzerine kurulabilen küçük bir software olarak download edilebiliyor “https://software.intel.com/en-us/articles/configure-manage-and-profile-intel-optane-dc-persistent-memory-modules”
BIOS ayarlarını yapmadan önce download ettiğimiz software üzerinden aşağıdaki komutu çalıştırdığımızda Intel® Optane™ persistent memory for HPE’ nin işlevsel olmadığını görebilirsiniz.
Yukarıda bahsi geçen ayarları doğru yapılandırdıktan sonra tekrar çalıştırdığımızda aşağıdaki gibi bir fark oluyor.
Aşağıdaki parametreler Intel® Optane™ persistent memory for HPE’ nin hangi modda çalıştırmak istediğimize ya da hangi oranlarda disk&cache kullanmak istediğimize göre seçilecek
Komut | Açıklama |
ipmctl create -goal | Defaults to 100% interleaved persistent memory |
ipmctl create -goal MemoryMode=0 Reserved=100 | 100% unconfigured |
ipmctl create -goal MemoryMode=100 | 100% volatile memory |
ipmctl create -goal MemoryMode=0 PersistentMemoryType=AppDirect | 100% interleaved persistent memory |
ipmctl create -goal MemoryMode=0 PersistentMemoryType=AppDirectNotInterleaved | 100% non-interleaved persistent memory |
ipmctl create -goal MemoryMode=80 PersistentMemoryType=AppDirect | 80% volatile memory 20% interleaved persistent memory |
Artık Disk Management da takılı olan Intel® Optane™ persistent memory for HPE’ leri disk olarak görebiliyoruz.
Standart OS’ ye ekleme ve formatlama işlemlerinden sonra testlerimizi yapabiliriz. Hangi parametrelerde yaptığımızı ve hangi sonuçlar aldığımızı hatırlayalım.
Sizler için en iyi PCIe NVME SSD yi HPE DL380Gen10 sunucuma taktım ve genel olarak herkesin adını duyduğu “iometer” http://www.iometer.org/doc/downloads.html ile aşağıdaki ayarlarda testler yapmaya başladım. Testleri %100 Random Read & %100 Random Write olarak 2 şekilde gerçekleştirdim.
Sonuç1: %100 Read Performansında Sunucu CPU’su %18 iken PCIe NVME SSD disk bize maksimum 507bin IOPS verebiliyor.
Sonuç2: %100 Write Performansında Sunucu CPU’su %18 iken PCIe NVME SSD bize maksimum 216bin IOPS veriyor.
Bu sonuçlar bize sahada disk başına alınabilecek en yüksek değerleri göstermektedir. Aynı testleri piyasadaki en iyi SAS disk ile de yaptım ve değerler 160bin e 120bin olarak geldi.
İnanılır gibi değil, sunucumun CPU’su disk alanının limitini ölçemedi. %100 CPU kullanımında 0 ms Reponse Time’da 2 Milyon IOPS sınırını gördük ve daha fazlasını CPU isteyemedi ?
Write testlerimiz yine CPU’ya takıldı ama 0 ms Response Time ‘da 400 bin IOPS üzerine çıkabildik.
Özetle bu makalemdeIntel® Optane™ persistent memory teknolojisini, Intel® Optane™ persistent memory for HPE’ nin fiziksel konfigürasyonunu yaparak diğer disk teknolojileri ile performans bakımından kıyaslamaya çalıştım. Bir sonraki aşamada farklı kullanım senaryoları üzerinden Intel® Optane™ persistent memory for HPE makalelerime devam edeceğim.
Türker Ata
Eline sağlık Türker, efsane makale olmuş. Gerçekten senin makaleleri özlemişiz.