Ajanları Ölçeklendirmek: Gecikme, Eşzamanlılık ve Kota
İlk trafik dalgası her ekibe aynı dersi verir. Sunucularınız neredeyse boştur, veritabanınız gayet iyidir ve her şey yavaştır — çünkü her istek, kotası olan bir sağlayıcıya yapılan birkaç saniyelik çağrıdır ve kotalar kaç konteyner başlattığınızı umursamaz.
Bu yüzden ajan ölçeklendirmek çoğunlukla kuyruk teorisi ve beklenti yönetimidir; biraz da kapasite planlaması. İyi haber, tekniklerin iyi bilinmesi ve hiçbirinin ajanınızı yeniden yazmayı gerektirmemesi.
Üç sınırdan hangisine çarptığınızı bilin#
| Belirti | Muhtemel sınır | Çözüm |
|---|---|---|
| Sağlayıcıdan 429 yanıtları | Dakika başına istek ya da token | Kuyruk, geri çekilme, anahtar/bölge dağıtımı |
| Yavaş ama hatasız | Koşu başına sıralı model çağrıları | Bağımsız adımları paralelleştir; döngüyü kısalt |
| Bellek ya da bağlantı tükenmesi | Kendi servisiniz | Sıradan kapasite işi |
| Yalnız yoğun saatte yavaş | Paylaşılan kota çekişmesi | Öncelik kuyruğu; düşük değerli işi ertele |
Etkileşimli olmayan her şeyi kuyruğa alın#
Trafiği ilk günden iki sınıfa ayırın. Etkileşimli iş — bir insan bekliyor — kısa bir süre sınırı, katı bir adım sınırı ve kalite izin veriyorsa hızlı bir model alır. Arka plan işi — toplu sınıflandırma, zenginleştirme, gece işleme — eşzamanlılığını sizin belirlediğiniz bir kuyruğa gider ve kota daraldığında ilk kısacağınız şey odur. Bu ayrım olmadan sabah dokuzda başlatılan bir toplu iş, ürünü kullanan insanlar için bir kesintiye dönüşür.
Beklemeyi dürüstçe kısaltın#
- Cevabı son token'dan sonra değil üretildikçe akıtın.
- Mevcut adımı sade dille gösterin: dönen bir çark değil, `siparişiniz kontrol ediliyor`.
- Bir sınıra çarpıldığında işe yarar kısmi sonucu, eksik olanı adlandırarak döndürün.
- Bloklamayan her şeyi kritik yoldan çıkarın ve sonrasında teslim edin.
Gecikme algısı, mühendislik kadar ürün problemidir. Görünür ilerlemeli beş saniyelik cevap, koşturduğumuz her testte üç saniyelik boş ekranı yeniyor.
Geri çekilme modunu ihtiyaç duymadan önce tasarlayın#
Sağlayıcı yavaşladığında, kota aştığında ya da çöktüğünde ajanın ne yapacağına önceden karar verin — ve sakin olduğunuz zaman kurun. Makul bir merdiven: tam ajan, sonra daha ucuz ya da alternatif model, sonra araç çağrısı olmadan yalnız getirimle cevaplama, sonra düz bir özür ve insana devir. Bunu nöbetçi mühendisin saniyeler içinde çevirebileceği bir anahtarın arkasına koyun. Geri çekilme modu olmayan ekipler, başkasının olayı sırasında tam kesinti yaşar; bu da bir cumayı harcamanın kötü bir yoludur.
Önemli iki sayıyla kapasite planlaması#
Tamamlanan görev başına model çağrısı ve tamamlanan görev başına token. Zirvede beklenen dakika başına görevle çarpın, kotanızla karşılaştırın ve limit artışına yayın sırasında değil öncesinde ihtiyacınız olup olmadığını bilin. Ajan biçim değiştirdiğinde yeniden hesaplayın — bir eleştirmen turu ya da ikinci bir uzman eklemek görev başına çağrıyı sessizce ikiye katlayabilir ve ilk işaret, aksi hâlde bir lansman günündeki 429 duvarı olur.
Sık sorulan sorular
Birkaç sağlayıcı hesabı ya da bölge kullanmalı mıyım?
Gerçek ölçek ya da dayanıklılık için evet — anahtarlar, bölgeler ya da sağlayıcılar arasında dağıtmak standart uygulamadır. Bunu tek bir iç arayüzün arkasında yapın ki ajan kodunuz habersiz kalsın ve rota başına model sürümlerini sabitleyin ki davranış hangi rotanın hizmet verdiğine göre değişmesin.
Etkileşimli gecikmeyi nasıl kabul edilebilir tutarım?
Etkileşimli koşularda adımları sertçe sınırlayın, basit adımları hızlı modele yönlendirin, bağımsız araç çağrılarını paralelleştirin ve çıktıyı akıtın. Görev gerçekten on adım istiyorsa etkileşimli numarası yapmayı bırakın ve bir ilerleme görünümü verin.
Trafik büyüdüğünde ilk ne bozulur?
Neredeyse her zaman sağlayıcı kotaları; ardından en yoğun aracınızın çağırdığı iç API. Yalnız ajanı değil araç katmanını da yük testine sokun; bir ajan, arkasındaki sistemlere giden trafiği o sistemlerin sahiplerini şaşırtan biçimde çarpar.
ajan ölçeklendirmellm kota sınırlarıajan gecikmesillm istek kuyruğugeri çekilme modu