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

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

