تخزين Azure المتميز: التصميم للحصول على أداء عال

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

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

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

تساعد هذه المقالة على الإجابة عن الأسئلة الشائعة التالية حول تحسين أداء التطبيق على التخزين المتميز:

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

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

إشعار

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

إذا كنت تبحث عن قياس القرص الخاص بك، فشاهد المقالات التالية:

إذا كان الجهاز الظاهري يدعم الشبكات المتسارعة، فتأكد من تمكينها. إذا لم يتم تمكينه، يمكنك تمكينه على الأجهزة الظاهرية المنشورة بالفعل على كل من Windows وLinux.

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

مؤشرات أداء التطبيقات

نقيم ما إذا كان التطبيق يعمل بشكل جيد أم لا باستخدام مؤشرات الأداء مثل:

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

المصطلحات التقنية لمؤشرات الأداء هذه هي IOPS ومعدل النقل أو النطاق الترددي وزمن الانتقال.

في هذا القسم، نناقش مؤشرات الأداء الشائعة في سياق التخزين المتميز. في القسم Performance application checklist for disks، ستتعلم كيفية قياس مؤشرات الأداء هذه للتطبيق الخاص بك. لاحقا في تحسين أداء التطبيق، ستتعرف على العوامل التي تؤثر على مؤشرات الأداء هذه والتوصيات لتحسينها.

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

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

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

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

الإنتاجية

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

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

هناك علاقة بين معدل النقل وIOOPS، كما هو موضح في الصيغة التالية.

Diagram that shows the relation of IOPS and throughput.

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

زمن الانتقال

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

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

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

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

تستخدم عمليات وحدة التحكم في:

  • تحديث نوع التخزين.
  • افصل قرصًا وقم بإرفاقه من جهاز ظاهري إلى آخر.
  • إنشاء قرص مدار من VHD.
  • إنشاء قرص مدار من لقطة.
  • تحويل الأقراص غير المدارة إلى أقراص مدارة.

قائمة التحقق من تطبيق الأداء للأقراص

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

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

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

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

قائمة التحقق من متطلبات أداء التطبيق

متطلبات الأداء 50 بالمائة 90 بالمائة 99 بالمائة
الحد الأقصى للمعاملات في الثانية
٪ قراءة العمليات
٪ عمليات الكتابة
٪ عمليات عشوائية
٪ العمليات المتسلسلة
حجم طلب الإدخال/إخراج
متوسط معدل النقل
الحد الأقصى لمعدل النقل
الحد الأدنى لزمن الانتقال
زمن الانتقال الوسطي
الحد الأقصى لوحدة المعالجة المركزية
متوسط وحدة المعالجة المركزية
الحد الأقصى للذاكرة
متوسط الذاكرة
عمق قائمة الانتظار

إشعار

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

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

عدادات لقياس متطلبات أداء التطبيق

أفضل طريقة لقياس متطلبات الأداء للتطبيق الخاص بك هي استخدام PerfMonأدوات المراقبة التي يوفرها نظام التشغيل للخادم. يمكنك استخدام PerfMon لنظامي التشغيل Windows وLinux iostat . تلتقط هذه الأدوات عدادات مطابقة لكل مقياس موضح في القسم السابق. يجب عليك التقاط قيم هذه العدادات عند تشغيل التطبيق الخاص بك لأحمال العمل العادية والذروة وأحمال العمل خارج الساعة.

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

على Linux، iostat ينشئ الأمر تقرير استخدام وحدة المعالجة المركزية والقرص. يوفر تقرير استخدام القرص إحصائيات لكل جهاز فعلي أو قسم. إذا كان لديك خادم قاعدة بيانات تحتوي بياناته وسجلاته على أقراص منفصلة، فقم بتجميع هذه البيانات لكلا القرصين. يصف الجدول التالي عدادات الأقراص والمعالجات والذاكرة.

العداد ‏‏الوصف PerfMon نظام المعلومات الإحصائية iostat
عمليات الإدخال والإخراج في الثانية (IOPS) أو المعاملات/ثانية عدد طلبات الإدخال/الإخراج الصادرة إلى قرص التخزين/ثانية قراءات القرص/ثانية
عمليات كتابة القرص/ثانية
Tps
r/s
ق/ث
قراءة القرص وكتابته النسبة المئوية لعمليات القراءة والكتابة التي تم إجراؤها على القرص النسبة المئوية لوقت قراءة القرص
النسبة المئوية لوقت كتابة القرص
r/s
ق/ث
الإنتاجية مقدار البيانات المقروءة أو المكتوبة على القرص/ثانية قراءة القرص بوحدات البايت/ثانية
كتابة القرص بوحدات البايت/ثانية
kB_read/ثانية
kB_wrtn/s
زمن الانتقال إجمالي الوقت لإكمال طلب إدخال/إخراج القرص متوسط ثانية/قراءة القرص
متوسط ثانية/كتابة القرص
انتظار
svctm
حجم الإدخال/الإخراج حجم مشكلات طلب الإدخال/الإخراج لأقراص التخزين متوسط وحدات بايت القرص/القراءة
متوسط وحدات بايت القرص/الكتابة
avgrq-sz
عمق قائمة الانتظار عدد طلبات الإدخال/الإخراج المعلقة التي تنتظر القراءة منها أو كتابتها على قرص التخزين طول قائمة انتظار القرص الحالي avgqu-sz
الحد الأقصى للذاكرة مقدار الذاكرة المطلوبة لتشغيل التطبيق بسلاسة ٪ وحدات البايت الملتزم بها قيد الاستخدام استخدام vmstat
الحد الأقصى لوحدة المعالجة المركزية مقدار وحدة المعالجة المركزية المطلوبة لتشغيل التطبيق بسلاسة نسبة وقت المعالج %util

معرفة المزيد عن iostat وPerfMon.

تحسين أداء التطبيق

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

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

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

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

تحسين عمليات الإدخال والإخراج في الثانية ومعدل النقل وزمن الانتقال في لمحة سريعة

يلخص الجدول التالي عوامل الأداء والخطوات اللازمة لتحسين IOPS ومعدل النقل وزمن الانتقال. تصف الأقسام التي تلي هذا الملخص كل عامل بمزيد من التعمق.

لمزيد من المعلومات حول أحجام الأجهزة الظاهرية وعمليات الإدخال/إخراج في الثانية ومعدل النقل وزمن الانتقال المتوفرة لكل نوع من أنواع الأجهزة الظاهرية، راجع أحجام الأجهزة الظاهرية في Azure.

عوامل الأداء عمليات الإدخال / الإخراج في الثانية (IOPS) الإنتاجية زمن الانتقال
سيناريو مثال تطبيق OLTP للمؤسسات يتطلب معاملات عالية جدًا في الثانية الواحدة. تطبيق تخزين بيانات المؤسسة يعالج كميات مهولة من البيانات. بالقرب من التطبيقات في الوقت الفعلي التي تتطلب استجابات فورية لطلبات المستخدمين، مثل الألعاب عبر الإنترنت.
عوامل الأداء      
حجم الإدخال/الإخراج ينتج عن حجم الإدخال/إخراج الأصغر IOPS أعلى. ينتج عن حجم الإدخال/إخراج الأكبر معدل نقل أعلى.  
حجم الجهاز الظاهري استخدم حجم الأجهزة الظاهرية الذي يوفر عمليات IOPS أكبر من متطلبات التطبيق الخاص بك. استخدم حجم الجهاز الظاهري بحد إنتاجية أكبر من متطلبات التطبيق الخاص بك. استخدم حجم أجهزة ظاهرية يوفر حدود مقياس أكبر من متطلبات التطبيق الخاص بك.
حجم القرص استخدم حجم قرص يوفر IOPS أكبر من متطلبات التطبيق الخاص بك. استخدم حجم قرص مع حد معدل نقل أكبر من متطلبات التطبيق الخاص بك. استخدم حجم قرص يوفر حدود مقياس أكبر من متطلبات التطبيق الخاص بك.
حدود مقياس الجهاز الظاهري والقرص يجب أن يكون حد IOPS لحجم الجهاز الظاهري الذي تم اختياره أكبر من إجمالي IOPS مدفوعا بأقراص التخزين المرفقة به. يجب أن يكون حد معدل النقل لحجم الجهاز الظاهري المختار أكبر من إجمالي معدل النقل المدفوع بأقراص التخزين المتميزة المرفقة به. يجب أن تكون حدود المقياس لحجم الجهاز الظاهري المختار أكبر من حدود المقياس الإجمالية لأقراص التخزين المتميزة المرفقة.
التخزين المؤقت على الأقراص تمكين ذاكرة التخزين المؤقت ReadOnly على أقراص التخزين المتميزة مع عمليات القراءة الثقيلة للحصول على IOPS قراءة أعلى.   تمكين ذاكرة التخزين المؤقت ReadOnly على أقراص التخزين المتميزة مع عمليات القراءة الثقيلة للحصول على زمن انتقال قراءة منخفض جدا.
تقسيم الأقراص استخدم أقراصا متعددة وقم بشريطها معا للحصول على حد أعلى من IOPS ومعدل النقل. يجب أن يكون الحد المجمع لكل جهاز ظاهري أعلى من الحدود المجمعة للأقراص المميزة المرفقة.    
حجم الشريط حجم شريطي أصغر لنمط الإدخال/إخراج صغير عشوائي ينظر إليه في تطبيقات OLTP. على سبيل المثال، استخدم حجم شريطي 64 كيلوبايت لتطبيق SQL Server OLTP. حجم شريطي أكبر لنمط الإدخال/إخراج كبير تسلسلي ينظر إليه في تطبيقات مستودع البيانات. على سبيل المثال، استخدم حجم شريطي 256 كيلوبايت لتطبيق مستودع بيانات SQL Server.  
تعدد العمليات استخدم تعدد القراءة لدفع عدد أكبر من الطلبات إلى التخزين المتميز ليؤدي إلى IOPS ومعدل نقل أعلى. على سبيل المثال، على SQL Server، قم بتعيين قيمة MAXDOP عالية لتخصيص المزيد من وحدات المعالجة المركزية إلى SQL Server.    
عمق قائمة الانتظار ينتج عن عمق قائمة الانتظار الأكبر IOPS أعلى. ينتج عن عمق قائمة الانتظار الأكبر معدل نقل أعلى. ينتج عن عمق قائمة الانتظار الأصغر زمن انتقال أقل.

طبيعة طلبات الإدخال/الإخراج

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

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

A diagram that shows the equation I O P S times I O size equals throughput.

تسمح لك بعض التطبيقات بتغيير حجم الإدخال/إخراج الخاص بها، بينما لا تسمح بعض التطبيقات بذلك. على سبيل المثال، يحدد SQL Server حجم الإدخال/الإخراج الأمثل نفسه ولا يوفر للمستخدمين أي مقتابض لتغييره. من ناحية أخرى، توفر Oracle معلمة تسمى DB_BLOCK_SIZE، والتي يمكنك استخدامها لتكوين حجم طلب الإدخال/الإخراج لقاعدة البيانات.

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

  • ينشئ تطبيق OLTP ملايين طلبات الإدخال/الإخراج الصغيرة والعشوائية. للتعامل مع هذه الأنواع من طلبات الإدخال/الإخراج، يجب تصميم البنية الأساسية للتطبيق للحصول على IOPS أعلى.
  • ينشئ تطبيق تخزين البيانات طلبات إدخال/إخراج كبيرة ومتتابعة. لمعالجة هذه الأنواع من طلبات الإدخال/الإخراج، يجب تصميم البنية الأساسية للتطبيق للحصول على نطاق ترددي أو معدل نقل أعلى.

إذا كنت تستخدم تطبيقا يسمح لك بتغيير حجم الإدخال/الإخراج، فاستخدم قاعدة الإبهام هذه لحجم الإدخال/الإخراج بالإضافة إلى إرشادات الأداء الأخرى:

  • حجم إدخال/إخراج أصغر للحصول على IOPS أعلى. على سبيل المثال، 8 كيلوبايت لتطبيق OLTP.
  • حجم إدخال/إخراج أكبر للحصول على عرض نطاق ترددي/معدل نقل أعلى. على سبيل المثال، 1024 كيلوبايت لتطبيق مستودع بيانات.

فيما يلي مثال على كيفية حساب IOPS ومعدل النقل/النطاق الترددي لتطبيقك.

ضع في اعتبارك تطبيقا يستخدم قرص P30. الحد الأقصى لعمليات الإدخال والإخراج في الثانية ومعدل النقل/النطاق الترددي الذي يمكن أن يحققه قرص P30 هو 5000 عملية IOPS و200 ميغابايت/ثانية، على التوالي. إذا كان تطبيقك يتطلب الحد الأقصى لعمليات الإدخال والإخراج في الثانية من قرص P30 وكنت تستخدم حجم إدخال/إخراج أصغر، مثل 8 كيلوبايت، فإن النطاق الترددي الناتج الذي يمكنك الحصول عليه هو 40 ميغابايت/ثانية. إذا كان تطبيقك يتطلب الحد الأقصى لمعدل النقل/النطاق الترددي من قرص P30 وكنت تستخدم حجم إدخال/إخراج أكبر، مثل 1024 كيلوبايت، فإن IOPS الناتجة أقل، مثل 200 IOPS.

قم بضبط حجم الإدخال/الإخراج بحيث يلبي متطلبات IOPS للتطبيق ومعدل النقل/النطاق الترددي. يلخص الجدول التالي أحجام الإدخال/الإخراج المختلفة وIOPS المقابلة ومعدل النقل لقرص P30.

متطلبات التطبيق حجم الإدخال/الإخراج عمليات الإدخال / الإخراج في الثانية (IOPS) معدل النقل/النطاق الترددي
الحد الأقصى لعمليات الإدخال والإخراج في الثانية 8 كيلوبايت 5,000 40 ميغابايت/ثانية
الحد الأقصى لمعدل النقل 1,024 كيلوبايت 200 200 ميجابايت/ثانية
الحد الأقصى لمعدل النقل + IOPS العالي 64 كيلو بايت 3200 200 ميجابايت/ثانية
الحد الأقصى IOPS + معدل النقل العالي 32 كيلوبايت 5,000 160 ميجابايت/ثانية

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

إشعار

كلما قمت بزيادة IOPS أو معدل النقل، يزداد الآخر أيضا. تأكد من عدم الوصول إلى حدود معدل النقل أو IOPS للقرص أو الجهاز الظاهري عند زيادة أي منهما.

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

أحجام الأجهزة الظاهرية على نطاق واسع

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

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

حجم الجهاز الظاهري وحدة المعالجة المركزية الذاكرة أحجام أقراص الجهاز الظاهري الحد الأقصى لأقراص البيانات حجم ذاكرة التخزين المؤقتة عمليات الإدخال / الإخراج في الثانية (IOPS) حدود إدخال/إخراج ذاكرة التخزين المؤقت للنطاق الترددي
Standard_DS14 16 112 GB نظام التشغيل = 1023 غيغابايت
SSD المحلي = 224 جيجابايت
32 ⁧576 GB 50,000 IOPS
512 ميجابايت/ثانية
4000 IOPS و33 ميجابايت/ ثانية
Standard_GS5 32 448 غيغابايت نظام التشغيل = 1023 غيغابايت
SSD المحلي = 896 جيجابايت
64 ⁧4224 GB 80,000 IOPS
2000 ميغابايت/ ثانية
5000 IOPS و50 ميغابايت/ ثانية

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

حدود الحجم

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

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

تكلفة التشغيل

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

على سبيل المثال، ضع في اعتبارك تطبيقًا يتطلب 16000 عملية إدخال في الثانية. لتحقيق هذا الأداء، تحتاج إلى جهاز ظاهري Standard_D14 Azure IaaS، والذي يمكن أن يعطي الحد الأقصى لعمليات الإدخال والإخراج في الثانية 16000 باستخدام 32 قرص تخزين قياسي ТБ 1. يمكن لكل قرص تخزين قياسي سعة 1 تيرابايت تحقيق 500 عملية إدخال في الثانية كحد أقصى.

  • التكلفة المقدرة لهذا الجهاز الظاهري شهريا هي 1570 دولارا.
  • التكلفة الشهرية ل 32 قرص تخزين قياسي هي 1638 دولارا.
  • وتبلغ التكلفة الشهرية الإجمالية المقدرة 208 3 دولارات.

إذا قمت باستضافة نفس التطبيق على التخزين المتميز، فأنت بحاجة إلى حجم جهاز ظاهري أصغر وأقراص تخزين متميزة أقل، ما يقلل من التكلفة الإجمالية. يمكن أن يفي الجهاز الظاهري Standard_DS13 بمتطلبات IOPS البالغ عددها 16000 باستخدام أربعة أقراص P30. يحتوي الجهاز الظاهري DS13 على 25600 IOPS كحد أقصى، ولكل قرص P30 حد أقصى لعمليات الإدخال والإخراج في الثانية (IOPS) يبلغ 5000. بشكل عام، يمكن لهذا التكوين تحقيق 5000 × 4 = 20000 IOPS.

  • التكلفة المقدرة لهذا الجهاز الظاهري شهريا هي 1003 دولار.
  • التكلفة الشهرية لأربعة أقراص تخزين متميزة P30 هي 544.34 دولار.
  • وتبلغ التكلفة الشهرية الإجمالية المقدرة 544 1 دولارا.

يلخص الجدول التالي تصنيف تكلفة هذا السيناريو للتخزين القياسي والمميز.

التكلفة الشهرية قياسي متميز
تكلفة الجهاز الظاهري شهريًا 1,570.58 دولارًا (Standard_D14) $1,003.66 (Standard_DS13)
تكلفة الأقراص شهريا 1,638.40 دولارًا (32 قرصًا سعة 1 تيرابايت) 544.34 دولارًا (4 × أقراص P30)
التكلفة الإجمالية شهريا $3,208.98 $1,544.34

توزيعات Linux

مع التخزين المتميز، يمكنك الحصول على نفس مستوى الأداء للأجهزة الظاهرية التي تعمل بنظامي التشغيل Windows وLinux. نحن ندعم العديد من النكهات من توزيعات Linux. لمزيد من المعلومات، راجع توزيعات Linux المعتمدة على Azure.

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

عند تشغيل Linux مع التخزين المتميز، تحقق من آخر التحديثات حول برامج التشغيل المطلوبة لضمان الأداء العالي.

أحجام أقراص التخزين المتميز

يوفر التخزين المتميز أحجاما مختلفة حتى تتمكن من اختيار واحد يناسب احتياجاتك. يحتوي كل حجم قرص على حد مقياس مختلف لعمليات IOPS والنطاق الترددي والتخزين. اختر حجم قرص التخزين المتميز المناسب اعتمادا على متطلبات التطبيق وحجم الجهاز الظاهري على نطاق واسع. يعرض الجدول التالي أحجام الأقراص وقدراتها. أحجام P4 وP6 وP15 وP60 وP70 وP80 مدعومة حاليا فقط للأقراص المدارة.

أحجام Premium SSD P1 P2 P3 P4 P6 P10 P15 P20 P30 P40 P50 P60 P70 P80
حجم القرص بالجيبي بايت (GiB) 4 8 16 32 64 128 256 512 1,024 2,048 4,096 8,192 16,384 32,767
عمليات الإدخال والإخراج في الثانية (IOPS) المقدمة الأساسية لكل قرص 120 120 120 120 240 500 1,100 2,300 5,000 7,500 7,500 16,000 18,000 20,000
**عمليات الإدخال والإخراج في الثانية الموسعة المتوفرة لكل قرص ‏‫غير متوفر‬ غير متاح غير متاح غير متاح غير متاح غير متاح غير متاح ‏‫غير متوفر‬ 8000 16,000 20,000 20,000 20,000 20,000
معدل النقل المقدم الأساسي لكل قرص 25 ميغابايت/ثانية 25 ميغابايت/ثانية 25 ميغابايت/ثانية 25 ميغابايت/ثانية 50 ميغابايت/ثانية 100 ميغابايت/ثانية 125 ميغابايت/ثانية 150 ميغابايت/ثانية 200 ميغا بايت/ثانية 250 ميجا بايت/ثانية 250 ميجا بايت/ثانية 500 ميجابايت/ثانية 750 ميجابايت/ثانية 900 ميجابايت/ثانية
**معدل النقل الموسع المتوفر لكل قرص ‏‫غير متوفر‬ غير متاح غير متاح غير متاح غير متاح غير متاح غير متاح ‏‫غير متوفر‬ 300 ميغابايت/ثانية 600 ميغابايت/ثانية 900 ميجابايت/ثانية 900 ميجابايت/ثانية 900 ميجابايت/ثانية 900 ميجابايت/ثانية
أقصى اندفاع من عمليات الإدخال/ الإخراج لكل قرص 3,500 3,500 3,500 3,500 3,500 3,500 3,500 3,500 30,000* 30,000* 30,000* 30,000* 30,000* 30,000*
أقصى اندفاع معدل النقل لكل قرص 170 ميغابايت/ثانية 170 ميغابايت/ثانية 170 ميغابايت/ثانية 170 ميغابايت/ثانية 170 ميغابايت/ثانية 170 ميغابايت/ثانية 170 ميغابايت/ثانية 170 ميغابايت/ثانية 1000 ميغابايت/ثانية* 1000 ميغابايت/ثانية* 1000 ميغابايت/ثانية* 1000 ميغابايت/ثانية* 1000 ميغابايت/ثانية* 1000 ميغابايت/ثانية*
مدة الاندفاع القصوى 30 دقيقة 30 دقيقة 30 دقيقة 30 دقيقة 30 دقيقة 30 دقيقة 30 دقيقة 30 دقيقة غير محدود* غير محدود* غير محدود* غير محدود* غير محدود* غير محدود*
مؤهل للحجز لا لا لا لا لا لا لا لا نعم، حتى عامٍ واحدٍ نعم، حتى عامٍ واحدٍ نعم، حتى عامٍ واحدٍ نعم، حتى عامٍ واحدٍ نعم، حتى عامٍ واحدٍ نعم، حتى عامٍ واحدٍ

* ينطبق فقط على الأقراص المزودة بتمكين الاندفاع عند الطلب.
** ينطبق فقط على الأقراص مع تمكين الأداء بالإضافة إلى (معاينة).

يعتمد عدد الأقراص التي تختارها على حجم القرص المختار. يمكنك استخدام قرص P50 واحد أو أقراص P10 متعددة لتلبية متطلبات التطبيق الخاص بك. ضع في اعتبارك الاعتبارات المذكورة هنا عند اتخاذ الخيار.

حدود المقياس (IOPS ومعدل النقل)

تختلف حدود IOPS ومعدل النقل لكل حجم قرص متميز ومستقلة عن حدود مقياس الجهاز الظاهري. تأكد من أن إجمالي IOPS ومعدل النقل من الأقراص ضمن حدود مقياس حجم الجهاز الظاهري المختار.

على سبيل المثال، إذا كان أحد متطلبات التطبيق بحد أقصى 250 ميغابايت/ثانية من معدل النقل وكنت تستخدم جهازا ظاهريا DS4 مع قرص P30 واحد، يمكن أن يتخلى الجهاز الظاهري DS4 عن معدل نقل يصل إلى 256 ميغابايت/ثانية. ومع ذلك، يحتوي قرص P30 واحد على حد معدل نقل يبلغ 200 ميغابايت/ثانية. لذلك، التطبيق مقيد ب 200 ميغابايت/ثانية بسبب حد القرص. للتغلب على هذا الحد، قم بتوفير أكثر من قرص بيانات واحد إلى الجهاز الظاهري أو تغيير حجم الأقراص إلى P40 أو P50.

إشعار

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

على سبيل المثال، في البداية تكون القراءات والكتابة 60 ميغابايت/ثانية و40 ميغابايت/ثانية، على التوالي. بمرور الوقت، ترتفع درجة حرارة ذاكرة التخزين المؤقت وتقدم المزيد والمزيد من القراءات من ذاكرة التخزين المؤقت. بعد ذلك، يمكنك الحصول على معدل نقل أعلى للكتابة من القرص.

عدد الأقراص

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

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

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

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

تحذير

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

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

لمعرفة المزيد حول كيفية عمل BlobCache، راجع منشور مدونة تخزين داخل Azure premium.

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

نوع القرص إعداد ذاكرة التخزين المؤقت الافتراضي
قرص نظام التشغيل ReadWrite
قرص البيانات ReadOnly

نوصي بإعدادات ذاكرة التخزين المؤقت للقرص التالية لأقراص البيانات.

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

ReadOnly

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

  1. القراءات التي يتم إجراؤها من ذاكرة التخزين المؤقت، الموجودة على ذاكرة الجهاز الظاهري وSSD المحلي، أسرع من القراءات من قرص البيانات، الموجود على Azure Blob Storage.
  2. لا يحسب التخزين المتميز القراءات التي يتم تقديمها من ذاكرة التخزين المؤقت باتجاه IOPS القرص ومعدل النقل. لهذا السبب، يمكن للتطبيق الخاص بك تحقيق أعلى إجمالي عمليات الإدخال والإخراجفية ومعدل النقل.

ReadWrite

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

بلا

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

على سبيل المثال، يمكنك تطبيق هذه الإرشادات على SQL Server الذي يعمل على التخزين المتميز باتباع الخطوات التالية:

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

تحسين الأداء على الأجهزة الظاهرية لينكس

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

  • reiserFS: استخدم خيار التثبيت barrier=none لتعطيل الحواجز. لتمكين الحواجز بشكل صريح، استخدم barrier=flush.
  • ext3/ext4: استخدم خيار التحميل barrier=0 لتعطيل الحواجز. لتمكين الحواجز بشكل صريح، استخدم الحاجز =1.
  • XFS: استخدم خيار تحميل nobarrier لتعطيل الحواجز. لتمكين الحواجز بشكل صريح، استخدم الحاجز. اعتبارا من الإصدار 4.10 من نواة Linux الرئيسية، يضمن تصميم نظام ملفات XFS دائما القدرة على الصمود. تعطيل الحواجز ليس له أي تأثير ويتم إهمال خيار nobarrier . ومع ذلك، قد تكون بعض توزيعات Linux قد دعمت التغييرات على إصدار توزيع بإصدار kernel سابق. تحقق مع مورد التوزيع الخاص بك من الحالة في التوزيع والإصدار الذي تقوم بتشغيله.

تقسيم الأقراص

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

على Windows، يمكنك استخدام "مساحات التخزين" لتخطيط الأقراص معًا. يجب تكوين عمود واحد لكل قرص في تجمع. وإلا، يمكن أن يكون الأداء الإجمالي لحجم المخطط أقل من المتوقع بسبب التوزيع غير المتساوي لنسبة استخدام الشبكة عبر الأقراص.

باستخدام واجهة مستخدم Server Manager، يمكنك تعيين إجمالي عدد الأعمدة إلى 8 وحدة تخزين مخططة. عند إرفاق أكثر من ثمانية أقراص، استخدم PowerShell لإنشاء وحدة التخزين. باستخدام PowerShell، يمكنك تعيين عدد الأعمدة التي تساوي عدد الأقراص. على سبيل المثال، إذا كان هناك 16 قرصا في مجموعة شريطية واحدة، فحدد 16 الأعمدة في NumberOfColumns معلمة New-VirtualDisk Cmdlet PowerShell.

استخدم في Linux الأداة المساعدة MDADM لتقسيم الأقراص معاً. للحصول على خطوات حول كيفية تخطيط الأقراص على Linux، راجع تكوين Software RAID على Linux.

حجم الشريط

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

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

اعتماداً على نوع حمل العمل الذي يشغله التطبيق، اختر حجم خط الشريحة المناسب. لطلبات الإدخال/إخراج الصغيرة العشوائية، استخدم حجم شريطي أصغر. بالنسبة لطلبات الإدخال/إخراج التسلسلية الكبيرة، استخدم حجم شريطي أكبر. تعرف على توصيات حجم الشريط للتطبيق الذي ستقوم بتشغيله على التخزين المتميز. بالنسبة لـ SQL Server، قم بتكوين حجم خط شريحة 64 كيلو بايت لأحمال عمل OLTP و256 كيلو بايت لأحمال عمل تخزين البيانات. لمزيد من المعلومات، راجع أفضل ممارسات الأداء ل SQL Server على أجهزة Azure الظاهرية.

إشعار

يمكنك تجميع 32 قرص تخزين متميزًا كحد أقصى على جهاز ظاهري من سلسلة DS و64 قرص تخزين متميزًا على جهاز ظاهري من الفئة GS.

تعدد العمليات

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

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

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

هناك إعدادات التكوين التي يمكنك تغييرها للتأثير على المعالجة المتعددة للقراءة أو المعالجة المتوازية للتطبيق. على سبيل المثال، بالنسبة إلى SQL Server، يكون max degree of parallelism التكوين. يسمح لك هذا الإعداد المسمى MAXDOP بتكوين الحد الأقصى لعدد المعالجات التي يمكن ل SQL Server استخدامها عند المعالجة المتوازية. يمكنك تكوين MAXDOP للاستعلامات الفردية أو عمليات الفهرس. هذه الإمكانية مفيدة عندما تريد موازنة موارد النظام الخاص بك لتطبيق مهم للأداء.

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

تعرف على المزيد حول درجات التوازي في SQL Server. تعرف على كيفية تأثير هذه الإعدادات على تعدد القراءة في تطبيقك وتكويناتها لتحسين الأداء.

عمق قائمة الانتظار

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

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

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

توفر بعض التطبيقات إعدادات للتأثير على عمق قائمة الانتظار. على سبيل المثال، تم شرح إعداد MAXDOP في SQL Server في القسم السابق. MAXDOP هو طريقة للتأثير على عمق قائمة الانتظار والقراءة المتعددة، على الرغم من أنه لا يغير مباشرة قيمة عمق قائمة الانتظار ل SQL Server.

عمق قائمة انتظار كبير

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

عادة، يمكن للتطبيق تحقيق أقصى معدل نقل مع 8 إلى 16+ I/Os المعلقة لكل قرص مرفق. إذا كان عمق قائمة الانتظار واحدا، فإن التطبيق لا يدفع ما يكفي من الإدخال/الإخراج إلى النظام، ويعالج كمية أصغر في فترة معينة. بمعنى آخر، معدل نقل أقل.

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

عمق مثالي لقائمة الانتظار

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

A diagram that shows the equation I O P S times latency equals queue depth.

يجب ألا تقوم بتكوين عمق قائمة الانتظار إلى أي قيمة عالية، ولكن إلى قيمة مثالية، والتي يمكن أن توفر ما يكفي من عمليات الإدخال/الإخراج في التمام للتطبيق دون التأثير على زمن الانتقال. على سبيل المثال، إذا كان زمن انتقال التطبيق يحتاج إلى 1 مللي ثانية، فإن عمق قائمة الانتظار المطلوب لتحقيق 5000 IOPS هو QD = 5000 x 0.001 = 5.

عمق قائمة الانتظار لوحدات التخزين المخططة

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

A diagram that shows the equation Q D per disk times number of columns per volume equals Q D of striped volume.

التحكم بالنطاق الترددي*

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

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

الخطوات التالية

إذا كنت تبحث عن قياس القرص الخاص بك، فشاهد المقالات التالية:

تعرف على المزيد حول أنواع الأقراص المتوفرة:

لمستخدمي SQL Server، راجع المقالات حول أفضل ممارسات الأداء ل SQL Server: