فهم خصائص أداء القرص

مكتمل

يعتمد أداء التطبيق غالباً على مدى سرعة التطبيق في قراءة البيانات وكتابتها. لفهم كيفية تحسين أداء التطبيق، يجب أولاً فهم كيفية قياس الأداء والإعدادات والخيارات التي تؤثر عليه.

خصائص أداء القرص

لاختيار نوع القرص المناسب، من المهم أن تتعرف على مؤشرات الأداء. تعبر المؤشرات التالية عن الأداء:

  • IOPS: IOPS هو عدد الطلبات التي يرسلها تطبيقك إلى الأقراص في ثانية واحدة. وتؤثر عملية IOPS على أداء تطبيقك تأثيراً مباشراً. تحتاج بعض التطبيقات مثل مواقع البيع بالتجزئة إلى عمليات إدخال وإخراج عالية في الثانية لإدارة جميع طلبات الإدخال/الإخراج الصغيرة والعشوائية (I/O) التي يجب معالجتها بسرعة للحفاظ على استجابة الموقع. تحتوي الأقراص ذات الأداء الأعلى على قيم IOPS أعلى.
  • معدل النقل: معدل النقل هو كمية البيانات التي يرسلها تطبيقك إلى الأقراص في فاصل زمني محدد. ويسمى معدل النقل أيضا معدل نقل البيانات ويتم قياسه بالميغابايت/ثانية. إذا كان تطبيقك ينفذ الإدخال/الإخراج مع كتل كبيرة من البيانات، فإنه يتطلب معدل نقل عالياً. الأقراص ذات الأداء الأعلى لديها إنتاجية أعلى.
  • زمن الانتقال: يعبر زمن الانتقال عن الوقت الذي يستغرقه تطبيقك لإرسال طلب إلى القرص وتلقي استجابة. ويفرض زمن الانتقال حداً على عمليات الإدخال والإخراج الفعالة في الثانية. على سبيل المثال، (مع عمق قائمة الانتظار 1) إذا كان القرص الخاص بك يمكنه معالجة 5000 عملية إدخال/إخراج في الثانية ولكن كل عملية تستغرق 10 مللي ثانية لمعالجتها، فسيتم تحديد الحد الأقصى لتطبيقك عند 100 عملية في الثانية بسبب وقت المعالجة. يتم تحسين زمن الانتقال بشكل ملحوظ إذا قمت بتمكين التخزين المؤقت لمضيف ReadOnly.

IOPS مقابل معدل النقل

لدى معدل النقل وعمليات الإدخال والإخراج في الثانية علاقة مباشرة. وتغيير أحدهما يؤثر بشكل مباشر على الآخر. للحصول على حد نظري لمعدل النقل، يمكنك استخدام المعادلة التالية: عمليات الإدخال والإخراج في الثانية × حجم الإدخال/الإخراج = معدل النقل. من المهم مراعاة هاتين القيمتين عند التخطيط لتطبيقك.

بالنسبة لأقراص Ultra والأقراص المدارة Premium SSD v2، فإنه يعمل بشكل مختلف قليلا حيث يمكنك ضبط حجم القرص وIOOPS ومعدل النقل بشكل مستقل. يمكن إجراء تعديلات على IOPS أو معدل النقل لأقراص Ultra والأقراص المدارة Premium SSD v2 في وقت التشغيل، دون فصل القرص عن الجهاز الظاهري.

عمليات IOPS على القرص الفائق

تدعم أقراص Ultra حدود IOPS البالغة 300 IOPS/جيجابايت، بحد أقصى 160.000 IOPS لكل قرص. لتحقيق عمليات IOPS المستهدفة للقرص، تأكد من أن IOPS للقرص المحدد أقل من حد IOPS للجهاز الظاهري.

الحد الأقصى الحالي ل IOPS لجهاز ظاهري واحد بالأحجام المتوفرة بشكل عام هو 160,000. يمكن استخدام الأقراص الفائقة ذات عمليات IOPS الأكبر كأقراص مشتركة لدعم أجهزة ظاهرية متعددة.

الحد الأدنى المضمون لعمليات IOPS لكل قرص هو 1 IOPS/GiB، مع حد أدنى إجمالي يبلغ 100 IOPS. على سبيل المثال، إذا قدمت قرصاً فائقاً بسعة 4 جيجا بايت، فإن الحد الأدنى لعمليات الإدخال/الإخراج في الثانية لهذا القرص هو 100، بدلاً من أربعة.

معدل نقل القرص الفائق

الحد الأقصى لمعدل نقل قرص ultra واحد هو 256-KiB/s لكل IOPS تم توفيره، بحد أقصى 4000 ميغابايت/ثانية لكل قرص (حيث MB/s = 10^6 بايت في الثانية). الحد الأدنى لمعدل النقل المضمون لكل قرص هو 4KiB/s لكل IOPS تم توفيره، مع حد أساسي إجمالي 1 ميغابايت/ثانية.

معدل الإدخال/الإخراج في الثانية للإصدار 2 من محركات الأقراص ذات الحالة الصلبة المتميزة

تحتوي جميع أقراص الإصدار 2 من محركات الأقراص ذات الحالة الصلبة المتميزة على خط أساسي من معدل الإدخال/الإخراج في الثانية قدره 3000 وهو مجاني. بعد 6 جيبي بايت، يمكن أن يزيد الحد الأقصى لعمليات الإدخال والإخراج في الثانية على القرص بمعدل 500 لكل جيبي بايت، حتى 80000 عملية إدخال/إخراج في الثانية. لذلك يمكن أن يحتوي قرص سعته 8 جيبي بايت على ما يصل إلى 4000 إدخال/إخراج في الثانية، ويمكن أن يحتوي 10 جيبي بايت على ما يصل إلى 5000 إدخال/إخراج في الثانية. لكي تتمكن من تعيين 80000 إدخال/إخراج في الثانية على قرص، يجب أن يحتوي هذا القرص على ما لا يقل عن 160 جيبي بايت. تؤدي زيادة إدخال/إخراج في الثانية إلى ما بعد 3000 إلى زيادة سعر القرص لديك.

معدل النقل الخاص بالإصدار 2 من محركات الأقراص ذات الحالة الصلبة المتميزة

تحتوي جميع أقراص الإصدار 2 من محركات الأقراص ذات الحالة الصلبة المتميزة على معدل نقل أساسي يبلغ 125 ميغابايت/ ثانية، وهو مجاني. بعد 6 جيبي بايت، يزيد الحد الأقصى لمعدل النقل الذي يمكن تعيينه بمقدار 0.25 ميغابايت/ثانية لكل عملية إدخال/إخراج في الثانية محددة. إذا كان القرص يحتوي على 3000 عملية إدخال/إخراج في الثانية، فإن الحد الأقصى لمعدل النقل الذي يمكن تعيينه هو 750 ميغابايت/ثانية. لرفع معدل النقل لهذا القرص إلى ما بعد 750 ميغابايت/ثانية، يجب زيادة معدل الإدخال/الإخراج في الثانية خاصته. على سبيل المثال، إذا زودت معدل الإدخال/الإخراج في الثانية إلى 4000، فإن الحد الأقصى لمعدل النقل الذي يمكن تعيينه هو 1000. 1200 ميغابايت/ثانية هو الحد الأقصى لمعدل النقل المعتمد للأقراص التي تحتوي على 5000 عملية إدخال/إخراج في الثانية أو أكثر. تؤدي زيادة معدل النقل إلى ما يتجاوز 125 ميغابايت/ثانية إلى زيادة سعر القرص.

الحد الأقصى لعمليات إدخال/إخراج الجهاز الظاهري

الآن بعد أن اطلعت على الأقراص المتوفرة في Azure، تحتاج إلى مطابقة كل من الأجهزة الظاهرية مع نوع القرص المناسب. لدى الأجهزة الظاهرية حدود لعمليات الإدخال والإخراج في الثانية للتخزين، والتي يمكن أن تؤثر على الأداء العام للتطبيق عند دمجها مع عمليات الإدخال والإخراج في الثانية في القرص.

إذا لم تقم بتغيير حجم الجهاز الظاهري بشكل مناسب لأداء التخزين الذي يتطلبه أحد التطبيقات، فإن الجهاز الظاهري نفسه يصبح سبب الازدحام.

على سبيل المثال، لنفترض أن تطبيقك يقدم طلباً يتطلب 15000 عملية إدخال وإخراج في الثانية. ولقد قمت بتزويد جهاز Standard_D8s_v3 الظاهري بقرص نظام التشغيل P30 واحد واثنين من أقراص بيانات Premium SSD مع P40 SKU. يمكن لكل قرص بيانات معالجة 7500 عملية إدخال وإخراج في الثانية ويمكنه تلبية طلب التطبيقات في النهاية، لكن الجهاز الظاهري نفسه له حد أقصى يبلغ 12800 عملية إدخال وإخراج في الثانية، وذلك عدد عمليات الإدخال والإخراج الفعلي في الثانية الذي سيحصل عليه التطبيق. يوضح الشكل التالي هذا المثال.

Diagram that depicts virtual machine input output capping.

يُعرف السيناريو الموضح في المثال السابق باسم الحد الأقصى لعمليات إدخال/إخراج الجهاز الظاهري. في هذا السيناريو، يطلب التطبيق قدراً من معدل النقل وعمليات الإدخال والإخراج في الثانية التي يمكن للقرص إدارتها، لكن الجهاز الظاهري لا يمكنه تلبية هذه المتطلبات.

يمكنك تشخيص مشكلات الأداء الناتجة عن تحديد عمليات إدخال/إخراج الجهاز الظاهري باستخدام المقاييس التالية:

  • النسبة المئوية المستهلكة لعمليات الإدخال والإخراج في الثانية المخزنة مؤقتاً للجهاز الظاهري
  • النسبة المئوية المستهلكة للنطاق الترددي المخزن مؤقتاً للجهاز الظاهري
  • النسبة المئوية المستهلكة لعمليات الإدخال والإخراج في الثانية غير المخزنة مؤقتاً للجهاز الظاهري
  • النسبة المئوية المستهلكة للنطاق الترددي غير المخزن مؤقتاً للجهاز الظاهري

الحد الأقصى لعمليات إدخال/إخراج القرص

قد تواجه مواقف أخرى لا يلبي فيها حل التخزين متطلبات التطبيق. ومع ذلك، قد يحدث الازدحام إذا حددت مستوى الأداء غير المناسب للأقراص.

ضع في اعتبارك نفس المثال الذي يتطلب فيه التطبيق 15000 عملية إدخال وإخراج في الثانية من الجهاز الظاهري، وقد اخترت الإعداد التالي:

  • Standard D16s_v4 مع 25600 عملية إدخال وإخراج في الثانية
  • قرص نظام التشغيل P20 مع 2300 عملية إدخال وإخراج في الثانية
  • اثنان من أقراص بيانات P30، يدعم كل منهما 5000 عملية إدخال وإخراج في الثانية

في هذا السيناريو، سيتم تقسيم طلب التطبيق إلى ثلاثة طلبات مختلفة:

  • مطلوب 2300 عملية إدخال وإخراج في الثانية من قرص نظام التشغيل
  • يُطلب 5000 عملية إدخال وإخراج في الثانية من كل قرص بيانات

سيكون إجمالي عمليات الإدخال والإخراج في الثانية الذي سيعيده الجهاز الظاهري إلى التطبيق هو 12300 كمجموع لكل عملية إدخال وإخراج في الثانية والذي توفره أقراص نظام التشغيل وأقراص البيانات.

يُعرف هذا السيناريو بالحد الأقصى لعمليات إدخال/إخراج القرص، عندما يتعذر على القرص نفسه تلبية متطلبات التطبيق.

Diagram that depicts disk input output capping.

لتشخيص الحدود القصوى لعمليات الإدخال/الإخراج للقرص، استخدم المقاييس التالية:

  • النسبة المئوية المستهلكة لعمليات الإدخال والإخراج في الثانية لقرص البيانات
  • النسبة المئوية المستهلكة للنطاق الترددي لقرص البيانات
  • النسبة المئوية المستهلكة لعمليات الإدخال والإخراج في الثانية لقرص نظام التشغيل
  • النسبة المئوية المستهلكة للنطاق الترددي لقرص نظام التشغيل

التخزين المؤقت على الأقراص

تعد ذاكرة التخزين المؤقت عبارة عن مكون متخصص يخزن البيانات، عادةً في الذاكرة، بحيث يمكن للتطبيق الوصول إلى البيانات بسرعة أكبر. غالبا ما تكون البيانات الموجودة في ذاكرة التخزين المؤقت هي البيانات التي تمت قراءتها مسبقا أو البيانات الناتجة عن عملية حسابية سابقة. ويتمثل الهدف في أن تصل التطبيقات إلى البيانات من ذاكرة التخزين المؤقت بشكل أسرع من الوصول إليها من القرص. لا يتوفر التخزين المؤقت للقرص على Ultra Disks وPremium SSD v2.

ويستخدم التخزين المؤقت مخزناً مؤقتاً متخصصاً، ومكلفاً في بعض الأحيان، يتميز بأداء قراءة وكتابة أسرع مقارنةً بالتخزين الدائم. ونظراً إلى أن تخزين ذاكرة التخزين المؤقت غالباً ما يكون محدوداً، فقد تحتاج إلى تحديد عمليات البيانات التي ستستفيد أكثر من التخزين المؤقت. ولكن حتى عندما يمكن إتاحة ذاكرة التخزين المؤقت على نطاق واسع، كما هو الحال في Azure، لا يزال من المهم معرفة أنماط أحمال العمل لكل قرص قبل أن تقرر نوع التخزين المؤقت الذي تريد استخدامه.

يحاول التخزين المؤقت للقراءة تسريع استردادالبيانات. فبدلاً من القراءة من ذاكرة التخزين الدائم، يقرأ التطبيق البيانات من ذاكرة التخزين المؤقت الأسرع.

من المهم ملاحظة أن التخزين المؤقت للقراءة يساعد عندما يكون هناك بعض قابلية التنبؤ لقائمة انتظار القراءة، مثل مجموعة من القراءات المتسلسلة. بالنسبة للإدخال/الإخراج العشوائي، حيث تكون البيانات التي تقوم بالوصول إليها متناثرة في المخزن، سيكون التخزين المؤقت قليل الفائدة أو عديم الفائدة، بل ويمكن أن يؤدي إلى انخفاض أداء الأقراص.

يحاول التخزين المؤقت للكتابة تسريع كتابة البيانات في المخزن الثابت. وباستخدام ذاكرة التخزين المؤقت للكتابة، يمكن للتطبيق مراعاة البيانات التي يجب حفظها.

في الواقع، عند استخدام التخزين المؤقت للكتابة، يتم وضع البيانات في قائمة الانتظار في ذاكرة التخزين المؤقت، في انتظار كتابتها إلى قرص. ولك أن تتخيل أن هذه الآلية يمكن أن تكون نقطة فشل محتملة، مثل إيقاف تشغيل نظام قبل كتابة البيانات المخزنة مؤقتاً. تقوم بعض الأنظمة مثل SQL Server بإدارة مهمة كتابة البيانات المخزنة مؤقتاً إلى التخزين الدائم على القرص بنفسها.

الحدود المخزنة مؤقتاً وغير المخزنة مؤقتاً للأجهزة الظاهرية

الآن بعد أن تعرفت على إمكانية قيام التخزين المؤقت بتحسين أداء قراءة البيانات أو كتابتها على القرص، يجب أن تكون على دراية بكيفية تأثير التخزين المؤقت على أداء الجهاز الظاهري.

يعتمد أداء الجهاز الظاهري على حدود IOPS ومعدل النقل التي يتم فرضها بناء على حجم الجهاز الظاهري. جميع الأجهزة الظاهرية في المستوى من نوع Premium لها حدود مختلفة لعمليات الإدخال والإخراج في الثانية ومعدل النقل بناءً على التكوينات المخزنة مؤقتاً وغير المخزنة مؤقتاً. ويمكنك تحسين أداء الجهاز الظاهري لتلبية الطلب المتزايد على عمليات الإدخال والإخراج في الثانية ومعدل النقل عن طريق تمكين التخزين المؤقت لمضيف الجهاز الظاهري.

يعرض الجدول التالي أمثلة توضح الاختلاف في أداء معدل نقل البيانات المخزنة مؤقتاً وغير المخزنة مؤقتاً وعرض النطاق الترددي.

اسم حجم الجهاز الظاهري الحد الأقصى لمعدل نقل التخزين المؤقت والتخزين المؤقت: IOPS/MB/s (حجم ذاكرة التخزين المؤقت في GiB) الحد الأقصى لمعدل نقل القرص غير المخزن مؤقتا IOPS/MB/s
Standard_D2s_v3 4000/32 (50) 3200/48
Standard_D4s_v3 8000/64 (100) 6400/96
Standard_D8s_v3 16000/128 (200) 12800/192
Standard_D64s_v3 128000/1024 (1600) 80000/1200

يمكن أن يساعدك التخزين المؤقت للمضيف على تجنب سيناريوهات ازدحام الجهاز الظاهري.

في المثال السابق للحد الأقصى لعمليات إدخال/إخراج الجهاز الظاهري، تطلب التطبيق 15000 عملية إدخال وإخراج في الثانية. يمكن لكلا قرصي البيانات التعامل مع هذا الطلب، لكن جهاز Standard_D8s_v3 الظاهري يمكن أن يقدم فقط 12800 عملية إدخال وإخراج في الثانية في الحالة غير المخزنة مؤقتاً.

إذا قمت بتكوين التخزين المؤقت للمضيف على الجهاز الظاهري Standard_D8s_v3، يمكنك الحصول على 16000 IOPS مخزن مؤقتا، وهو أكثر من متطلبات التطبيق.