से डायनेमोडब के लिए बहुत धीमे अनुरोध मेरे पास उसी क्षेत्र में लैम्ब्डा फ़ंक्शन और डायनेमो डीबी टेबल है (us-east-1)।लैम्ब्डा फ़ंक्शन
params =
TableName: 'users'
Item:
email:
S: event.body.email
ConditionExpression: 'attribute_not_exists (email)'
dynamodb.putItem(params, context.done)
DynamoDB तालिका में केवल कुछ पंक्तियाँ हैं, वहाँ ईमेल और पढ़ें/लिखें throughtputs पर हैश कुंजी 5/5 करने के लिए सेट कर रहे हैं: लैम्ब्डा समारोह में मैं बहुत ही सरल क्वेरी प्रदर्शन करते हैं।
लैम्ब्डा फ़ंक्शन ~ 4 सेकंड में निकलता है ... यह बहुत धीमा है। क्या मुझसे कुछ गलत हो रही है?
मैं लैम्ब्डा समारोह के लिए विभिन्न स्मृति सेटिंग्स के साथ मेरी समारोह परीक्षण किया है (यह पहले से 128MB करने के लिए स्थापित किया गया था):
- 256MB => ~ 2000ms
- 512MB => ~ 1000ms
- 1024mb => ~ 500ms
- 1536mb => ~ 300 मि.से
तो ऐसा लगता है कि प्रतिक्रिया समय स्मृति पर 1-1 निर्भर करता है (वास्तव में गणना क्षमता पर एडब्ल्यूएस स्केल के रूप में स्मृति के साथ)। फिर भी यह पागल है क्योंकि बहुत आसान आरईएसटी एपीआई बनाने के लिए मुझे इसे "उत्तरदायी" बनाने के लिए 1536 एमबी मेमोरी सेट करना है जबकि मेरा प्रोग्राम 17 एमबी का उपयोग करता है!
हम्म दूसरी ओर मैं गणना की है कि यह खर्च होंगे पर:
- 8,32 $ प्रति 1 milion 4000ms 128MB स्मृति
- 10,004 $ प्रति 1 milion 300 मि.से अनुरोध का उपयोग कर अनुरोध 1536mb स्मृति का उपयोग
तो यह इतना बुरा मुझे लगता है कि नहीं है ...
क्या आप वाकई अपने Lambda फ़ंक्शन में कुछ और नहीं कर रहे हैं? सरल जेएस कॉल को उस स्मृति की आवश्यकता नहीं होनी चाहिए और उसे इतना समय नहीं लेना चाहिए। – Guy
सिर्फ तुलना के लिए, यदि आप SimpleDB दबाते हैं तो आपको किस प्रकार का प्रदर्शन मिलता है? –