LockedLoadData / önbelleğe alınmamış sayfa oluşturmanın amacı ne kadar sürüyor?


11

Magento 2.3.1 güncellemesinden bu yana önbelleğe alınmamış sayfa yükleriyle (geliştirme sırasında) sorunlar yaşıyorum.

Bir blackfire.io izi yaptım ve burada 42 saniyenin uykuda geçtiği ortaya çıkıyor .

Şimdi bunun amacının ne olduğunu merak ediyorum. Sanırım bir çeşit yarış koşulunda koşuyorum?

Daha önce böyle bir şey yaşayan var mı?

EDIT: Çağrı yığını Commercebug içeriyor gibi görünüyor.

Yanıtlar:


8

Peki bu bir seçim mi? - Magento mühendisleri yaptı.

Bu bir yanıt değil, ancak bu işlevin önbelleğe alınmış verileri yüklemeyi amaçlayan bir geri çağrıyı kabul ettiği anlaşılıyor. Geri arama, şu anda yerinde bir kilit olup olmadığını kontrol eder. Değilse, bir kilit yerleştirir, verileri yükler ve sonra kilidi serbest bırakır. Yerleşik bir engelleme varsa, o uyur için 100,000mikrosaniye (0,1 saniye) ve daha sonra tekrar yükleyici çağırır.

Yüksek sesle düşünmek, tahminimce

  1. Belki bu işleve normalden daha fazla sayıda istek
  2. Önbelleğinizden normal okuma sürelerinden daha yüksek.


7

lockedLoadData mekanizmasının sunucu üzerindeki yükü azaltması gerekir.

Önceden yüksek yüklü sitelerdeki yapılandırma önbelleği temizlendiğinde, tüm istemci cpu / io yükünü önemli ölçüde artıran aynı bilgileri üretiyordu.

LockedLoadData ile yalnızca bir istemci önbellek oluşturur ve diğerleri bunu bekler.

Nasıl çalıştığı hakkında daha fazla ayrıntı.

İlk fonksiyon çağrısı "veri al" geri araması ve sadece geri dönmektense veri alırsa (önbellekteki veriler varsa, kod önceki gibi çalışır ve kilit kullanmaz).

Veri mevcut değilse ve kilit kilitliyse, döngüde veri alınana veya kilit kaldırılana kadar veri yüklemeye çalışırız.

Kilit yoksa, bir kilit oluştururuz ve önbelleğe kaydederek veri üretiriz ve kilit ve dönüş verilerini kaldırırız

Not: Bu değişiklikleri 20kRPM yüke kadar olan müşterilerden biri için bir yama gibi gönderdik ve en az 3 ay sorunsuz çalışıyor. Özelleştirme / modüllerinizdeki sorun (örneğin, önbellek mekanizmasını kırmışlarsa)


İlginç ... Her neyse benim durumumda kuruyemiş var. Alan, PulseStorm
Alex

gerçekten kötü bir çözüm gibi görünüyor, bekleyen tüm kullanıcıların işlemlerini canlı tutacağı anlamına geliyor .. neden sadece masa kilitlerini kullanamıyorlar
OZZIE

@ OZZIE, bir kullanıcı yapılana kadar uyumak yerine tüm kullanıcıların veri oluşturmasını tercih ediyor musunuz? Matematiksel ücretsiz CPU kaynaklarımız yok
KAndy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.