سؤال

أريد قياس أداء وتوساعد تطبيق DB الخاص بي. أنا أبحث عن أداة من شأنها أن تسمح لي بتشغيل العديد من عبارات SQL مقابل بلدي DB، وأخذ ملف DB و Scrpt (SQL) كوسائط (+ تفاصيل ضرورية، على سبيل المثال اسم المضيف، المنفذ، تسجيل الدخول ...).

من الناحية المثالية، يجب أن تسمح لي بالتحكم في المعلمات مثل عدد العملاء المحاكاة، مدة الاختبار، والمتغيرات العشوائية أو الاختيار من قائمة (على سبيل المثال، حدد من ... حيث يتم قراءة القيمة = var، حيث يتم قراءة VAR من سطر الأوامر أو المعشوأ لكل تنفيذ) وبعد أرغب في اختبار النتائج التي سيتم حفظها كملف CSV أو XML يمكنني تحليلها ومصنعها. وبالطبع من حيث الأسعار، أفضل "مجانا" أو "تجريبي" :-)

من المستغرب (بالنسبة لي على الأقل) أثناء وجود عشرات من هذه الأدوات لاختبار تحميل تطبيق الويب، لم أستطع العثور على أي اختبار DB!؟ تلك التي رأيتها، مثل PGBench، استخدم DB مضمن استنادا إلى بعض سيناريو TPC، لذلك يساعدون في اختبار تكوين DBMS و H / W لكن لا يمكنني اختبار DB الخاص بي! أي اقتراحات؟

على وجه التحديد، استخدم Postgres 8.3 على Linux، على الرغم من أنني أستطيع استخدام أي أداة عامة DB التي تلبي هذه المتطلبات. H / W لديها 32 جيجابايت من ذاكرة الوصول العشوائي في حين أن حجم الجداول والفهارس الرئيسية هو ~ 120GB. وبالتالي، يمكن أن يكون هناك نسبة وقت استجابة 1:10 بين الباردة مقابل ذاكرة التخزين المؤقت الدافئة (I / O VS RAM). من الواقعية أتوقع أن تنتشر الطلبات بالتساوي، لذلك من المهم بالنسبة لي اختبار الاستفسارات ضد قطع مختلفة من DB.

لا تتردد في الاتصال بي أيضا عبر البريد الإلكتروني. شكرا!

- شاؤول دار (info@shauldar.com)

هل كانت مفيدة؟

المحلول

JMeter. من Apache يمكن التعامل مع أنواع خادم مختلفة. أستخدمها لاختبارات التحميل مقابل تطبيقات الويب، والبعض الآخر في الفريق استخدمه لمكالمات DB. يمكن تكوينه بعدة طرق للحصول على الحمل الذي تحتاجه. يمكن تشغيله في وضع وحدة التحكم وحتى يتم تجميعه باستخدام عملاء مختلفين لتقليل النفقات العامة للعميل (وبالتالي تزوير النتائج).

إنه تطبيق جافا ومجمع بعض الشيء من النظرة الأولى. ولكن لا يزال نحن نحبها. :-)

نصائح أخرى

لم نجد حقا حل مناسب لإشداف اختبار قاعدة بيانات DB2 المركزية الخاصة بنا حتى انتهى بنا المطاف. إنه في الواقع يتكون فقط من بنك تضم 30 جهاز كمبيوتر شخصى تشغيل Linux مع تثبيت DB2.

قم بتشغيل 29 من المربعات برنامج نصي ينتظر ببساطة حتى يظهر ملف Starter على جبل NFS ثم ابدأ في تنفيذ الاستعلامات الثابتة بناء على البيانات. إن حقيقة أن هذه الاستفسارات (والبيانات الموجودة في قاعدة البيانات) ثابتة تعني أننا يمكن أن نقارن بسهولة مع المدى الناجح السابق.

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

كل هذا يتم ذلك مع bash و DB2 Connect هكذا يتم صيانته بسهولة إلى حد ما (ومجاني).

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

نحن ندرس حاليا ما إذا كان بإمكاننا دمج جميع هذه الخوادم الفيزيائية في الأجهزة الافتراضية، على كل من المركزية التي تعمل Zlinux (والتي ستستخدم فرطيات الذاكرة المشتركة ل TCP / IP، والتي تقوم بشكل أساسي بإزالة تأخيرات الشبكة) ومنصات Intel مع VMWare، إلى VMWare تحرير بعض من تلك الأجهزة.

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

مولد تحميل SQL هو أداة أخرى أخرى:

http://sqlloadgenerator.codeplex.com/

أنا أحب ذلك، لكنه لا يحتوي بعد على خيار حفظ إعداد الاختبار.

هل تحقق من Bristlecone أداة مفتوحة المصدر من Nommonent؟ لا أستخدمه، لكنه يعمل في الحواريات ويبدو أنه قادر على القيام بالأشياء التي طلبك. (آسف كمستخدم جديد، لا أستطيع أن أعطيك الرابط المباشر لصفحة الأداة، ولكن جوجل سوف تحصل على هناك؛ س])

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top