Performans ayarı ve optimizasyon teknikleri

AWS Lambda ile Sunucusuz Uygulamalar

Claudio Canales

Senior DevOps Engineer

Performans = gecikme + maliyet

  • Süre için ödeme yaparsınız.
  • Performans ayarı aynı zamanda maliyet optimizasyonudur.
  • Ayarlamadan önce ölçün.
  • Her seferinde tek bir şeyi değiştirin.

Kronometre ve maliyet

AWS Lambda ile Sunucusuz Uygulamalar

Zaman nereye gidiyor

  • Başlatma (Initialization).
  • Handler yürütmesi.
  • Harici çağrıları bekleme süresi.

Init vs handler vs harici çağrılar

AWS Lambda ile Sunucusuz Uygulamalar

Soğuk başlangıç vs sıcak başlangıç

Soğuk başlangıç

  • Lambda yeni bir ortam ister.

Sıcak başlangıç

  • Mevcut bir ortamı yeniden kullanır.
  • Handler daha az ek yükle çalışır.

Soğuk vs sıcak zaman çizelgesi

AWS Lambda ile Sunucusuz Uygulamalar

Init işleri vs handler işleri

  • İçe aktarımlar ve genel kurulum init'te çalışır.
  • Ağır init, soğuk başlangıçları yavaşlatır.
  • Init süresi metriklerde görünür.

Init ve handler ayrımı

AWS Lambda ile Sunucusuz Uygulamalar

Sıcak çağrılarda istemcileri yeniden kullanın

  • Her çağrıda istemci oluşturmak maliyeti yineler.
  • Ortam sıcakken yeniden kullanın.

Global istemci yeniden kullanımı

AWS Lambda ile Sunucusuz Uygulamalar

Kod kalıbı: handler dışında istemci

import boto3
sts = boto3.client("sts")
def handler(event, context):
    return sts.get_caller_identity()

İstemci bir kez oluşturuldu

AWS Lambda ile Sunucusuz Uygulamalar

Yapabildiğiniz kadar önbelleğe alın

  • Veriyi bellekte tutun.
  • Küçük geçici dosyalar için /tmp kullanın.
  • Önbelleği dikkatle yönetin, gerektiğinde geçersiz kılın.

Bellek ve /tmp önbellekleme

AWS Lambda ile Sunucusuz Uygulamalar

Bağımlılıkları hafif tutun

  • Büyük paketler daha geç yüklenir.
  • Kullanmadıklarınızı ayıklayın.
  • Bağımlılıkları olabildiğince küçük tutun.

İnce vs ağır bağımlılık paketi

AWS Lambda ile Sunucusuz Uygulamalar

Akıllıca günlükleyin

  • Aşırı günlükleme maliyet ve gürültü katar.
  • Küçük, yapılandırılmış iletiler hedefleyin.
  • Aranabilir kalın; izleme ve hata ayıklamaya yardım edin.

Günlük hacmi vs sinyal

AWS Lambda ile Sunucusuz Uygulamalar

Harici çağrı ek yükünü azaltın

  • Diğer hizmetlere çağrılar en yavaştır.
  • Çağrıları azaltın; mümkünse toplu işleyin.
  • Askıda kalmamak için zaman aşımları ayarlayın.

Harici çağrıları en aza indirin

AWS Lambda ile Sunucusuz Uygulamalar

Bellek CPU'yu da etkiler

  • CPU, bellekle ölçeklenir.
  • CPU ağırlıklı kod daha hızlı bitebilir.
  • Daha fazla bellek süreyi veya maliyeti düşürebilir.
  • En iyi değeri bulmak için test edin.

Bellek -> CPU -> daha hızlı çalışma süresi

AWS Lambda ile Sunucusuz Uygulamalar

Maliyet açısından tatlı noktayı bulun

  • En iyi bellek ayarı toplam maliyeti en aza indirir.
  • Eğri önce düşer, sonra yataylaşır veya yükselir.
  • Değişiklikten sonra yeniden test edin.

Maliyet vs bellek eğrisi

AWS Lambda ile Sunucusuz Uygulamalar

CloudWatch ile ölçün

  • Süre ve init süresini izleyin.
  • Hataları ve kısıtlamaları izleyin.
  • Kuyruk sonu gecikmelerine bakın (p95, p99).

CloudWatch performans metrikleri

AWS Lambda ile Sunucusuz Uygulamalar

Soğuk başlangıçları azaltma

  • Init'te çalışanları küçültün.
  • Paketinizi hafif tutun.
  • Pahalı kurulumu yeniden kullanın.
  • Sağlanan ortamları değerlendirin.

Soğuk başlangıç azaltma kontrol listesi

AWS Lambda ile Sunucusuz Uygulamalar

Önemli çıkarımlar

  • Zamanın nereye gittiğini bilin.
  • İstemcileri yeniden kullanın ve dikkatle önbelleğe alın.
  • Bellek, CPU'yu ve süreyi değiştirir.
  • Her değişimi ölçün.

Performans temel çıkarımlar

AWS Lambda ile Sunucusuz Uygulamalar

Hadi pratik yapalım!

AWS Lambda ile Sunucusuz Uygulamalar

Preparing Video For Download...