ما هو اختبار التخزين؟ أنواعه، Concepts & مثال

⚡ ملخص ذكي

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

  • 💾 وتسمى أيضا: اختبار أداء التخزين، لأن السرعة لا تقل أهمية عن الموقع الصحيح.
  • ⚠️ لماذا يهم: يؤدي التخزين البطيء إلى أوقات استجابة بطيئة، واستعلامات طويلة الأمد، وانخفاض توافر التطبيق.
  • 🧩 ثلاثة أنواع: اختبار التطبيقات، ومحاكاة التطبيقات، وقياس الأداء، كل منها له أنشطته الخاصة.
  • 📏 المقاييس الأساسية: يتم دائمًا قراءة عمليات الإدخال/الإخراج في الثانية، وزمن الاستجابة، ومعدل النقل، وعمق قائمة الانتظار معًا بدلاً من قراءتها بشكل منفصل.
  • 🧪 كيف يتم تشغيله: حدد الأهداف، وقم بتحديد حجم مجموعة البيانات، واختر مزيجًا واقعيًا للقراءة/الكتابة، ثم قم بزيادة الحمل تدريجيًا.
  • 🛠️ الأدوات: تُنتج مولدات الإدخال/الإخراج الاصطناعية أرقامًا قابلة للتكرار لا تستطيع أوامر نسخ الملفات إنتاجها أبدًا.
  • 🚫 الأخطاء الشائعة: مراقبة الخادم الخطأ، تخطَّ هذه الخطوةping مسح ذاكرة التخزين المؤقت وتجاهل استخدام المعالج.

دليل اختبار التخزين الذي يغطي الأنواع والمفاهيم والأخطاء الشائعة

ما هو اختبار التخزين؟

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

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

لماذا اختبار التخزين؟

تُعدّ وحدة التخزين أبطأ طبقة تتعامل معها معظم التطبيقات، لذا فإن أي خلل فيها يظهر في كل مكان آخر. أربعة أسباب تبرر تخصيص دورة اختبار مستقلة.

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

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

نظرة عامة على اختبار التخزين توضح تطبيقًا يقوم بكتابة البيانات من خلال نظام الملفات إلى جهاز التخزين

أنواع اختبار التخزين

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

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

الأول يعطي النتيجة الأكثر واقعية والأقل قابلية للتنقل؛ أما الثالث فيعطي أرقامًا يمكن مقارنتها عبر الأجهزة والبائعين، ولكنه لا يقول الكثير عن كيفية تصرف التطبيق نفسه.

الاختبارات المشتركة Concepts المشاركة أثناء اختبار التخزين

يرتبط كل نوع من هذه الأنواع الثلاثة بمجموعة مميزة من الأنشطة، كما هو ملخص أدناه.

أنواع اختبار التخزين مثال على أنشطة اختبار التخزين الشائعة
اختبار التطبيق قارن أوقات استجابة OLTP
قارن أوقات تشغيل الدُفعات
قارن معدلات التدفق المستمرة
محاكاة التطبيقات اختبار ذروة تخزين IOPS لقواعد البيانات
اختبار ذروة معدل نقل البيانات في بيئات تدفق البيانات
اختبار زمن استجابة التخزين لتطبيقات المراسلة أو التطبيقات الأخرى أحادية الخيوط
المقارنة اختبار تلف البيانات

المؤشرات الرئيسية في اختبار التخزين

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

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

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

كيفية إجراء اختبارات التخزين

لا تكون نتائج اختبار التخزين موثوقة إلا بقدر جودة الظروف التي أُجري فيها. التسلسل الموضح أدناه يضمن إمكانية تكرار النتائج.

  • الخطوة 1) تحديد الهدف. حدد ما إذا كان الهدف من التشغيل هو إثبات جاهزية قاعدة البيانات، أو تحديد الحد الأقصى للإنتاجية، أو مقارنة جهازين. كل هدف يستلزم عبء عمل مختلف، ودمجها ينتج عنه أرقام لا يمكن لأحد اتخاذ أي إجراء بشأنها.
  • الخطوة الثانية: تحديد حجم مجموعة البيانات بشكل واقعي. يقيس حجم مجموعة البيانات العاملة الصغيرة بما يكفي لتناسب ذاكرة التخزين المؤقت حجم ذاكرة التخزين المؤقت، وليس حجم التخزين. يجب أن يتساوى حجم البيانات العاملة مع حجم بيانات الإنتاج، أو على الأقل يتجاوز حجم ذاكرة التخزين المؤقت بهامش كبير.
  • الخطوة 3) اختر مزيج القراءة/الكتابة والنمط. يختلف سلوك الوصول العشوائي والتسلسلي اختلافًا كبيرًا على نفس الجهاز، وكذلك الحال بالنسبة لمزيج القراءة والكتابة بنسبة 70/30 وعمليات الكتابة فقط المتتالية. لذا، يُنصح بأخذ المزيج من نظام مراقبة الإنتاج بدلاً من الإعدادات الافتراضية.
  • الخطوة 4) اضبط عمق قائمة الانتظار وعدد الخيوط. تتحكم هذه في مقدار التزامن الذي يصل إلى الجهاز، لذا قم بتسجيلها مع كل نتيجة - لا يمكن إعادة إنتاج رقم تم ذكره بدونها.
  • الخطوة 5) مسح ذاكرة التخزين المؤقت والتسخين. قم بحذف ذاكرة التخزين المؤقت للخادم والجهاز بين عمليات التشغيل، ثم تجاهل الفترة الأولى بحيث تتم مقارنة أرقام الحالة المستقرة بدلاً من أرقام اللمسة الأولى.
  • الخطوة السادسة) استمر بالجري لفترة كافية. تُخفي عمليات التشغيل القصيرة مشكلة انقطاع الكتابة التي تظهر بمجرد استنفاد ذاكرة التخزين المؤقت للكتابة في محرك الأقراص ذي الحالة الصلبة (SSD). أما عمليات التشغيل المستمرة فتُظهرها.
  • الخطوة 7) مراقبة المجموعة بأكملها. قم بالتقاط استخدام المعالج والذاكرة والشبكة جنبًا إلى جنب مع عدادات التخزين، حتى لا يتم تفسير الاختناق في مكان آخر على أنه حد للتخزين.
  • الخطوة 8) كرر وقارن. قم بتشغيل نفس التكوين أكثر من مرة واحتفظ بالسجلات؛ لا يمكن رؤية انحراف الأداء بين عمليات البناء إلا بالمقارنة مع خط أساس مخزن.

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

أدوات اختبار الحفظ

تنقسم الأدوات إلى مجموعتين، ومعظم الفرق تحتاج إلى كلتيهما.

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

Operaتُكمل عدادات نظام الاختبار الصورة. أيًا كانت الأداة التي تُولّد الحمل، يجب قراءة بيانات التخزين بجانب عدادات المعالج والذاكرة والشبكة - وهي تقنيات عديدة لاختبار التخزين، بما في ذلك اختبار معياري و اختبار الحجم، يعتمد على تلك الرؤية الشاملة لتفسير النتيجة بشكل صحيح.

أخطاء أثناء إجراء اختبارات التخزين

معظم نتائج التخزين غير الصالحة tracلنعد إلى عدد قليل من الأخطاء التي يمكن تجنبها.

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

الأسئلة الشائعة

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

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

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

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

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

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

عادةً ما يختلف وضع ذاكرة التخزين المؤقت، أو عمق قائمة الانتظار، أو مدة التشغيل بينها. كما أن حالة الجهاز مهمة أيضاً - فمحرك الأقراص ذو الحالة الصلبة (SSD) الذي تمت تهيئته حديثاً يكتب أسرع من محرك الأقراص الذي تم ملؤه وإعادة الكتابة عليه عدة مرات.

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

تلخيص هذه التدوينة بـ: