خطوات الاستخدام
أدخل عدد عمليات القراءة في الثانية (readsPerSec) التي تتوقعها لتطبيقك. هذا الرقم يمثل متوسط عدد طلبات القراءة التي سيقوم بها المستخدمون أو الأنظمة الأخرى على جدول DynamoDB الخاص بك في كل ثانية. كلما زاد هذا العدد، زادت الحاجة إلى وحدات سعة قراءة (RCU) أكبر. لاحظ أن DynamoDB يقيس سعة القراءة بوحدات RCU، حيث توفر وحدة RCU واحدة قراءة متسقة قوية واحدة (strongly consistent read) لعنصر يصل حجمه إلى 4 كيلوبايت في الثانية. إذا كان حجم العنصر أكبر، سيتم استهلاك أكثر من وحدة RCU واحدة لكل قراءة.
أدخل عدد عمليات الكتابة في الثانية (writesPerSec) التي تتوقعها. هذا يمثل متوسط عدد طلبات الكتابة (إضافة أو تحديث أو حذف) في الثانية. لكل عملية كتابة، يتم استهلاك وحدات سعة كتابة (WCU) بناءً على حجم العنصر المكتوب. توفر وحدة WCU واحدة كتابة واحدة لعنصر يصل حجمه إلى 1 كيلوبايت في الثانية. إذا كان حجم العنصر أكبر، فستحتاج إلى أكثر من وحدة WCU واحدة.
أدخل متوسط حجم العنصر بالكيلوبايت (avgItemSizeKB). هذا هو حجم العنصر النموذجي المخزن في جدول DynamoDB (بما في ذلك جميع السمات والمفاتيح). لاحظ أن DynamoDB يقوم بتقريب حجم العنصر إلى أقرب 4 كيلوبايت للقراءة وإلى أقرب 1 كيلوبايت للكتابة. على سبيل المثال، إذا كان حجم العنصر 1.5 كيلوبايت، فسيتم تقريبه إلى 4 كيلوبايت لعملية القراءة (وبالتالي استهلاك وحدة RCU واحدة) وإلى 2 كيلوبايت لعملية الكتابة (وبالتالي استهلاك 2 وحدة WCU).
احسب وحدات سعة القراءة (RCU) المطلوبة باستخدام المعادلة: RCU = readsPerSec * ceil(avgItemSizeKB / 4). حيث تقوم دالة ceil() بتقريب ناتج القسمة إلى أقرب عدد صحيح أكبر. إذا كنت تستخدم قراءات متسقة في النهاية (eventually consistent reads)، يمكنك تقسيم الناتج على 2 لأن كل قراءة متسقة في النهاية تستهلك نصف وحدة RCU. لاحظ أن الآلة الحاسبة الافتراضية تستخدم القراءة المتسقة القوية للحصول على أقصى دقة.
احسب وحدات سعة الكتابة (WCU) المطلوبة باستخدام المعادلة: WCU = writesPerSec * ceil(avgItemSizeKB / 1). أي أن كل عملية كتابة تستهلك عددًا من وحدات WCU يساوي حجم العنصر مقربًا لأعلى بالكيلوبايت. على سبيل المثال، إذا كان حجم العنصر 2.3 كيلوبايت، فسيتم تقريبه إلى 3 كيلوبايت، وبالتالي استهلاك 3 وحدات WCU لكل عملية كتابة. هذا يضمن أن لديك سعة كافية لتلبية متطلبات الكتابة دون التسبب في طلبات محدودة (throttling).
أمثلة محلولة
تطبيقات عملية على وحدات سعة DynamoDB بخطوات الحل كاملة.
الحل
المعطيات:
- readsPerSec = 1000
- writesPerSec = 500
- avgItemSizeKB = 1.5
حساب RCU (قراءات متسقة قوية):
لنحسب أولاً حجم العنصر المقرب لأعلى إلى 4 كيلوبايت: ceil(1.5 / 4) = ceil(0.375) = 1
إذن RCU = 1000 * 1 = 1000 وحدة RCU.
ملاحظة: إذا كان العنصر أكبر من 4 كيلوبايت، ستكون النتيجة أكبر. لكن هنا حجم العنصر صغير نسبياً.
حساب WCU:
حجم العنصر مقرب لأعلى إلى 1 كيلوبايت: ceil(1.5 / 1) = ceil(1.5) = 2
إذن WCU = 500 * 2 = 1000 وحدة WCU.
النتيجة النهائية:
ستحتاج إلى 1000 وحدة RCU و 1000 وحدة WCU لتشغيل التطبيق دون مشاكل في الأداء. سعر هذه السعة يعتمد على المنطقة والمتطلبات الأخرى مثل الجدول الثانوي والتشفير. على سبيل المثال، في منطقة US East (N. Virginia) بتكلفة تقريبية قدرها 0.00013 دولار لكل وحدة WCU في الساعة و0.00013 دولار لكل وحدة RCU في الساعة، ستكون التكلفة التقديرية للسعة الموفرة (provisioned) حوالي (1000 * 0.00013 + 1000 * 0.00013) * 24 = 6.24 دولار في اليوم. إذا كنت تستخدم وضع الطلب على الطلب (on-demand)، فستختلف التكلفة بناءً على الاستخدام الفعلي.
الحل
المعطيات:
- readsPerSec = 50000
- writesPerSec = 10000
- avgItemSizeKB = 12.5
حساب RCU (قراءات متسقة قوية — وهو الافتراض الثابت في الحاسبة):
- وحدات RCU لكل قراءة = ceil(12.5 ÷ 4) = ceil(3.125) = 4
- RCU = 50000 × 4 = 200000 وحدة RCU
حساب WCU:
- وحدات WCU لكل كتابة = ceil(12.5 ÷ 1) = 13
- WCU = 10000 × 13 = 130000 وحدة WCU
النتيجة النهائية: 200000 + 130000 = 330000 وحدة سعة.
ملاحظة: لو كانت القراءات متسقة في النهاية (eventually consistent) لاستهلكت نصف وحدة RCU لكل قراءة، أي أن 200000 تصبح 100000؛ الحاسبة لا تميّز النوع وتَعتمد القراءة القوية لضمان أقصى سعة. التكلفة التقديرية الساعة بهذه السعة الموفرة في US East: (330000 × 0.00013) ≈ 42.9 دولار في الساعة — رقم يبرز أهمية تحسين حجم العنصر وتقسيم الجداول.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة وحدات سعة DynamoDB.
مرجع — عنصر 1.5KB بعناصر صغيرة
- قراءات في الثانية
- 1,000
- كتابات في الثانية
- 500
- متوسط حجم العنصر (كيلوبايت)
- 1.5
مرجع — منصة تحليلات بسعة ضخمة
- قراءات في الثانية
- 50,000
- كتابات في الثانية
- 10,000
- متوسط حجم العنصر (كيلوبايت)
- 12.5
مرجع — حجم عنصر مطابق لحد الوحدة
- قراءات في الثانية
- 100
- كتابات في الثانية
- 50
- متوسط حجم العنصر (كيلوبايت)
- 4