2011-10-09 13 views
14

मैं अपने सभी डेटा को हेरोकू के साझा डीबी से अमेज़ॅन आरडीएस में स्थानांतरित करने की प्रक्रिया में हूं। सब कुछ आरडीएस पर स्विच करने से पहले, मैंने यह सुनिश्चित करने के लिए स्थानीय रूप से कुछ परीक्षण चलाए कि मेरा ऐप इसके साथ ठीक काम करता है। ये परीक्षण स्पष्ट रूप से धीमे हैं कि आरडीएस पर क्वेरी समय धीमा है। ठीक उसी अनुरोध के लिए, मैं:हेरोकू साझा डीबी बनाम अमेज़ॅन आरडीएस प्रदर्शन

पर Heroku, साथ Heroku db साझा:,

Completed 200 OK in 98ms (Views: 0.7ms | ActiveRecord: 56.0ms) 

स्थानीयसाथ आरडीएस उदाहरण

Completed 200 OK in 253ms (Views: 0.7ms | ActiveRecord: 127.9ms) 

db ActiveRecord बार मैं यहां के बारे में चिंतित हूं। क्या मैं कुछ भूल रहा हूँ? हेरोकू स्पष्ट रूप से उनके साझा डीबी के बारे में बताता है:

साझा डेटाबेस स्टेजिंग, परीक्षण और निम्न पैमाने उत्पादन अनुप्रयोगों के लिए उपयुक्त हैं।

और फिर भी यह आरडीएस उदाहरण से तेज़ लगता है कि मैं 80 डॉलर/माह का भुगतान कर रहा हूं। क्या उसकाोकू का साझा डीबी स्थानीय रूप से चल रहा है? क्योंकि यह मेरे लिए बहुत स्पष्ट है कि मेरे हेरोकू ऐप के अंदर स्थानीय रूप से चल रहे किसी भी डेटाबेस के बारे में किसी भी डीबी की तुलना में तेज़ होने वाला है जो इसके बाहर रहता है। अमेज़ॅन का कहना है कि 10ms से अधिक लेने वाली किसी भी क्वेरी को "धीमी क्वेरी" के रूप में माना जाता है। लेकिन अभी ऐसा लगता है कि प्रत्येक क्वेरी एप से अमेज़ॅन के सर्वर + वास्तविक क्वेरी समय के लिए अकेले राउंडट्रिप के लिए कम से कम 25ms पर ले जायेगी। या क्या मैं कुछ न कुछ भूल रहा हूं?

+0

यह प्रश्न शायद सर्वरफॉल्ट से संबंधित है। ओह अच्छा। – samvermette

उत्तर

13

जो मैं समझता हूं उससे, हेरोोकू ईसी 2 उदाहरण पूर्व उपलब्धता क्षेत्र में चलाते हैं, इसलिए उसी क्षेत्र में एक आरडीएस उदाहरण बनाना काफी स्थानीय डेटाबेस देने जैसा है (मुझे विश्वास है कि उसके जैसे हीोकू के साझा डेटाबेस भी काम करते हैं)।

सीधे मेरे हेरो के लिए एक स्टेजिंग वातावरण स्थापित करने और इसे मेरे आरडीएस उदाहरण से जोड़ने के बाद, जब मैंने इसे स्थानीय रूप से परीक्षण किया था, तो पूछताछ के समय बहुत तेज थे (जहां प्रत्येक SQL क्वेरी को मेरी स्थानीय मशीन से एक राउंडट्रिप बनाना था आरडीएस सर्वर)।

अनुत्तरित छोड़ने वाली एकमात्र मामूली चीज यह है कि यह निर्धारित करने के लिए कि मेरे हेरोकू ऐप किस विशेष उपलब्धता उप-क्षेत्र में चल रहा है, इसलिए मैं इसे अपने आरडीएस इंस्टेंस के साथ मेल कर सकता हूं (हालांकि यह संभवतः वैश्विक रूप से उतना ही महत्वपूर्ण नहीं है उपलब्धता क्षेत्र)।

enter image description here

+2

चीजों को और जटिल करने के लिए, अमेज़ॅन प्रति उपयोगकर्ता आधार पर जोनों को यादृच्छिक बनाता है। तो आपका हमारा-पूर्व -1 बी मेरा यूएस-ईस्ट -1 सी –

+0

हो सकता है मैं एक ही चीज़ की तलाश में हूं। मैं अपने हेरोोकू ऐप के लिए एक नया आरडीएस उदाहरण बना रहा हूं, और मैं जानना चाहता हूं कि सर्वोत्तम प्रदर्शन के लिए मुझे कौन से उपलब्धता उप-क्षेत्र का चयन करना चाहिए (और बीडब्ल्यू में कोई अतिरिक्त लागत नहीं)। मैंने हमें-पूर्व-1 क्षेत्र का चयन किया, लेकिन उन अन्य जोनों, हमें-पूर्व-1 बी, यूएस-ईस्ट -1 सी, यूएस-ईस्ट -1 डी और "कोई वरीयता नहीं", मुझे नहीं पता कि किसको चुनना है। क्या मुझे "कोई वरीयता नहीं" छोड़नी चाहिए या मुझे एक विशिष्ट चुनना चाहिए? – Guillermo

+0

@ गुइलर्मो मुझे नहीं लगता कि सबज़ोन प्रदर्शन को बहुत प्रभावित करता है। मैंने "कोई वरीयता नहीं" चुना है और क्वेरी समय के मामले में कोई अंतराल नहीं लगता है। – samvermette

संबंधित मुद्दे