Aracılığıyla paylaş


IoT iş yükünüzde performans verimliliği

IoT çözümleri cihaz, uç ve bulut bileşenlerini içerir ve buluta bağlı milyonlarca küçük cihazdan birkaç güçlü sunucunun bulut bağlantısı için ağ geçitleri olduğu endüstriyel çözümlere kadar çeşitli çözümler içerir. Cihazların sayısı, fiziksel ve coğrafi konumları ve gönderdikleri veya aldıkları iletilerin sayısı, IoT iş yükünün performans verimliliğini tanımlayabilen faktörlerden bazılarıdır.

Performans verimliliği, IoT iş yükünün talepleri karşılamak için verimli bir şekilde ölçeklendirebilmesini de içerir. Bulutun avantajlarından biri, coğrafi kullanılabilirlik ve çok az uygulama kapalı kalma süresiyle veya hiç uygulama kapalı kalma süresi olmadan hizmetleri isteğe bağlı olarak ölçeklendirme olanağıdır.

Performans verimliliği, belirtilen koşullar altında kaynak kullanımına göre performansı temsil eder. Performans verimliliği, bir ürünün veya sistemin işlevlerini gerçekleştirirken aşağıdaki gereksinimleri ne kadar iyi karşıladığını ölçer:

  • Yanıt süreleri, işleme süreleri ve aktarım hızı hızları gibi zaman davranışı.

  • Kaynak kullanımı veya kullanılan kaynak miktarları ve türleri.

  • Kapasite veya maksimum sınırlar.

IoT iş yükünüzün performans verimliliğini değerlendirme

IoT iş yükünüzü Well-Architected Framework Performans Verimliliği sütununa ait lensler aracılığıyla değerlendirmek için Azure Well-Architected İncelemesi'nde IoT iş yüklerine yönelik performans verimliliği sorularını tamamlayın. Değerlendirme IoT çözümünüz için önemli performans verimliliği önerilerini belirledikten sonra, önerilerin uygulanmasına yardımcı olması için aşağıdaki içeriği kullanın.

Tasarım ilkeleri

Mimari mükemmelliği temel alan beş yapı , IoT iş yükü tasarım metodolojisini temel alır. Bu sütunlar, temel IoT tasarım alanlarındaki sonraki tasarım kararları için pusula görevi görür. Aşağıdaki tasarım ilkeleri, Azure Well-Architected Framework - Performans Verimliliği'nin kalite sütununu genişletir.

Tasarım ilkesi Dikkat edilmesi gerekenler
Yatay ölçeklendirme için tasarlama IoT çözümü birkaç yüz cihaz veya iletiyle başlayabilir ve dakikada milyonlarca cihaz ve iletiye kadar büyüyebilir. Bulut hizmetlerini kolayca yük artışına ölçeklendirin, ancak ioT cihazları ve ağ geçitleri için durum daha karmaşık olabilir. IoT cihazları çözüm sonlandırılmadan önce tasarlanabilir veya dağıtılabilir. Endüstriyel IoT veya benzer sektörler, cihaz ömrünü onlarca yıl içinde ölçebilir. Cihazları değiştirerek kapasitenin güncelleştirilmesi maliyetlidir. Bu senaryolarda önceden planlama yapmak özellikle önemlidir.
Performans testinde sola kaydırma Sorunları erken yakalamak için erken test edin ve sık sık test edin. Farklı özelliklere, hıza ve iletişim güvenilirliğine sahip coğrafi olarak farklı konumlarda algılayıcılara, cihazlara ve ağ geçitlerine sahip olmanın karmaşıklığının farkında olun. Testinizde bu karmaşıklığı planlayın ve ağ bağlantısının kesilmesi gibi hata senaryolarını test edin. IoT çözümünüzdeki tüm cihaz, uç ve bulut bileşenlerinin stres ve yük testini yapın.
Üretim performansı için sürekli izleme Birden çok coğrafi bölgede farklı cihaz türlerini izlemek için dağıtılmış bir izleme çözümü kullanın. İzlenen ve buluta gönderilen bilgi miktarını bellek ve performans maliyetleriyle dengeleyin. Tanılama senaryoları için iletimi ayarlayın ve birden çok düzeyde ve katmanda izleyin. Endüstriyel veya ağ geçidi özellikli çözümler için ağ geçidi ölçümlerini kullanıma sunma.

IoT mimari katmanları

Performans verimliliği tasarım ilkeleri, IoT iş yükünüzün temel IoT mimarisi katmanlarındaki gereksinimleri karşıladığından emin olmak için dikkat edilmesi gereken noktaların netleştirilmesine yardımcı olur. Aşağıdaki bölümlerde performans verimliliği sütununa yönelik katman özellikleri ele alınıyor.

IoT mimarisindeki katmanları ve çapraz kesme etkinliklerini gösteren diyagram.

Cihaz ve ağ geçidi katmanı

IoT cihazı, bir IoT çözümüne bağlanan ve veri toplayan, aktarabilen veya alabilen bir bilgi işlem cihazıdır. Ağ geçitleri, cihazlar ve bulut arasındaki veya IoT ile diğer bileşenler arasındaki bağlantı noktalarıdır.

Donanım özelliklerini iyileştirme

Donanımı yükseltmek veya değiştirmek maliyetlidir ve zaman alır. IoT cihazlarını gerekli kapasite ve işlevsellik için önceden boyutlandır.

Donanım özelliklerini iyileştirmek için:

  • Belirli donanımlarda yoğun işlem ve giriş çıkışlı görevler çalıştırın. Örneğin, makine öğrenmesi (ML) algoritmalarını yerel grafik işleme birimlerinde (GPU) çalıştırın.

  • Embedded C ve Rust Embedded gibi verimli dilleri ve çerçeveleri kullanarak mevcut donanım özelliklerini iyileştirin. Kısıtlanmış cihazlar için geliştirme yaparken veya güvenlik ve iletişim yığınının çoğu cihazda zaten kullanılabilir olduğunda Azure IoT Embedded C SDK'sını kullanabilirsiniz.

  • Bulut ağ geçidine bağlanmak için ihtiyacınız olan her şey için C için Azure IoT cihaz SDK'sını kullanın. Azure IoT Cihazı yazılım geliştirme setleri (SDK'lar) dayanıklı bir bağlantı için gereken ileti çevirisini, hata işlemeyi ve yeniden deneme mekanizmalarını yönetir.

Ölçeklendirme, cihaz ve ağ geçidi katmanı için önemlidir. Bu katmanı ölçeklendirmek için:

  • Ağ geçitlerini ölçek birimi olarak kullanın. Çözümünüz zaman içinde IoT cihazları veya varlıkları (örneğin OPC UA sunucuları) ekliyorsa, bu sunuculardan veri almak için daha fazla uç ağ geçidi kullanın.

  • Bulut ağ geçitleri ve bulut hizmetleri dahil olmak üzere tüm yukarı akış katmanları için ölçek değerlendirmesi gerçekleştirin. Bir IoT çözümü için ölçek birimi olarak birden çok IoT hub'ı kullanma hakkında daha fazla bilgi edinmek için bkz. IoT hub'ları arasında cihaz sağlama.

İş yüklerini uçta çalıştırma

Ağ aktarım hızı veya gecikme süresi gibi sistem kısıtlamalarına bağlı olarak, uçta bazı iş yüklerini çalıştırmayı göz önünde bulundurun. İş yüklerini zaman kısıtlaması ile gerekli gecikme süresi ve yanıt sürelerine göre ayırın. Düşük gecikme süresi ve aralıklı bağlı senaryolar için yerel işlemi kullanın. Büyük ölçekli iş yüklerini bulutta çalıştırma.

Uçta, farklı veri akışlarını gerekli sırada göndermek için öncelik kuyruklarını kullanın. Öncelik kuyruklarında iletiler öncelik sırasına göre gönderilir, ancak Azure IoT Hub yine de iletileri alındı siparişine göre günlüğe kaydeder.

Cihaz bağlantısını iyileştirme

Cihaz bağlantısını iyileştirmek için aşağıdaki noktaları göz önünde bulundurun:

  • Cihazlarınızda en düşük gecikme süresine sahip IoT Hub'larını kullanın. Cihazların farklı coğrafi konumlardan bağlanması gerektiğinde birden çok bölgede IoT Hub'lara ihtiyacınız olabilir.

  • Bağlantıları ayarlama yükünü en aza indirmek için cihazlar ve IoT çözümü arasındaki çift yönlü iletişimler için durum bilgisi olan açık bir bağlantı kullanın.

  • Tüm cihazları, örneğin bölgesel bir güç kesintisi sonrasında aynı anda bağlamayın. Yeniden denerken oluşan değişimle kesilmiş üstel geri alma kullanın.

Çevrimdışı senaryoları iyileştirme

Cihazlara bulut bağlantısı olmadan çalışmak ve verileri yerel olarak depolamak için yeterli bilgi ve bağlam sağlayabilirsiniz, böylece bağlantı kesilmelerinden ve yeniden başlatmalardan kurtarılabilirler. Aşağıdaki stratejiler çevrimdışı işlemleri destekler:

  • Günlükler ve önbelleğe alınan telemetri verileri önceliğe göre dahil olmak üzere cihaz bağlı olmadığında cihazın verileri yerel olarak depolayabilmesini sağlayın.

  • Süresi dolan verilerin otomatik olarak kaldırılması için veriler üzerinde yaşam süresi (TTL) ayarlayın.

  • Cihaz bağlı olmadığında daha az önemli verileri atarak gerekli yerel depolama alanını azaltın ve cihaz yeniden bağlandığında eşitleme süresini azaltın.

  • Uç cihaz depolama alanı kapasiteye ulaşırsa, ilk gelen son çıkış (FIFO), son ilk çıkış (LIFO) veya öncelik tabanlı gibi bir önbellek çıkarma stratejisi kullanın.

  • Cihaz çalışma zamanının veya uygulamanın depolama alanı az olduğunda çalışmaya devam edebilmesi için verileri depolamak için ayrı bir disk veya disk denetleyicisi kullanmayı göz önünde bulundurun.

Cihazlar şu anda bulut ağ geçidine bağlı olmasa bile durum bilgilerini cihazlarla bulut arasında zaman uyumsuz olarak eşitlemek için cihaz ikizlerini ve modül ikizlerini kullanın. Cihaz ve modül ikizleri herhangi bir geçmiş veya kaldırılmış bilgi değil, yalnızca belirli bir noktadaki geçerli durumu içerir.

Alım ve iletişim katmanı

Veri alımı ve iletişim katmanı, cihazlardan IoT çözümüne veri gönderir. Cihazlar ve IoT çözümü arasındaki iletişim desenleri şunlardır:

  • Cihazdan buluta iletiler.
  • Buluttan cihaza iletiler.
  • Dosya yüklemeleri.
  • Cihaz ikizleri.
  • Doğrudan yöntemler.

Mesajlaşma verimliliğini iyileştirme

Cihazdan buluta iletilerin sayısı ve boyutu, IoT çözümü performans verimliliği için önemli bir parametredir. IoT Hub ve Azure IoT Central gibi Azure IoT hizmetleri katman başına hem çözüm performansını hem de maliyeti etkileyen ileti sınırlarını tanımlar.

Aşağıdaki mesajlaşma önerilerini göz önünde bulundurun:

  • IoT Hub ve IoT Central, günlük kota ileti sayılarını 4 KB'lık ileti boyutuna göre hesaplar. Daha küçük iletiler göndermek, kapasitenin bir kısmının kullanılmamış durumda olduğunu gösterir. Genel olarak, 4 KB sınırına yakın ileti boyutlarını kullanın. Toplam ileti sayısını azaltmak için daha küçük cihazdan buluta iletileri daha büyük iletiler halinde gruplandırın, ancak iletileri birleştirirken ortaya konan gecikme süresini göz önünde bulundurun.

  • Geveveleme iletişimden kaçının. Cihazdan cihaza veya modülden modüle uç iletişimi için çok sayıda küçük ileti gönderen etkileşimler tasarlamayın.

  • Buluta birden çok telemetri iletisi göndermek üzere Gelişmiş Message Queuing Protokolü (AMQP) için yerleşik Azure IoT Edge SDK ileti toplu işlemini kullanın.

  • Aşağı akış cihazında birden çok küçük iletiyi birleştirerek ve uç ağ geçidine daha büyük iletiler göndererek uygulama düzeyinde toplu işlemi kullanın. Bu toplu işlem, ileti ek yükünü sınırlar ve yerel uç disk depolama alanına yazma işlemlerini azaltır.

  • SDK istemcisi başına İletim Denetimi Protokolü (TCP) bağlantı sınırlarına bağımlılığı azaltmak için AMQP bağlantı katlama özelliğini kullanın. AMQP bağlantısı çoğullama ile birden çok cihaz IoT Hub için tek bir TCP bağlantısı kullanabilir.

  • Kullanıcı tarafından belirtilen zaman aşımının ardından hemen başarılı veya başarısız olabilecek istek-yanıt etkileşimleri için doğrudan yöntemleri kullanın. Bu yaklaşım, cihazın yanıt verip vermediğine bağlı olarak eylem seyrinin farklı olduğu senaryolar için yararlıdır.

  • Meta veriler ve yapılandırmalar dahil olmak üzere cihaz durumu bilgileri için cihaz ikizlerini kullanın. IoT Hub, bağladığınız her cihaz için bir cihaz ikizi tutar.

Mesajlaşma kotalarını ve azaltmayı anlama

IoT Hub katmanı, birim başına bulut ağ geçidi sınırlarını ayarlar. Mesajlaşma kotası , katman için sürekli aktarım hızını ve sürekli gönderme oranlarını tanımlar. IoT Hub, ani artışları veya aşırı yüklemeleri dayanıklı bir şekilde işlemek için kısa süreler için bu kotaların üzerindeki yükleri işleyebilir.

Bir diğer önemli sınır ise saatlik veya günlük hizmet yükü veya kısıtlama sınırıdır. Kısıtlama sınırları, bir IoT hub'ına çok uzun süre fazla yük yüklenmesini engeller.

Aşağıdaki diyagramlarda yük, kota ve kısıtlama sınırları arasındaki ilişki gösterilmektedir. Sol diyagramda, IoT Hub IoT Hub katmanı için kota düzeyine kadar sürekli veya sabit yüksek yükü işleyebildiği gösterilmektedir. Sağ diyagramda, azaltma sınırına ulaşmadığı ve ortalama olarak IoT Hub katmanı kotasının üzerinde olmadığı sürece IoT Hub zaman içinde değişen yükü işleyebileceğini gösterir.

Kotanın sürekli altında yüksek yük gösteren sol diyagram. Zaman zaman ani artışlarla daha düşük yük gösteren doğru diyagramla karşılaştırıldığında.

İleti işlemeyi iyileştirme

Bir cihazdan veya ağ geçidinden gelen iletilerin depolamadan önce çevrilmesi, işlenmesi veya daha fazla bilgiyle zenginleştirilmesi gerekebilir. Bu adım zaman alıcı olabilir, bu nedenle performans üzerindeki etkiyi değerlendirmek önemlidir. Veri aktarımını iyileştirmek için sıkıştırma kullanma ve iletilerin şifresini çözmede bulut işlemeyi önleme gibi bazı öneriler çakışıyor. Bu önerilerin diğer mimari yapılara ve çözüm gereksinimlerine göre dengelenip değerlendirilmesi gerekir.

Bulut veri işleme performansını iyileştirmek için:

  • Buluta veri göndermek için kullanılan veri biçimini iyileştirin. Bant genişliğinin performansını (ve maliyetini) ve performans geliştirmesini daha az bulut verisi işleme gereksinimiyle karşılaştırın. Cihaz iletilerine bağlam eklemek için IoT Hub ileti zenginleştirmesini kullanmayı göz önünde bulundurun.

  • İşlenmemiş verileri depolamak ve verileri almak için karmaşık sorgular gerektirmek yerine alınan veriler geldiğinde zaman açısından kritik olay işleme gerçekleştirin. Zaman açısından kritik olay işleme için geç varış ve pencerelemenin etkilerini göz önünde bulundurun. Kullanım örneğine bağlı olarak değerlendirme, örneğin kritik alarm işleme ve ileti zenginleştirme.

  • Çözüm gereksinimlerine göre doğru IoT Hub katmanını (Temel veya Standart) seçin. Temel katmanın desteklemediği özelliklere dikkat edin.

  • Doğru IoT Hub katman boyutunu, 1, 2 veya 3'i ve veri aktarım hızına, kotalara ve işlem azaltmalarına göre örnek sayısını seçin. IoT Central için, cihazlardan buluta gönderilen ileti sayısına göre doğru katmanı seçin: Standart 0, Standart 1 veya Standart 2.

  • Yayımlama-abone olma olay yönlendirmesi için Azure Event Grid kullanmayı göz önünde bulundurun. Daha fazla bilgi için bkz. Eylemleri tetikleme amacıyla Event Grid kullanarak olayları IoT Hub React ve IoT Hub için ileti yönlendirmesini ve Event Grid'i karşılaştırma.

Verilere öncelik ver

Cihazların buluta gönderdiği bazı veriler diğer verilerden daha önemli olabilir. Verileri önceliğe göre sınıflandırmak ve işlemek performans verimliliği için iyi bir uygulamadır.

Örneğin, bir termostat sensörü sıcaklık, nem ve diğer telemetri verilerini gönderir, ancak sıcaklık tanımlı bir aralığın dışında olduğunda da bir alarm gönderir. Sistem alarm iletisini daha yüksek öncelik olarak sınıflandırır ve sıcaklık telemetrisinden farklı işler.

Veri sınıflandırma ve işleme için aşağıdaki önerileri göz önünde bulundurun:

  • IoT Hub gönderirken önemli verilere öncelik verildiğinden emin olmak için IoT Edge öncelik kuyruklarını kullanın. IoT Edge, bağlantı olmadığında iletileri arabelleğe alır, ancak bağlantı geri yüklendikten sonra, arabelleğe alınan tüm iletileri önce öncelik sırasına, ardından yeni iletilere gönderir.

  • Kullanım örneğine bağlı olarak farklı veri öncelikleri için yolları ayırmak için IoT Hub ileti yönlendirmeyi kullanın. IoT Hub ileti yönlendirmesi biraz gecikmeye neden olur.

  • Düşük öncelikli verileri daha uzun aralıklarla veya toplu veya dosya yüklemeleri kullanarak kaydedin ve gönderin. Karşıya yüklenen dosyalarda kötü amaçlı yazılım algılama gecikme süresini artırır.

  • İletileri zaman kısıtlamalarına göre ayırın. Örneğin, zaman kısıtlaması olduğunda doğrudan IoT Hub ileti gönderin ve zaman kısıtlaması yoksa Azure Data Factory gibi IoT Hub veya toplu veri aktarımı yoluyla dosya yüklemeden yararlanın. Dosya yükleme için IoT Edge blob modülünü kullanabilirsiniz.

Cihaz yönetimi ve modelleme katmanı

Farklı cihaz türleri bir IoT çözümüne bağlanabilir ve bir IoT çözümü aynı anda birçok cihaza ve ağ geçidine bağlanabilir. IoT çözümü, cihazları ve ağ geçitlerini bağlamanın ve yapılandırmanın yanı sıra, cihazların ve ağ geçitlerinin yakalayıp almalarını sağlayan verileri anlamalı ve bu verileri aktarmalı ve bağlamsallaştırmalıdır.

IoT bileşenleri farklı protokoller, bağlantı, veri alma sıklıkları ve iletişim desenleri kullanabilir. IoT çözümünün hangi cihazların ve ağ geçitlerinin bağlı olduğunu ve nasıl yapılandırıldığını yönetebilmesi gerekir.

Performans verimliliği için cihazları ve yapılandırmaları yönetmek için:

  • Cihaz ve ileti yüküne göre boyutlandırmayı iyileştirin.

  • Katmana ve birim sayısına bağlı olarak bulut ağ geçidinin işleyebileceği ileti sayısını öğrenin.

  • Veri dağıtımı, mevsimsellik ve ani artış nedeniyle sürekli aktarım hızındaki anomalileri hesaplayın.

  • IoT çözümünün milyonlarca cihazı yönetmesi gerektiğinde birden çok bulut ağ geçidi kullanın. IoT hub'larına cihaz atamak için DPS'yi kullanın.

DPS ile cihaz sağlama

Sağlama sırasında, IoT Hub bağlantısı artık kullanılamadığında veya cihazın yeniden başlatılması sırasında IoT hub'ına bağlantı kurmak için DPS kullanın.

  • Sağlamanın ağırlığını kullanım örneğine göre ayarlamak için DPS eşit ağırlıklı dağıtım ilkesini kullanın. Daha fazla bilgi için bkz . Ayırma ilkesi cihazları IoT Hubs'a nasıl atar?

  • DPS yükünü ve kotasını dengelemek için ioT çözümüne dağıtılmış veya daha küçük toplu işlemler halinde cihaz sağlamayı göz önünde bulundurun. Toplu işlerde ekleme yaparken toplu işleri ve genel geçiş zaman çizelgesini planlayın. Gecikme süresi ve yeniden denemeler de dahil olmak üzere işlem sayısı, cihaz kayıtları ve dakikada en fazla bağlantı sayısı için DPS sınırlarını hesaplayın.

  • Gecikme süresine bağlı olarak farklı bölgelerdeki IoT Hub'larına cihaz ayırmak için DPS kullanın.

  • DPS yeniden bağlanma işlemlerini azaltmak için DPS bağlantı dizesi için bir önbelleğe alma stratejisi kullanın.

Aşağı akış cihazlarını yönetme

Bir IoT çözümü, site veya konum başına birden çok ağ geçidi veya uç cihazına ve bu ağ geçitlerinden veya uç cihazlarından herhangi birine bağlanabilen aşağı akış cihazlarına sahipse yatay olarak ölçeklenebilir.

  • Aşağı akış cihazlarının sayısı, iletilerin ve ileti boyutlarının zaman içinde değişmesi ve protokollerinin veya iletilerinin çevrilmesi gerektiğinde çeviri modunda birden çok ağ geçidi ve uç cihazı kullanın. Çeviri modundaki ağ geçitleri ve uç cihazlar, protokolleri veya iletileri aşağı akış cihazlarına veya cihazlardan çevirebilir, ancak aşağı akış cihazının bağlı olduğu ağ geçidini bulmak için bir eşleme gerekir. Çeviri modunu kullandığınızda ağ geçidinde veya uç cihazda ek ileti çevirisi ve arabelleğe alma yükü için hesap oluşturma.

  • Birden çok ağ geçidini ve uç cihazı , site veya konum başına zaman içinde değişen aşağı akış İleti Kuyruğu Telemetri Aktarımı (MQTT) veya AMQP cihazlarına bağlanmak için saydam modda kullanın. Saydam modda ağ geçitleri ve uç cihazlar, çift yönlü iletişim için MQTT/AMQP cihazlarını bağlayabilir. Saydam modu kullandığınızda ağ geçidinde veya uç cihazda ek ileti arabelleği, depolama ve yapılandırma ek yükünü hesaplayın.

Aktarım katmanı

Aktarım katmanı, bir cihazla IoT çözümü arasındaki bağlantıları işler ve IoT iletilerini ağ paketlerine dönüştürür ve fiziksel ağ üzerinden gönderir. IoT çözümleri genellikle AMQP ve MQTT bağlantı protokollerini kullanır.

Kaynak kullanımını iyileştirme

Bir cihazla bulut arasındaki bağlantının güvenli, güvenilir ve hedeflenen cihaz ve ileti sayısını işlemek için ölçeklenebilir olması gerekir.

  • Cihazdan bulut ağ geçidine durum bilgisi olan açık bir bağlantı kullanın. IoT Hub, MQTT, AMQP veya WebSocket protokollerini kullanarak milyonlarca açık durum bilgisi olan bağlantıyı yönetmek için iyileştirilmiştir. Güvenlik el sıkışması, kimlik doğrulaması ve yetkilendirme ek yükünü en aza indirmek için cihazlarla açık bağlantıları koruyun. Bu uygulama performansı artırır ve gerekli bant genişliğini büyük ölçüde azaltır.

  • Bulut ağ geçidinin gerektirdiği açık bağlantı sayısını en aza indirmek için tek bir bağlantıda birden çok kanalın birden çok kez kullanılmasını destekleyen bir AMQP protokolü kullanın. Saydam ağ geçidi, çoğullama kullanarak tek bir bağlantı üzerinden kendi kanallarını kullanarak birden çok yaprak cihazı bağlayabilir.

  • Cihazlarla bulut arasında zaman uyumsuz olarak durum bilgileri alışverişi yapmak için cihaz ve modül ikizleri bulut ağ geçidi desenlerini kullanın.

  • Bir cihaz başka bir bulut ağ geçidine bağlandığında cihaz durumunu taşımak için DPS'yi yapılandırın.

Veri iletişimlerini iyileştirme

Cihazın bulut iletilerine sayısı ve boyutu performansı ve maliyeti etkiler. Veri iletişimini değerlendirmek, IoT iş yükünüzün performans verimliliği açısından önemlidir.

  • Buluta veri göndermek için geniş bant genişliği kullanmayan verimli bir veri biçimi ve kodlama kullanın. Düşük bant genişliğine sahip ağlar için sıkıştırılmış veya ikili biçim kullanmayı göz önünde bulundurun, ancak buluttaki verileri sıkıştırmanın veya dönüştürmenin ek yükünü anlayın.

  • Yüksek hacimli verileri yerel olarak depolamayı ve saatlik veya günlük olarak karşıya yüklemeyi göz önünde bulundurun.

  • Toplam sayıyı azaltmak için birçok küçük cihazdan buluta iletiyi daha az büyük ileti halinde gruplandırın. Ancak, yalnızca büyük iletiler göndermeyin, aynı zamanda ortalama ileti boyutu ile aktarım hızı arasında denge sağlayın.

Depolama katmanı

IoT çözümünde toplanan ve başvuruda bulunan farklı veri türleri genellikle cihazlarda, ağ geçitlerinde ve bulutta farklı senaryolar için özelleştirilmiş ve iyileştirilmiş depolama türleri gerektirir. Küresel veya yerel olarak birden çok coğrafi bölgede bulunması gereken ve bazı durumlarda gecikme süresini iyileştirmek için çoğaltılan veriler IoT depolama karmaşıklığını artırır.

  • Zaman damgaları ve değerler içeren zaman serisi verilerini depolamak için bir zaman serisi veritabanı kullanın. CustomerID, RoomID veya kullanım örneğine özgü diğer sütunlar gibi filtreleme sütunlarıyla zaman serisi veri telemetrisini zenginleştirin.

  • Verileri önbelleğe almak veya bağlantısı kesildiğinde verileri tutmak için cihaz ve ağ geçidi depolamayı kullanın. Gerekli depolama alanı için hesap oluşturun. Tüm verileri saklamayın, ancak altörnekleme kullanın, yalnızca toplamları depolayın veya verileri sınırlı süreler için depolayın.

  • Veri alımını ve olay işleme depolamasını raporlama ve tümleştirme depolama gereksinimlerinden ayırmayı göz önünde bulundurun.

  • Gerekli aktarım hızı, boyut, saklama süresi, veri hacmi, CRUD gereksinimleri ve bölgesel çoğaltma gereksinimine uyan veri depolama türünü kullanın. Bazı örnekler Azure Data Lake Storage, Azure Veri Gezgini, Azure SQL ve Azure Cosmos DB'dir.

Olay işleme ve analiz katmanı

Cihazların oluşturduğu verileri IoT çözümüne veya IoT çözümüne göndermeden önce işleyebilirsiniz. Veri işleme çeviri, bağlamsallaştırma, filtreleme ve yönlendirme ya da eğilim analizi veya anomali algılama gibi daha gelişmiş analizler içerebilir.

Uç ve bulut işlemeyi iyileştirme

Yerel işlemi kullanarak gerçek zamanlı ve gerçek zamanlıya yakın iş yüklerini veya zaman kısıtlamalarıyla küçük, iyileştirilmiş, düşük gecikme süreli işlemeyi cihazlarda veya uçta çalıştırın. Bulutta daha büyük iş yükleri veya dış veri veya işlem bağımlılıkları ekleyen diğer iş yüklerini çalıştırın.

Örneğin, bir video akışındaki kişileri saymak için uçta bir makine öğrenmesi algoritması çalıştırın ve sayıyı içeren bir olayı buluta gönderin. Farklı fabrikalar arasındaki eğilimleri karşılaştırmak için bulutu kullanın.

Stream Analytics Edge modülünü kullanarak uçta analiz iş yüklerini çalıştırın. Örneğin, uçta anomali algılamayı çalıştırabilir ve algılanan anomaliyle buluta gönderilen olayları etiketleyebilirsiniz. Uçta analiz çalıştırdığınızda ek gecikme süresi, geç varış ve pencere etkisine dikkat edin.

Birçok bağlı aşağı akış cihazına sahip uç iş yükünün yükünün farkında olun. Aralıklı bulut bağlantısı varsa kenar düğümü tüm iletileri iletmeli veya işlemeli ve tüm verileri önbelleğe almayı işlemelidir. Uç düğümü başına planlanan en fazla aşağı akış cihazı ve iletisiyle test ederek çözümünüz üzerindeki performans etkisini doğrulayın. İleti çevirisinin veya zenginleştirmenin uçta, IoT Hub veya bulut olay işlemesinde sahip olabileceği performans etkisini unutmayın.

Tek tek iş yüklerini kategorilere ayırma

İş yüklerini zaman kısıtlaması ve gerekli gecikme süresi ve yanıt sürelerine göre ayırın; örneğin saniyeler içinde yanıtla saatte toplu iş arasında. Yonga üzerindeki hibrit donanım sistemleri (SoC'ler), cihaz düzeyinde iş yüklerini destekleyebilir.

Uçta, farklı önceliklere ve TTL'ye sahip farklı veri akışlarını ayırmak için öncelik kuyruklarını kullanın. Örneğin, alarmlar her zaman önce gönderilmelidir, ancak telemetriden daha düşük bir TTL'ye sahip olmalıdır.

Bulutta, farklı veri akışlarını ayırmak ve alarmları telemetriden farklı bir şekilde işlemek ve ölçeklendirmek için Azure Event Hubs üzerinde tüketici gruplarını kullanabilirsiniz. Ayrıca IoT Hub yolları kullanarak farklı veri akışlarını filtreleyebilir ve uç noktaları ayırabilirsiniz. IoT Hub ileti yönlendirmesi biraz gecikmeye neden olur. Buluttaki arka baskıya karşı koruma sağlarken iş yüklerini dağıtmak için Event Hubs, Azure Event Grid veya Azure Service Bus kullanın.

Aşırı karmaşık IoT Hub yönlendirme kuralları aktarım hızını etkileyebilir, özellikle de her iletinin seri durumdan çıkarılması ve taranması gereken ileti gövdesi JSON filtreleri ile yönlendirme kuralları.

Yüksek hacimli bulut verilerini işleme

Yüksek hacimli bulut verileri için performans verimliliğini iyileştirmek için:

  • yüksek performanslı aktarım hızı için zaten iyileştirilmiş Azure Data Lake Storage ve Azure Veri Gezgini gibi IoT Hub ve veri hedefleri arasında kullanıma hazır hizmet tümleştirmesini kullanın.

  • Dahil edilen olay işlemcisine sahip bir IoT hub'ından özel alım geliştirmek için Event Hubs SDK'sını kullanın. Olay işlemcisi cihazları ve konakları yeniden dengeleyebilir.

  • Aynı anda veri okuyucu sayısı ve gerekli aktarım hızı için doğru sayıda IoT Hub bölümü ve tüketici grubu kullanın.

  • Veri alımı ve olay işleme için gereken depolama alanını raporlama ve tümleştirme için gereken depolama alanından ayırın.

  • Gerekli aktarım hızına, boyuta, saklama süresine, veri hacmine, CRUD gereksinimlerine ve bölgesel çoğaltmaya göre gereksinimlere uyan veri depolama alanını kullanın. Örnek olarak Azure Data Lake Storage, Azure Veri Gezgini, Azure SQL veya Azure Cosmos DB verilebilir. Daha fazla bilgi için bkz. Uygulamanız için azure veri deposu seçme.

Tümleştirme katmanı

Tümleştirme katmanı, bir IoT çözümünü diğer hizmetlere ve iş uygulamalarına bağlar.

  • IoT çözümü alma işlem hattını tümleştirme işlemeden ayırın. Tümleştirme katmanındaki karmaşık sorguların veya yüklemelerin veri alımı performansını etkilemediğinden emin olun.

  • IoT verilerine ve komutlarına erişmek için iyi tanımlanmış ve sürümlenmiş API'ler kullanın.

  • Son kullanıcıların IoT veri depolaması için kullanıcı tanımlı sorgular oluşturması için araçlardan kaçının. Tümleştirme ve raporlama için ayrı veri depoları kullanmayı göz önünde bulundurun.

DevOps katmanı

Performans verimliliğini en üst düzeye çıkarmak için aşağıdaki DevOps mekanizmalarını kullanın:

  • Yerel önbelleğe alma ve kapsayıcı görüntülerinin dağıtımı için bağlı bir kayıt defteri .

  • Cihazlar ve ağ geçitleri dahil olmak üzere dağıtımları aynı anda birden çok cihaza güncelleştirmeye IoT Hub.

  • Cihaz yapılandırmalarını ölçeklenebilir ve verimli bir şekilde güncelleştirmek için cihaz ikizleri ve modül ikizleri.

  • Konum ve heterojen cihazlar gibi üretim ortamını çoğaltmaya ilişkin stres ve yük testleri de dahil olmak üzere performans testi.

İzleme

Kritik ölçümlere yönelik uyarılarla IoT Hub ölçümleri toplamak için Azure İzleyici'yi kullanın. Cihazdan buluta saniyede gönderilen iletiler gibi geçerli ölçek sınırlarına göre Azure İzleyici uyarıları ayarlayın. Yaklaşan ölçeklenebilirlik sınırlarının önceden bildirilmesi için uyarıyı sınırın %75'i gibi bir yüzdesine ayarlayın. Ayrıca, azaltma hatası sayısı gibi günlükler ve ölçümler için Azure İzleyici uyarılarını ayarlayın.

IoT Hub durumu değiştiğinde bildirimleri tetikleyen Azure Hizmet Durumu hizmet uyarılarını ayarlayın.

Sonraki adımlar