Aynı bölgede (us-east-1) lambda fonksiyonu ve dinamo db tablosu var.Lambda fonksiyonundan dinamodlara çok yavaş talepler
DynamoDB tabloda yalnızca birkaç satır varparams =
TableName: 'users'
Item:
email:
S: event.body.email
ConditionExpression: 'attribute_not_exists (email)'
dynamodb.putItem(params, context.done)
, 5/5 ayarlanır e-posta ve Okuma/Yazma throughtputs üzerinde Hash Anahtar vardır: lambda görevde ben çok basit bir sorgu gerçekleştirmek.
Lambda işlevi ~ 4 saniye içinde söner ... Bu çok yavaştır. Yanlış bir şey mi yapıyorum? Ben lambda fonksiyonu için farklı bellek ayarları ile benim fonksiyonunu test ettik
(daha önce 128MB ayarlandı):
- 256mb => ~ 2000 ms
- 512mb => ~ 1000ms
- 1024MB => ~ 500ms
- 1536mb => ~ 300 ms
Öyleyse yanıt süresi, belleğe 1-1 (aslında AWS'nin bellekle birlikte ölçeklendirdiği gibi hesaplama kapasitesine göre) bağlıdır. Hala bu çılgın çünkü çok basit bir REST API yapmak için programımı 17mb kullanırken "responsive" yapmak için 1536mb bellek ayarlamak zorundayım! Ben mal olacağı hesaplanmıştır ettik diğer taraftan
Hmm:
- 8,32 $ 1 milion 4000ms başına 1536mb belleği kullanarak 128mb bellek
- 10,004 $ 1 milion 300 ms istekleri başına kullanarak istekleri
yüzden sanırım kadar kötü değil ...
Lambda işlevinizde başka bir şey yapmadığınızdan emin misiniz? Basit JS çağrısı o kadar fazla belleğe ihtiyaç duymaz ve o kadar zaman almamalıdır. – Guy
Sadece karşılaştırma amacıyla SimpleDB'ye basarsanız ne tür bir performans elde edersiniz? –