
Cloudflare Workers və Durable Objects üçün CPU və yaddaş profilini tələbə əlavə etdi
Cloudflare indi Workers və Durable Objects üçün tələbə CPU və yaddaş profilini dəstəkləyir; dashboard və ya CLI vasitəsilə istehsal trafik üçün interaktiv flamegraph-lar mövcuddur.
Workers və Durable Objects üçün tələbə profilinq
Cloudflare Workers və Durable Objects üçün CPU və yaddaş profilinq tələbə əlavə etdi. Workers Observability səhifəsindən developerlər aktiv Worker profilini tələb edə bilər, interaktiv flamegraph ilə baxa və fayl endirə bilər. Şirkətə görə, profilinq istehsalda tətbiqin davranışını başa düşmək üçün ən yaxşı yoldur.
Profilinq necə əldə edilir
Sessiya Cloudflare Dashboard və ya CLI-dən başlayır. Dashboard-da Worker seçin, Observability-ni açın və Flamegraph menyusundan CPU və ya yaddaş profilini tələb edin, müddət və versiya seçin. CLI üçün cf paketi və əmrlər lazımdır, məsələn əmr: cf workers versions profile latest worker ID ilə, müddət və tip ilə; nəticə pprof faylıdır.
Worker profilinq üçün kifayət qədər trafik lazımdır, ona görə aktiv versiya seçin. Flamegraph-da düzbucaqlı funksiyanın çağırışdır, genişliyi isə onun CPU vaxtını və ya yaddaşını göstərir; klik fokuslayır, kursor detalları göstərir, cədvəl isə tez-tez istifadə olunan funksiyaları. TypeScript layihələrində source map-ləri aktiv edin, əks halda adlar bulanıq görünəcək.
Real nəticələr
Cloudflare komandaları bu funksiyanı artıq yaddaş və CPU optimizasiyası, out-of-memory xətaların aradan qaldırılması və performansın yaxşılaşdırılması üçün istifadə edib. R2 binding Worker-in CPU profili göstərib ki, CPU vaxtının 5%-dən çoxu genericR2JsonReplacer-ə gedir, çünki JSON.stringify JSON ağacında rekursiv işləyir. Düzəltmə funksiyanı 2,7 sürətləndirdi. Metrikanın dubli çağırışı — CPU vaxtının təxmini 1% — nəticəni dəyişənda saxlamaqla aradan qaldıldı.
Daxili Worker 128 MB limitə çatırdı: P999 yaddaş təxmini 133 MB idi və tez-tez „Exceeded Memory“ evictions verirdi. İstehsalda alınan heap profili (pprof) göstərdi ki, paylanmaların təxmini 66,7%-i Prometheus kodu üzərində idi, buna baxmayaraq o, söndürülməlı idi. Silmə P50-ni 70-dən 54 MB-ə, P90-ı 94-dən 79 MB-ə, P99-ı 113-dən 97 MB-ə, P999-u isə 133-dən 118 MB-ə endirdi.
Necə işləyir və növbəti addımlar
Profilinq real istehsal icrasına təsir edir, ona görə yeni isolate başladılmır. runtime bilməlidir ki, hansı versiya profil ediləcək, onun isolate yüklənib-yüklənmediyi və hesaba aid olub-olmadığı. Durable Objects üçün sorğu konkret obyektə adla ünvanlanır və actoru ələ keçən metal-ə ötürülür.
Trafik bloklanmasının qarşısını almaq üçün Workers Runtime isolate lock-u yalnız profiler-in həyat dövrü əməliyyatları üçün götürür. CPU profili üçün o, 1 millisaniyəlik interval ilə V8 CPU profiler yaradır, lock-u buraxır, göstərilən müddəti gözləyir və nəticəni dayandırmaq və serialize etmək üçün yenidən götürür.
Cloudflare məhdudiyyətləri qeyd edir: sessiyalar əl ilə başladılmalıdır, ona görə qısamüddəti problemlər qala bilər; yaddaş profilleri yalnız profilinq pəncərəsini əhatə edir, yükləmə zamanı baş verən paylanmaları isə nəzərə almır. Şirkət dav profilinq üzərində işləyir ki, nümunələri avtomatik toplasın və developerlər dashboard-da profilləri əl ilə başlatmadan baxa bilsin.
Mənbələr: The Cloudflare Blog
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.