تأثير التخزين المؤقت على أداء الأقراص في Azure

مكتمل

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

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

فلنبدأ بتعريف بعض المصطلحات والضمانات التي تقدمها Azure عنها.

عمليات الإدخال/الإخراج في الثانية

يحدد نوع التخزين الذي تحدده (قياسي أو متميز) مدى سرعة الأقراص. ونحن نقيس هذا الأداء في عمليات الإدخال/الإخراج في الثانية، أو IOPS (ويُطلق عليها "عمليات العين").

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

إشعار

يمكن أن تؤثر العوامل الخارجية، بما في ذلك زمن الانتقال، على عمليات الإدخال والإخراج في الثانية.

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

IOPS في Azure

عند إرفاق قرص تخزين متميز بجهاز ظاهري واسع النطاق، يوفر Azure عددًا مضمونًا من IOPS وفقًا لمواصفات القرص. على سبيل المثال، يوفر قرص P50 عدد 7500 من عمليات IOPS. ويكون لكل حجم من أحجام الأجهزة الظاهرية واسعة النطاق أيضاً حد معين من عمليات IOPS التي يمكن للجهاز الحفاظ عليها. على سبيل المثال، يكون الحد المخصص للجهاز الظاهري Standard GS5 هو 80000 عملية IOPS.

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

ما هو معدل النقل؟

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

يوفر Azure معدل النقل في أقراص التخزين المتميزة استنادًا إلى مواصفات الأقراص. على سبيل المثال، يوفر قرص P50 معدل نقل قرص قدره 250 ميجابايت في الثانية. ويكون لكل حجم من أحجام الأجهزة الظاهرية واسعة النطاق أيضاً حد معدل نقل معين يمكن للجهاز الحفاظ عليه. على سبيل المثال، يكون للجهاز الظاهري Standard GS5 حداً أقصى من معدل النقل قدره 2000 ميجابايت في الثانية.

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

الإنتاجية و IOPS لها علاقة مباشرة، وتغيير أحدهما له تأثير مباشر على الآخر. للحصول على حد نظري من معدل النقل، يمكنك استخدام الصيغة: IOPS x I/O size = throughput. من المهم مراعاة كل من هاتين القيمتين عند التخطيط لتطبيقك.

ما هو زمن الانتقال؟

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

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

يوفر المخزن المتميز أزمنة انتقال منخفضة متسقة، ويمكنك تحقيق زمن انتقال أفضل عند الضرورة من خلال التخزين المؤقت.

اختبار أداء الأقراص

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

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

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

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