fbpx
Anasayfa » HPE Persistent Memory ile Tabuları Yıkın

Makaleyi Paylaş

HP - HPE

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 HPE PMEM “Persistent Memory” ismini verdiğimiz teknolojiyi açıklamaya, Intel Optane DCPMM ile sunucu konfigürasyonunu ve bu sunucudaki performans testlerini aktarmaya çalışacağım. Makalemi 3 bölüme ayırdım.

  1. PMEM teknolojisi nedir?
  2. PMEM takılma kuralları ve sunucu konfigürasyonu
  3. PMEM 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.

Sponsor

İş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 DC Persistent Memory” dir. HPE bu ürüne kendi sunucularında çalışabilecek haliyle güvenlik, performans, dayanıklılık özelliklerini katarak ismini “HPE PMEM” yapıp kendi ürün portföyünde kullanmıştır. Makalemin bundan sonraki kısımlarında HP PMEM 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 PMEM 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 HPE PMEM öncesi alınabilecek en iyi değerleri yukarıda özetlemeye çalıştım.

  • HPE PMEM 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 PMEM 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 8280M CPU = 4500GB toplam RAM adresleyebilir, minimum 2, maksimum 24 adet RAM takılabilir.
  • 2 Soket 8280M CPU = 9000GB toplam RAM adresleyebilir, minimum 2, maksimum 24 adet RAM takılabilir.
  • 4 Soket 8280M CPU = 18,000GB toplam RAM adresleyebilir, minimum 2, maksimum 24 adet RAM takılabilir.

Intel bu adresleme kurallarına ilave takılabilecek Optane DIMM sayısını ve kapasitesini de belirledi.

1 İşlemcili sunucularda;

  • 1 adet HPE PMEM takabilmek için 6 adet RDIMM ya da LRDIMM takılmalıdır.
  • 2 adet HPE PMEM takabilmek için 4,6 ya da 8 adet RDIMM ya da LRDIMM takılmalıdır.
  • 4 adet HPE PMEM takabilmek için 6 adet RDIMM ya da LRDIMM takılmalıdır.
  • 6 adet HPE PMEM takabilmek için 6 adet RDIMM ya da LRDIMM takılmalıdır.

2 İşlemcili sunucularda;

  • 2 adet HPE PMEM takabilmek için 12 adet RDIMM ya da LRDIMM takılmalıdır.
  • 4 adet HPE PMEM takabilmek için 8,12 ya da 16 adet RDIMM ya da LRDIMM takılmalıdır.
  • 8 adet HPE PMEM takabilmek için 12 adet RDIMM ya da LRDIMM takılmalıdır.
  • 12 adet HPE PMEM 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 HPE PMEM kullandım.

  • HPE PMEM in 2 çalışma modu var.

Memory Mode ve App Direct Mode. Fiziksel olarak RAM ve PMEM 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, HPE PMEM 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 bunu basitleştirerek anlatmaya çalıştım. Data PMEM den okunur, DRAM’ de cache lenir. Bir sonraki alımda DRAM den cevap verilir.

Sisteme eklenmiş PMEM 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, HPE PMEM 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ş PMEM 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 HPE PMEM 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&PMEM 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 HPE Persistent Memory modules per socket optimized)

*Profile2 (2 HPE Persistent Memory modules per socket optimized)

*Profile3 (1 HPE Persistent Memory 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

PMEM 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 PMEM 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 toolsUEFI System UtilitiesHPE 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)

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 PMEM in 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 HPE PMEM in 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 PMEM 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 makalemde Intel Optane teknolojisini, HPE PMEM’ in 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 PMEM makalelerime devam edeceğim.

Türker Ata

Makaleyi Paylaş

1 Yorum

  1. Eline sağlık Türker, efsane makale olmuş. Gerçekten senin makaleleri özlemişiz.

Cevap bırakın