1. Ana Sayfa
  2. Horizon
  3. VMware Horizon – Blast Extreme Optimizasyonu

VMware Horizon – Blast Extreme Optimizasyonu

blast_extreme

Bu yazımda sizlere VMware Horizon yazılımının yeni ekran protokolü olan Blast Extreme hakkında bilgiler vereceğim.

VMware Blast Extreme Nedir?

VMware Blast Extreme, H.264 video sıkıştırma standardını kullanarak (H.265 desteği de artık mevcut) yoğun grafik kullanan sanal iş yükleri için geliştirilen, CPU tüketimini azaltan, decode işlemleri için GPU birimini kullanabilen Horizon görüntü protokolüdür.  Blast Extreme 2013 yılından beri var olsa da eski HTML5 Blast protokolünün mevcut yetenekleri üzerine inşa edilmiştir.

Blast Extreme Teknolojisi

Blast Extreme çoğu gerçek dünya senaryolarına uyumlu olsa da, bazı ağ koşullarına ve uygulamalara göre ek ayarlar ve optimizasyonlar gerektirebilir. Bu yazıda da aslında Blast Extreme’i, nasıl yapılandırıp optimize edebileceğimiz konusunda ayrıntılı bilgiler vereceğim.

Blast Extreme’i optimize etmek için iki temel bileşeni anlamak önemlidir; Transport (Aktarım) Protocol ve Display (Görüntü) Protocol

Aktarım Protokolü

Blast Extreme, istemciler ve Horizon altyapısı arasındaki ekran trafiğini taşımak için iki aktarım protokolünü destekler: TCP (Transmission Control Protocol) ve UDP (User Datagram Protocol).

  • Internet’teki en yaygın aktarım protokolü olan TCP, paketlerin hedeflenen hedefe hatasız ulaşmasını sağlamak için veri bütünlüğü denetimine sahiptir. Bu strateji paketlerin güvenle teslim edilip edilmediğine baksa da artı olarak ek iş yükü getirir.
  • UDP ise bu tür denetimleri kullanmaz ve bu nedenle video akışı, çevrimiçi oyun oynama gibi istemciye büyük miktarda veri göndermeniz gereken ancak zaman zaman yapılan hataları tolere edebilen uygulamalar için uygundur. Örneğin, video akışı bir an için donabilir veya kısa bir süre piksellenebilir.

Verimliliği ve performansı nedeniyle, Blast Extreme’in kullandığı varsayılan aktarım protokolü olan UDP iki istisna dışında değiştirilmemelidir. Aşağıdaki koşullar için VMware, UDP yerine TCP kullanmanızı önerir:

  • TCP tabanlı SSL VPN
  • Çok yüksek gecikme senaryoları (250ms ve üstü gecikme süresi)

Görüntü Protokolleri

Aktarım protokolünden sonra yapılandırılabilir ikinci bileşen, Blast Extreme tarafından aktarılan paketleri kodlama ve çözmek için kullandığı Codec ayarlarıdır. Blast Extreme üç adet (JPG/PNG, H.264 ve H265) Codec sistemini desteklemektedir:

JPG/PNG Codec

Adından da anlaşılacağı gibi, JPG/PNG Codec, JPG ve PNG, kodlamak ve ekran içeriği çözmek için yararlanır. Bu biçimler, ağ üzerinden aktarılmadan önce içeriğin, paket boyutunu azaltmak için sıkıştırma kullanır.

  • JPG codec “Lossy Compression Format” olarak adlandırılmaktadır.  Bu, özgün görüntü verilerinin bazılarının sıkıştırma işleminin bir parçası olarak atıldığı (kaybolduğu) anlamına gelir. JPG algoritması yalnızca gereksiz verileri kaldırmaya çalışırken, uygulamada diğer veriler de kaybolur. Bu nedenle, JPG kullanılarak sıkıştırılan görüntüler çözülemez ve sıkıştırmadan önce sahip oldukları kaliteye geri yüklenemez.
  • PNG codec ise “Lossless Format” olarak adlandırılır. Bu, yalnızca PNG kullanılarak kodlanmış ve sıkıştırılmış içeriğin orijinal içeriğin kalitesiyle eşleşecek şekilde geri yüklenebileceği anlamına gelir.

Birlikte kullanıldığında, JPG/PNG Codec, Microsoft Office de dahil olmak üzere tipik Windows ve Linux uygulamaları için idealdir. Özellikle ince ayrıntılarla karmaşık yazı tipleri ve diğer ekran içeriği, hareketsiz görüntüler, tasarım ve mühendislik uygulamaları tarafından kullanılan düşük etkili 3D modelleme de dahil olmak üzere kullanılabilir.

JPG/PNG, Lossless formatında kullanacak şekilde de yapılandırılabilir. Bu modda Codec, görüntü protokolünün kayıpsız olmasını gerektiren uygulamaları destekleyebilir ve iletimde hiçbir şeyin kaybolmamasını sağlar. Ancak, ağ üzerinden daha fazla görüntü bilgisi gönderildiğinden, oturum bant genişliği kullanımını artırdığını unutmayın.

H.264

JPG/PNG hareketsiz görüntü kalitesini sağlamak için ideal olsa da, bu özellik hızlı hareket eden ekran içeriğini ve video akışı gibi hareketli grafikleri verimli bir şekilde destekleme yeteneğini engeller. H.264, dünyada en yaygın kullanılan Codec’dir. Eğlence içeriğini desteklemek için özel olarak tasarlanmıştır ve Blu-ray filmleri kodlama kullanımı için bilinir. H.264, çoğu Windows, Linux ve macOS uygulaması için de iyi destek sağladığından, varsayılan Blast Extreme Codec seçeneğidir.

Ancak, diğer codec ile karşılaştırıldığında, H.264 kodlama ve kod çözme işlemlerini gerçekleştirmek için daha fazla işlem gücü gerektirir. Bu durumda da, işlemler işlemciden aygıttaki grafik kartlarına (GPU) yüklenebilir.

H.265

Üçüncü Blast Extreme Codec seçeneği ise H.265’dir. Yüksek Verimli Video Kodlama veya kısaca HEVC, H.265 olarak da bilinir ve H.264’ün endüstri halefidir. HEVC, H.264 ile aynı kalitede yüzde 50’ye kadar daha iyi sıkıştırma sağlar. HEVC’nin kullanılması, oturum bant genişliği verimliliğinde benzer bir iyileşmeye yol açar. HEVC ayrıca H.264 gibi benzer sıkıştırma oranlarında daha yüksek kalite sağlayabilir, ancak bu durum bant genişliği ve işlem gücü gerektirir . Bu nedenle Blast Extreme’teki HEVC, sanal masaüstü bilgisayarları destekleyen ESXi ana bilgisayarlarının ve RDSH sunucularının kodlamayı Offload etmesi için NVIDIA Tesla GPU’larına sahip olmasını gerektirir. HEVC tek başına CPU kodlama ile çalışmaz. HEVC ayrıca müşterilerin H.265 deşifre desteğine sahip grafik kartlarına sahip olmasını da gerektirir. H.254, H.264’te olduğu gibi, 2015’ten beri üretilen çoğu istemci cihazda da vardır.

Codec Seçenekleri

Blast Extreme, üç codec’e ek olarak, farklı kullanım durumlarını ve ağ koşullarını desteklemeye yardımcı olmak için kullanılabilecek çeşitli Codec seçeneklerini destekler.

H.264 with High Color Accuracy (HCA)

Kullanıcılar yalnızca H.264 ile bazı uygulamalarda kötü metin veya görüntü netliği yaşıyorsa, Blast Extreme Yüksek Renk Doğruluğu (HCA) kullanacak şekilde yapılandırılabilir. HCA 4:2:0 renk alt örneklemesi devre dışı bırakarak bunun yerine 4:4:4 örnekleme oranı sağlar. Bu, kodlayıcının Codec verimliliğini artırmak için bazıları bilgileri feda etmek yerine renkle ilgili tüm bilgileri koruduğu anlamına gelir.

Varsayılan olarak, Blast Extreme’teki H.264 4:2:0 örnek oranını kullanır ve HCA’nın 4:4:4’üne kıyasla görüntü rengiyle ilgili bilgilerin yalnızca dörtte birinin dahil edildiğini gösterir. 4:2:0 örneklem oranı, bazı uygulamaları (örneğin, CAD) veya bazı renk kombinasyonları kullanırken rengin yanı sıra metin veya görüntü bulanıklıklarına neden olabilir. Kullanıcılar bu sorunlardan herhangi birini yaşarsa, HCA’nın H.264’ün multimedya verimliliğini korurken kaliteyi artırması etkinleştirilebilir.

Not: HCA içeren bu ek renk bilgileri, oturum bant genişliği kullanımını ortalama yüzde 5 artırır. H.264’ün 4:4:4 GPU çözme si de birçok GPU tarafından desteklenmez. Bu, istemcinin CPU çözme ye başvurur ve bu da özellikle yüksek çözünürlüklü monitörler kullanırken zayıf istemci donanımında performansın düşmesine neden olabilir.

Encoder Switcher

Horizon 7.10’da yeni olan Encoder Switcher, ekran içeriği türüne bağlı olarak Blast Extreme’i JPG/PNG ve H.264 codec’leri arasında dinamik olarak geçiş yapacak şekilde yapılandırabilme yeteneğidir. Bu modda, tipik uygulama koşullarında Blast Extreme, metin ve hareketsiz görüntü kalitesi için optimize edilmiş VMware JPG/PNG codec’i kullanır. Ancak hızla değişen ekran içeriği algılandığında, Blast Extreme otomatik olarak multimedya için optimize edilmiş H.264’e geçer. Bu özellik yalnızca daha iyi bir kullanıcı deneyimi sağlamaz, aynı zamanda genel kodlama için gereken kaynakları azaltır. Bu, özellikle NVIDIA GPU’ları olmayan CPU kısıtlamalı ESXi ortamlarında daha yüksek ölçeklenebilirlik ve daha iyi performans sağlar.

Codec için İdeal Uygulamalar Neledir?

JPG/PNG: Microsoft Office gibi tipik uygulamaların yanı sıra ince ayrıntılar ve daha yüksek hareketsiz görüntü kalitesi için destek gerektiren uygulamalar.

PNG (Lossless): Tıbbi görüntüleme gibi orijinal ekran içeriğinin kayıpsız çoğaltılması gerektiren uygulamalar.

H.264: Hızla değişen içeriğe sahip video akışı, video oyunları ve  multimedya uygulamaları. (GPU Offload destekler.)

H.264 with HCA: H.264 yüksek renk kalitesi gerektiren uygulamalar. (GPU Offload destekler.)

HEVC: Daha az bant genişliği kullanımı ile H.264 ile aynı kalite gerektiren veya H.264 ile benzer bant genişliği kullanımı ile daha yüksek kalite gerektiren uygulamalar.

NVIDIA Encoded H.264: H.264 için ideal olan ve GPU kullanan uygulamalar (GPU gerektirir)

NVIDIA H.264 with HCA:  H.264 HCA için ideal olan ve GPU kullanan uygulamalar (GPU gerektirir)

Blast Extreme Nasıl Yapılandırılır?

Son Kullanıcı için;

Horizon Client yazılımı üzerinden kullanıcılar her bağlantı için Blast Extreme protokolünü aktif edebilir.

Ayrıca kullanıcılar Horizon Client yazılım üzerinden diğer Codec bileşenlerini de seçebilmektedir.

HCA ile NVIDIA’nın H.264 ve H.264 Offload ayarını etkinleştirmek için istemci ayarları gerekmez. Sistem yöneticisi tarafından devre dışı bırakılmadıkça, NVIDIA GPU’lu sanal masaüstü bilgisayarlar ve RDSH sunucular otomatik olarak NVIDIA H.264 kodlayıcısını kullanır.

Sistem Yöneticileri için;

Tüm codec seçenekleri ve Blast Extreme ayarları yöneticiler tarafından denetlenebilir. Ayarlar, Windows sanal masaüstü ve Microsoft RDSH sunucularının Windows Kayıt Defteri’nde yapılandırılır. Bu ayarların uygulanabileceği birkaç yol vardır.

En kolay yöntemlerden biri, VMware Horizon’un her sürümünde sağlanan Windows Grup İlkesi şablonunu kullanmaktır.

Bunun yanında Blast Extreme ayarlarını yapılandırmak için kayıt defteri değerlerini kullanabilirsiniz.  “HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Blast\Config” kayıt defteri konumunda aşağıdaki bilgiler ile değiştirebilir.

H.264 Codec: EncoderH264Enabled – H.264 desteği sağlar veya devre dışı kılabilir.

H.264 with HCA: EncoderH264YUV444 – H.264 için Yüksek Renk Doğruluğu desteği sağlar veya devre dışı kılabilir.

HEVC (H.265) Codec: EncoderHEVCEnabled – HEVC codec (H.265) için destek sağlar veya devre dışı kılabilir.

JPG/PNG Codec: EncoderAdaptiveEnabled – VMware JPG/PNG codec desteği sağlar veya devre dışı kılabilir.

PNG (Lossless): EncoderBuildToPNG – JPG/PNG codec için yapı-kayıpsız modu sağlar veya devre dışı kılabilir.

Encoder Switcher: EncoderSwitchEnabled – Ekran içeriğine bağlı olarak H.264 ile JPG/PNG arasında otomatik geçişi sağlar veya devre dışı kılabilir.

NVIDIA H.264 Offload: EncoderNvidiaH264Enabled – ESXi ana bilgisayarlarında yüklü olan NVIDIA GPU’larına H.264 kodlaması için Offload desteği sağlar veya devre dışı kılabilir.

NVIDIA H.265 Offload: EncoderNvidiaHEVCEnabled – ESXi ana bilgisayarlarında yüklü olan NVIDIA GPU’larına HEVC kodlaması için Offload desteği sağlar veya devre dışı kılabilir.

UDP: UdpEnabled – UDP aktarım protokolü için destek sağlar veya devre dışı kılabilir.

Audio: AudioEnabled – Ses desteğini etkinleştirir veya devre dışı kılabilir.

Yapılandırma Ayarlarını Nasıl Kontrol Ederiz?

Son kullanıcı kesintiye uğrayabilirse veya yapılandırma sınaması gerçekleştirebiliyorsanız, çalışan oturum yapılandırmasını görmenin en kolay yolu, VM’de yüklüyse Horizon Performance Tracker‘ı kullanmaktır. Horizon Performance Tracker, sanal masaüstü veya RDSH sunucusundaki Horizon Agent yüklemesi sırasında seçilebilen bir seçenektir.

Blast Extreme Protokolünü Optimize Etme

VM boyutlandırma ve optimizasyon: Blast Extreme protokolüne bakmadan önce, sanal masaüstü bilgisayarları, Microsoft RDSH sunucularını ve altyapıyı düzgün bir şekilde boyutlandırmak ve optimize etmek çok önemlidir. Müşterilerin kötü performans gösteren altyapıları gidermelerine yardımcı olurken, VMware Professional Services düzenli olarak sanal masaüstü bilgisayarların düzgün boyutlandırılmadığını ve dolayısıyla sanal CPU’lar gibi kritik kaynakların tükendiğini fark eder.

ESXi ana bilgisayar boyutlandırma ve kaynak tahsisi: Sık sık temel ESXi ana bilgisayarlarının aşırı kullanıldığını ve yüksek CPU kullanımı gibi kullanıcı deneyimini etkileyen sorunların net göstergeleri sergilediğini de sık sık keşfediyoruz. Bu nedenle, VM’lerin ve sanal altyapının düzgün boyutlandırılarak ve yeterli kaynaklara ve kullanılabilir kapasiteye sahip olduğunu doğrulayarak başlamak zorunludur.

Birden fazla monitör ve ekran boyutu ve çözünürlük: Göz önünde bulundurulması gereken bir diğer önemli yön ise kullanılacak monitörün (veya monitörlerin) boyutu ve ekran çözünürlükleridir. Daha yüksek ekran çözünürlüğüne sahip monitörler ve birden çok monitöre sahip servis taleplerini kullanmak, özellikle CPU ve ağ bant genişliği olmak üzere daha fazla sistem kaynağı gerektirir. Herhangi bir çözünürlükte ikiden fazla ekrana sahip kullanım servis taleplerini desteklemeniz gerekiyorsa, NVIDIA GPU’ları ESXi ana bilgisayarlarına yüklenmelidir.

İşletim sistemi optimizasyonu: En iyi duruma getirilecek sonraki bileşen Windows işletim sistemidir. Kullanacağınız sunucu ve masaüstü  işletim sisteminlerini optimize etmek için Vmware OS Optimization Tool yazılımını kullanabilirsiniz.

WAN (Wide Area Network) Kullanıcıları İçin Uygulanacak Optimizasyonlar

Yerel ağda bulunan kullanıcılar, iyi bir network hızında, ağ gecikmesi olmadan ve kullanılabilir yüksek bant genişliği ile ortamınızı gayet güzel kullanabileceklerdir. Yalnız yüksek gecikmeli paket gönderimi yapan, bant genişliği az ve ağ hızı son derece düşük kullanıcılar için neler yapabiliriz?

Hiçbir ekran protokolü WAN üzerinden LAN gibi bir deneyim sizlere sunmayacaktır. Bu bilinçle bizim sistem yapılandırmasında, uygulamalar ve kullanıcı deneyiminde bazı dengeleri belirlememiz gerekmektedir. Aşağıdaki optimizasyon önerileri WAN koşulları için geçerlidir. Bu optimizasyonlar hem CPU hem de bant genişliği kullanımını azaltmaya yöneliktir. Bant genişliği kullanımını azaltmak, tüm olumsuz ağ koşulları için en iyi çözümlerdendir.

  • Vmware Optmizasyon aracı ile sanal masaüstü bilgisayarları ve RDSH sunucularınızı optimize ediniz.
  • Kullanım örneği tarafından desteklenen en düşük ekran çözünürlüğüne sahip tek bir monitör kullanın. Bu, hem ağ bant genişliğini hem de CPU kullanımını azaltır. Uygulama iş yüküne bağlı olarak, 4K ekranlar 1080P olarak iki katından fazla kaynak kullanabilir.
  • Yukarıda da bahsettiğim gibi Encoder Switcher, ekran içeriğine göre en verimli codec’in dinamik olarak kullanılmasını sağlar
  • Kesinlikle gerekmedikçe istemci sürücü yönlendirmesi (USB, Client Redirection vb.) kullanmayınız.
  • Clipboard yönlendirmesini kullanımını azaltıp gerekirse kapatabiliriz.
  • Gerekmedikçe ses desteğini devre dışı bırakabilirsiniz.
  • Masaüstü duvar kağıdı kullanımını yasaklamak için Grup İlkesi’ni kullanın. Masaüstü duvar kağıdı gereksiz yere kodlamak ve aktarım için hem bant genişliği hem de  CPU kaynakları harcar. Görüntü veya desen olmadan düz bir renk kullanılması önerilir.
  • Adobe Flash’ın yaygın kullanımının desteklenmesi gerekiyorsa Adobe Flash Redirection özelliğini kullanınız.
  • YouTube gibi içerik desteklenmeleri gerekiyorsa HTML5 Multimedia Redrection özelliğini kullanınız.
  • Peki ya FPS? Kapsamlı testten sonra, FPS’nin sınırlandırılması , tipik uygulamalar ve kullanım örnekleri için bant genişliği veya CPU kullanımında azaltmalar sağlayacaktır

Görüntü, 3D Tasarım ve Yazı Tipi Kalitesini Artırmak Için Ek Optimizasyonlar

  • Kaliteli hareketsiz görüntüleri veya karmaşık yazı tiplerini desteklemek birincil kullanım amacınızsa ve video akışı gibi multimedya içeriğinin desteklenmesi gerekiyorsa JPG/PNG Codec bileşenini kullanın.
  • Ekranın kalite kaybı olmadan tıbbi görüntüleme gibi bir yazılım kullanacaksanız, Lossless modu etkinleştirin. Bunun bant genişliğini ve sanal masaüstü CPU kullanımını artırdığını unutmayın.
  • Ekran bulanıklığı, yazı tipi, görüntü netliği veya renk çoğaltma sorunları sergileyen bir H.264 tercih edilen kullanım örneğiniz varsa, H.264 için Yüksek Renk Doğruluğu (HCA) sistemini etkinleştirin.

Yüksek Kaliteli Multimedya ve Video için Ek Optimizasyonlar

  • NVIDIA GPU’larını kullanın. Bu kalibredeki kılıfları kullanmak, gerekli grafik özelliklerini sağlamak için donanım GPU’larını hemen hemen her zaman gerektirir. Not: NVIDIA GPU’lar h.264 ve HEVC kodlamasında Offload işlemini destekleyecektir.
  • Sanal masaüstü kaynaklarını artırın. NVIDIA donanım GPU’larında bile en zorlu kullanım durumlarını, özellikle video oyunlarını desteklemek için 8’den fazla sanal CPU gerekebilir.
  • HEVC codec’i kullanmayı düşünün. HEVC, H.264’ten daha az bant genişliği kullanımıyla daha yüksek kaliteli görüntülemeyi destekler.
  • FPS’i arttırın. Varsayılan olarak, Blast Extreme saniyede 30 kare (FPS) kullanılır. Yalnız kayıt defteri üzerinden bu rakam 60 FPS değerlerine çıkartılabilir.
  • RAM kullanımında nadiren darboğaz olmasına rağmen, uygulamalar tarafından kullanılan RAM değerlerini izleyin.

Bu yazımda sizlere Blast Extreme protokolünün ne olduğunu, içeriğini ve gerçek dünyada karşımıza gelen senaryolar için neler yapabileceğimizi anlatmaya çalıştım. Umarım sizler için faydalı olmuştur.

Yorum Yap

Yorum Yap