IP KAMERA / NVR SİSTEMLERDE PERFORMANS GELİŞTİRME
Bölüm 1: SSD Önbellek Çözümü
Yatırım Zorlukları
SSD Önbellek Çözümü
NAS üzerinde SSD Önbellek
Bölüm 2: SSD Önbellek Nasıl Çalışır
NVR Veri Operasyonları ve Hot Data
NAS NVR üzerindeki SSD Önbellek
SSD Önbellek ile Verinin Okunması ve Nvr Ara Belleğe Alınması
Nvr SSD Önbellek Üzerine Veri Yazımı
SSD Önbellekten Veri Temizlenmesi ve Boşaltılması
İsabet Oranı, Isınma Periyodu ve Önbellek Boyutu
Hızlanma ve Maksimum Sistem Performansı
NVR Hızlandırılmış Protokoller ve Hızlandırılmamış İş Yükü
SSD Önbellek ve RAM Modülü Boyutunun Belirlenmesi ve SSD Cache Performansının İzlenmesi
Bölüm 3: Test Sonuçları
Test Dosyası
Yatırım Zorlukları ve SSD Önbellek Çözümü
Yatırım Zorlukları
Büyük ölçekli projelerde yüksek bilgilendirme sistemi üretkenliği düşük gecikme süresi talep etmektedir ve I/O gecikmesinin gereksinimleri kritik-görev ticari uygulamalarının yürütülmesi esnasında en zorlayıcı pozisyonlarındadırlar. Her IT yayılım sistemi için en büyük zorluk düşük gecikme, yüksek verimlilik ve optimize edilmiş sistem kullanım oranı arasındaki dengeyi sağlamaktır.
Bir ip kamera depola sistemindeki I/O gecikmesinin derecesi iki faktör tarafından belirlenir: I/O iş yükünün yapısı ve depolama medyası kapasitesi. Ticari uygulamaların çoğu rastlantısal IOPS sistemini içerir ki burada veri girişi sistem diski üzerine bitişik olmayan bir şekilde yapılır. İhtiyaç duyulan veri bitleri birbirine fiziksel olarak yakın şekilde yerleştirilmediğinden, sistem çok sayıda arama işlemi üretir, böylelikle I/O gecikmesi artar.
Klasik olarak, rastlantısal IOPS iş yükünün sonucu olan yüksek I/O gecikmesinin üstesinden gelmek için kafa sayısını artırmak ve aynı disk üzerinde iki ardışık okuma ihtimalini azaltmak amacıyla gerekenden daha çok sayıda disk görevlendirilir, böylelikle erişim performansı yükseltilir. Bununla birlikte, aşırı görevlendirmenin muhtelif sakıncaları vardır, bunlara daha düşük verimlilik ve kapsamlı sistem kullanımı dahildir. Daha spesifik olarak, gereken disk sayısını artırmak ilişik sayısının artmasına, ihtiyaç duyulan alanın miktarının artmasına, çalışma ve soğutma için tüketilen enerjinin artmasına ve sonuçta daha yüksek bakım maliyetinin ortaya çıkmasına neden olur. Bunun da ötesinde, gereksiz kapasite eklenmesi kafaların toplamına ulaştıkça sistem-kullanım oranı azalabilir.
SSD Önbellek Çözümü
Solid State Drives (SSD)’ın süper rastlantısal giriş performansını güçlendirerek, SSD Önbellek teknolojisi yatırım zorlukları için bir çözüm sağlanır ki böylelikle çok sayıda disk ilavesi olmaksızın okuma ve yazma hızları artırılır.
Okuma operasyonları anlamında, istatiksel olarak verilen herhangi bir depolama sistemindeki verinin yalnızca küçük bir bölümünün sıklıkla girişi yapılır. Böylelikle toplam bakım maliyeti minimum düzeyde tutulurken, SSD Önbellek üzerinde sıklıkla girilen verinin depolanmasıyla bir tampon bellek okuması yaratılarak sistem performansı geliştirilebilir.
Küçük, rastlantısal yazma operasyonları da ticari iş yüklerinde oldukça yaygındırlar. Mükemmel rastlantısal girişler ile, SSD Önbellek okuma-yazma operasyonları iSCSI LUNs ve volüm performansını hızlandırabilir, rastlantısal yazma operasyonlarının gecikmesini azaltır ve diğer veri transferlerinin performansı üzerindeki etkiyi büyük ölçüde azaltır.
NAS Üzerindeki SSD Önbellek
Her bir SSD önbelleği bir depolama volümüne veya iSCSI LUN’a (blok-seviyesi) iliştirerek, SSD Önbelleğinde bir okuma ve yazma tampon belleği yaratılabilir ki bu NAS’ınızın sistem performansını büyük ölçüde geliştirir.
SSD Önbellek Nasıl Çalışır
Veri Operasyonları ve Hot Data
Tipik olarak, bir okuma talebi alındığında, ayırıcılar öncelikle ilgili verinin RAM olarak bilinen sistem hafıza önbelleği üzerinde bulunup, bulunmadığını kontrol ederler ki en son girişi yapılan bilgi burada depolanır. Eğer talep edilen veri mevcut değil ise, disk üzerindeki okuma işlemleri tetiklenecektir. RAM boyutu çalışan veri-setine kıyasla ciddi biçimde kısıtlandığında, en fazla bilgi bulma talepleri disklerden okuma ile sonuçlanır ve böylece gecikmede artış olur.
Şekil 2 RAM ve disklerden veri girişi
Pek çok uygulamalarda, uygulamanın tarzının belirli I/O özelliklerinden dolayı veri bulma ve iş yükünde gözle görülür kalıplar mevcuttur. Örneğin bir OLTP veri tabanı iş yükünde, veri tabanındaki bazı tablolar diğerlerinden daha sıklıkla okunur. En fazla sıklıkla girilen veri ‘’hot data’’ olarak adlandırılır.
Bu ‘’hot data’’ alt kümesinde en son girilen verinin sıklıkla girişi yapılan veri olma olasılığı daha yüksektir. Değerlendirmelerin çoğunda, ticari iş yükünde, en son girişi yapılan veri konuyla en çok ilgili olandır ve bu nedenle zamanında veri bulma ihtiyacı duyulur.
Şekil 3 Hot data, cold data ve uygun önbellek boyutu
Hot data bütün veri kümesinin en yoğun I/O talebine sahip küçük bir parçasıyken, az sayıdaki SSD’ler bütün hot datayı önbelleğe almak için kullanılabilir, böylece süper I/O kapasitesini sistem performansını önemli ölçüde artırmak için kullanır.
NAS Üzerindeki SSD Önbellek
Okuma önbelleği yalnızca bir SSD ile yaratılabilir. Eğer daha büyük okuma önbelleği veya okuma-yazma önbelleğine ihtiyaç duyulursa, aynı modelin iki SSD’si sunucunun içerisine kurulmak zorundadır. En iyi performansı sağlamak için SSD’ler aynı boyut, aynı marka ve aynı modelde olmalıdırlar. Yalnızca-okuma önbellekleri için SSD’ler RAID 0 kullanılarak yapılandırılmalıdırlar. Okuma-yazma önbellekleri için SSD’ler bir tanesinin arızalanabileceği göz önünde bulundurularak veri bütünlüğünü sağlamak amacıyla RAID 1 kullanılarak yapılandırılırlar.
Bir kez kurulduktan sonra, her bir SSD Önbellek sistemdeki her hangi bir volüme veya iSCSI LUN’a (blok seviyesi) iliştirilebilir. Eğer bir volümde SSD etkin halde ise, volüm üzerindeki iSCSI LUN da (dosya seviyesi) artan performanstan yararlanacaktır.
SSD Önbellek İle Veri Okuma ve Belleğe Alma
SSD Önbellek bir kez aktif edildikten sonra, disklerden talep edilen veri sürekli olarak kopyalanır ve SSD diskler üzerine depolanır. Kayıt yapılacak olan RAM sisteminde bir bellek haritası yaratılacaktır ki burada veri blokları SSD Önbellek üzerindedir. Bu nedenle SSD Önbellek boyutu ve sistem RAM boyutu orantılı olarak ilişkilidirler.
Şekil 4 Önbellekteki blokların bellek haritalaması
Eğer aynı veri için fazla talep üretilirse SSD üzerinde yürütülen okuma operasyonları ‘’önbellek vuruşları’’ olarak adlandırılır. Veri önbellekten alındıkça okuma performansı gelişir.
Şekil 5 Önbellekten ‘’önbellek vuruşu’’ olarak adlandırılan veri girişi
Diğer taraftan, SSD önbellek üzerinde bulunmayan veri için bir okuma talebi gönderildiğinde bu durum ‘’önbellek kaçışı’’ olarak adlandırılır. Önbellek kaçışı durumundan sonra bir disk okuma operasyonu tetiklenecektir ve talep edilen verinin bir kopyası gelecekteki taleplerdeki okuma hızını artırmak amacıyla SSD Önbellek üzerinde yapılmış olacaktır.
Şekil 6 Disklerden ‘’önbellek kaçışı’’ olarak adlandırılan veri
SSD Önbellek bütün veriyi blok-seviyesinde manipüle eder. Örneğin 4 GB’lik bir dosyadan 400 KB’lik bir veri parçası okunduğu zaman yalnızca bu 400 KB’lik verinin girişi yapılacaktır. Ayrıca, eğer bu 400 KB’lik veri mevcut değil ise, sistem bunu disklerden okuyacaktır ve SSD Önbellek üzerine kopyalayacaktır.
SSD Önbelleğe Veri Yazımı
Yazma operasyonlarını hızlandırmak amacıyla SSD Önbellek okuma-yazma önbelleğinde bir geri-yazma önbelleği yaklaşımı kullanır. NAS bir yazma talebi aldığında veriyi SSD önbellek blokları üzerinde depolar ve sonra uygulama sunucusundaki yazma operasyonuna bilgi verir.
SSD Önbellekten Veri Temizlenmesi ve Boşaltılması
SSD Önbellek bir kez dolduktan sonra, her hangi bir önbellek kaçışı boşaltma mekanizmasını tetikleyecektir, böylelikle ilgili veri için yer açmak amacıyla önbellekten bazı veriler kaldırılacaktır. SSD Önbellek veri-rotasyonu için ‘’En Uzun Zaman Önce Kullanma’’ (LRU) yer değiştirme algoritmasını kullanır.
LRU algoritması yalnızca veri girişi sıralanmasını göz önünde bulundurmaz, ayrıca son okunuşunu da göz önünde bulundurur. En uzun zaman önce girişi yapılan veri yeni eklentiler için ilk kaldırılan olacaktır. Daha sık girişi yapılan veri blokları (örneğin hot data) daha uzun süreler boyunca tutulacaktır ve önbellekte kalmalarından faydalanıldığı sürece bellek döngüsünde kalacaklardır.
İsabet Oranı, Isınma Periyodu ve Önbellek Boyutu
Okuma operasyonları için SSD Önbellek ‘’isabet oranı’’ önbellek vuruşlarının rasyosunu temsil eder, onun sayesinde veri talepleri SSD Önbellek tarafından gerçekleştirilir. Daha yüksek isabet oranı diskler üzerindeki daha az sayıda okuma oranını ve bu nedenle daha düşük I/O gecikmesini gösterir. Diğer taraftan, daha düşük isabet oranı okunan verinin çoğunun disklerden alındığını gösterir, buradaki yanıt süresi volümlerden okumaya benzer, SSD Önbelleğin yararı yoktur. SSD Önbelleğin isabet oranı arttıkça, yanıt süresi SSD disklerin I/O gecikme süresine yansıyacaktır, bu süre HDD disklerdekinden çok daha azdır.
Şekil 7 Isınma periyodu ve önbellek isabet oranı
SSD Önbellekteki bellek haritası başlangıçta boşken, hemen her veri okuma operasyonu bir önbellek kaçışına neden olacaktır. Bu arada verinin kopyaları SSD Önbelleğe sürekli olarak eklenecektir. Bu periyod ‘’ısınma periyodu’’ olarak anılır ve temelde kopyalama operasyonlarından oluşur. Ayrıca ısınma periyodu çalışan veri setinin şiddetli bir şekilde değişmesiyle de oluşur, öyle ki önbellekteki mevcut veri daha fazla talep edilmez. Yüksek bir önbellek isabet oranı SSD Önbelleğin tamamen değerlendirildiğini gösterir. Bu gösterge ısınma periyodu boyunca artacaktır.
Sistem isabet oranı iki faktöre bağlıdır: SSD Önbelleğin boyutu ve hot data boyutu. Daha yüksek isabet oranı için SSD Önbellek üzerinde daha fazla hot data depolanmasına ihtiyaç duyulur. Örneğin sıklıkla girişi yapılan 100 GB verili bir 2 TB dosya sunucusunda tavsiye edilen önbellek boyutu yaklaşık 100 GB’nin üzerinde olacaktır. Bununla birlikte hot data boyutu 100 GB iken, 500 GB’lik SSD Önbellek yapılandırılmasının faydası kısıtlı olacaktır.
Hızlandırma ve Maksimum Sistem Performansı
SSD Önbellek disk alt sistemlerinin performansını geliştirmek üzere dizayn edilmiştir. Tıkanıklığın eşit olduğu CPU kapasitesi, giden bağlantı bant genişliği ve diğer sistem kısıtlamaları konularında maksimum sistem performansını hızlandırmaz. Başka bir ifadeyle, eğer bir sistem en iyi pozisyonunda 100,000 IOPS’luk bir performans gösterebiliyorsa, SSD Cache kullanılsa bile IOPS performansı artmayacaktır.
Hızlandırılmış Protokoller ve Hızlandırılmamış İş Yükü
Veri bloklar halinde belleğe alınırken bütün dosya ve blok-seviyesi depolama servisleri SSD Önbellekten faydalanacaktır, bunlara CIFS, iSCSI ve diğerleri de dahildir. Ağırlıklı bir biçimde iş yükü kalıplarını yeniden-okuyan sanal uygulamalar, bulut bilişimi, OLTP veri tabanları, e-posta sunucuları ve dosya hizmetleri de SSD Ön belleğe alma sisteminden faydalanacaklardır. Önümüzdeki bölümde e-posta sunucularına dayalı bir iş yükü modelindeki test sonuçlarını karşılaştıracağız.
Belirli iş yükü modellerinde SSD Ön belleğe almanın faydaları çok kısıtlı olacaktır. Örneğin, büyük ardışık okuma veya yazma operasyonlarında (örneğin tek kanallı HD video akışı veya güvenlik kamerası video kaydı) veya tamamen rastlantısal veri okuma modellerinde (örneğin çalma listesi rastlantısal seçicisi olan büyük bir müzik arşivindeki müzik akışı hizmetleri) yeniden-okuma modeli olmadığından SSD Önbelleğe alma sisteminden faydalanmayacaklardır.
SSD Önbellek ve RAM Modülü Boyutunun Belirlenmesi ve SSD Önbellek Performansının İzlenmesi
Örneğin, günlük girilen dosya boyutu 200 GB ise, bütün hot data’nın yerleşebilmesini sağlamak için buna karşılık gelen SSD Önbellek boyutu 200-300 GB olmalıdır.
Bunlara ilaveten, SSD Önbellek verisini izlemek amacıyla RAM modülü içerisinde bir haritalama tablosu yaratılacaktır. Bu nedenle RAM boyutu SSD Önbellek boyutuyla orantılı olmak zorundadır. Intel-tabanlı NAS için, önyüklemesi yapılmış sistem belleğinin yalnızca 1/4’ü SSD önbellek için kullanılabilmektedir. SSD önbelleğin her 1 GB’si yaklaşık 4 MB sistem belleğine ihtiyaç duyar (artırılabilir bellek dahil).
Aşağıdaki tablo SSD Önbelleğe uygun RAM boyutu oranı hakkında bilgi vermektedir.
Tablo 1 Tavsiye edilen RAM/SSD Önbellek oranı (Intel-tabanlı NAS için)
Önbellek Boyutu | Bellek Boyutu |
64 Gb | 1 GB |
128 GB | 2 GB |
256 Gb | Önyüklemesi yapılmış 4 GB veya herhangi bir önyüklemesi yapılmış bellek + ilave 1 GB |
512 GB | Önyüklemesi yapılmış 8 GB veya herhangi bir önyüklemesi yapılmış bellek + ilave 2 GB |
Annapurna-tabanlı NAS için SSD önbelleğin her 1 GB’si için yaklaşık 400 KB’lik sistem belleğine ihtiyaç duyulur. Bununla birlikte, SSD önbelleklerin toplam boyutu 1 TB ile sınırlandırılmıştır.
Ayrıca dahili Performance Monitor cihazları kullanarak IOPS’u Windows ve VMware ortamında da ölçebilirsiniz. Daha fazla bilgi için lütfen ilgili blog gönderisine bakınız:
*Windows için IOPS nasıl ölçülür
http://blog.synology.com/blog/?p=2086
*VMware için IOPS nasıl ölçülür
http://blog.synology.com/blog/?p=2225
Test Sonuçları
Test Dosyası
Örneğin, gelen e-posta mesajlarını almak için veri yazma operasyonlarına gereksinim duyulacaktır ve mesajları okuyan kullanıcılar veri okuma operasyonlarına ihtiyaç duyacaklardır. Bu nedenle SSD Önbelleği etkin hale getirmenin performansı geliştirmesi beklenmektedir.
Kaynak: Synology