أداء الجهاز الظاهري والقرص

ينطبق على: ✔️ أجهزة ظاهرية بنظام التشغيل Linux ✔️ أجهزة ظاهرية بنظام التشغيل Windows ✔️ مجموعات التوسعة المرنة ✔️ مجموعات التوسعة الموحدة

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

كيف يعمل أداء القرص؟

تحتوي أجهزة Azure الظاهرية على عمليات إدخال/إخراج في الثانية (IOPS) وحدود أداء معدل النقل استناداً إلى نوع الجهاز الظاهري وحجمه. يمكن إرفاق أقراص نظام التشغيل وأقراص البيانات بالأجهزة الظاهرية. تحتوي الأقراص على عمليات IOPS وحدود معدل النقل الخاصة بها.

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

نقطة ارتكاز إدخال القرص وإخراجه

الإعداد:

  • Standard_D8s_v3
    • عمليات الإدخال والإخراج في الثانية غير المخزنة مؤقتاً: 12800
  • قرص نظام التشغيل E30
    • IOPS: 500
  • قرصا بيانات E30 × 2
    • IOPS: 500

رسم تخطيطي يوضح الحد الأقصى لمستوى القرص.

يقدم التطبيق الذي يعمل على الجهاز الظاهري طلباً يتطلب 10000 عملية IOPS للجهاز الظاهري. كل ذلك مسموح به من قبل الجهاز الظاهري؛ لأن الجهاز الظاهري Standard_D8s_v3 يمكنه تنفيذ ما يصل إلى 12800 IOPS.

يتم تقسيم طلبات IOPS البالغة 10,000 إلى ثلاثة طلبات مختلفة على الأقراص المختلفة:

  • يتم طلب 1000 عملية IOPS إلى قرص نظام التشغيل.
  • تُطلب 4500 عملية IOPS من كل قرص بيانات.

جميع الأقراص المرفقة هي أقراص E30، ويمكنها فقط التعامل مع 500 IOPS. لذلك، تستجيب لـ 500 IOPS لكل منهما. تتم تغطية أداء التطبيق بواسطة الأقراص المرفقة، ويمكنها فقط معالجة 1500 IOPS. يمكن أن يعمل التطبيق في ذروة الأداء عند 10000 عملية IOPS إذا تم استخدام أقراص ذات أداء أفضل، مثل أقراص SSD P30 Premium.

نقطة ارتكاز لعمليات إدخال/إخراج (IO) الجهاز الظاهري

الإعداد:

  • Standard_D8s_v3
    • عمليات الإدخال والإخراج في الثانية غير المخزنة مؤقتاً: 12800
  • قرص نظام التشغيل P30
    • IOPS: 5,000
  • قرصا بيانات P30 × 2
    • IOPS: 5,000

رسم تخطيطي يوضح الحد الأقصى لمستوى الجهاز الظاهري.

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

يتم تقسيم طلبات IOPS البالغة 12,800 إلى ثلاثة طلبات مختلفة على الأقراص المختلفة:

  • يتم طلب 4267 عملية IOPS إلى قرص نظام التشغيل.
  • تُطلب 4266 عملية IOPS من كل قرص بيانات.

جميع الأقراص المرفقة هي أقراص P30، يمكنها التعامل مع 5000 عملية إدخال وإخراج في الثانية. لذلك، تستجيب بالكميات المطلوبة.

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

تحتوي الأجهزة الظاهرية التي تم تمكينها لكل من التخزين المتميز والتخزين المؤقت للتخزين المتميز على حدين مختلفين لعرض النطاق الترددي. لنلقِ نظرةً على الجهاز الظاهري Standard_D8s_v3 كمثال. فيما يلي الوثائق المتعلقة بسلسلة Dsv3-series وStandard_D8s_v3:

مخطط يعرض مواصفات D s v 3.

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

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

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

لقطة شاشة تعرض التخزين المؤقت للمضيف.

يمكنك ضبط التخزين المؤقت للمضيف لمطابقة متطلبات حمل العمل لكل قرص. يمكنك تعيين التخزين المؤقت للمضيف ليكون:

  • للقراءة فقط: لأحمال العمل التي تقوم فقط بعمليات القراءة
  • قراءة/كتابة: لأحمال العمل التي تحقق توازناً بين عمليات القراءة والكتابة

إذا كان حمل العمل لا يتبع أياً من هذين النمطين، فلا نوصي باستخدام التخزين المؤقت للمضيف.

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

الإعداد:

  • Standard_D8s_v3
    • عمليات الإدخال والإخراج في الثانية (IOPS) المخزنة مؤقتاً: 16000
    • عمليات الإدخال والإخراج في الثانية غير المخزنة مؤقتاً: 12800
  • قرص بيانات P30
    • IOPS: 5,000
    • التخزين المؤقت للمضيف: للقراءة فقط

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

رسم تخطيطي يوضح نتيجة قراءة التخزين المؤقت لمضيف القراءة.

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

رسم تخطيطي يوضح فقدان قراءة التخزين المؤقت لمضيف القراءة.

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

رسم تخطيطي يوضح قراءة كتابة التخزين المؤقت للمضيف.

بعد ذلك، لنلقِ نظرةً على ما يحدث مع طلبات IO عند تعيين إعداد ذاكرة التخزين المؤقت للمضيف على قراءة/كتابة.

الإعداد:

  • Standard_D8s_v3
    • عمليات الإدخال والإخراج في الثانية (IOPS) المخزنة مؤقتاً: 16000
    • عمليات الإدخال والإخراج في الثانية غير المخزنة مؤقتاً: 12800
  • قرص بيانات P30
    • IOPS: 5,000
    • التخزين المؤقت للمضيف: قراءة/كتابة

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

رسم تخطيطي يوضح كتابة التخزين المؤقت لمضيف القراءة/الكتابة.

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

الإعداد:

  • Standard_D8s_v3
    • عمليات الإدخال والإخراج في الثانية (IOPS) المخزنة مؤقتاً: 16000
    • عمليات الإدخال والإخراج في الثانية غير المخزنة مؤقتاً: 12800
  • قرص نظام التشغيل P30
    • IOPS: 5,000
    • التخزين المؤقت للمضيف: قراءة/كتابة
  • قرصا بيانات P30 × 2
    • IOPS: 5,000
    • التخزين المؤقت للمضيف: قراءة/كتابة

رسم تخطيطي يوضح مثال التخزين المؤقت للمضيف.

يستخدم التطبيق الجهاز الظاهري Standard_D8s_v3 مع تمكين التخزين المؤقت. يقدم طلبا ل 16,000 IOPS. يتم إكمال الطلبات بمجرد قراءتها أو كتابتها في ذاكرة التخزين المؤقت. ثم تتم كتابة عمليات الكتابة ببطء إلى الأقراص المرفقة.

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

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

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

الإعداد:

  • Standard_D8s_v3
    • عمليات الإدخال والإخراج في الثانية (IOPS) المخزنة مؤقتاً: 16000
    • عمليات الإدخال والإخراج في الثانية غير المخزنة مؤقتاً: 12800
  • قرص نظام التشغيل P30
    • IOPS: 5,000
    • التخزين المؤقت للمضيف: قراءة/كتابة
  • قرصا بيانات P30 × 2
    • IOPS: 5,000
    • التخزين المؤقت للمضيف: قراءة/كتابة
  • قرصا بيانات P30 × 2
    • IOPS: 5,000
    • التخزين المؤقت للمضيف: معطل

رسم تخطيطي يوضح مثال التخزين المؤقت للمضيف مع التخزين عن بعد.

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

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