- تأكد من أن جهازك المضيف يستوفي المتطلبات المسبقة اللازمة لـ QPL
- يكون deflate_qpl ممكّنًا افتراضيًا أثناء البناء باستخدام cmake. إذا غيّرته عن طريق الخطأ، فيُرجى التحقق مجددًا من علامة البناء: ENABLE_QPL=1
- للاطلاع على المتطلبات العامة، يُرجى الرجوع إلى إرشادات البناء العامة الخاصة بـ ClickHouse
قائمة الملفات
benchmark_sample ضمن qpl-cmake مثالًا على تشغيل اختبار الأداء باستخدام نصوص بايثون البرمجية:
يحتوي client_scripts على نصوص بايثون البرمجية لتشغيل اختبار أداء نموذجي، على سبيل المثال:
client_stressing_test.py: نص بايثون برمجي لاختبار الضغط على الاستعلامات مع [1~4] مثيلات خادم.queries_ssb.sql: يسرد هذا الملف جميع الاستعلامات الخاصة بـ Star Schema Benchmarkallin1_ssb.sh: ينفّذ نص shell البرمجي هذا سير عمل اختبار الأداء الكل في واحد تلقائيًا.
database_files أنه سيخزّن ملفات قاعدة البيانات وفقًا لـ codec lz4/deflate/zstd.
شغّل الاختبار المعياري تلقائيًا على مخطط النجمة:
./output/
في حال حدوث أي إخفاق، يُرجى تشغيل الاختبار المعياري يدويًا كما هو موضح في الأقسام أدناه.
التعريف
البيئة
- CPU: Sapphire Rapid
- راجع متطلبات النظام لـ QPL لمعرفة متطلبات نظام التشغيل
- راجع إعداد المسرّع لمعرفة إعداد IAA
- ثبّت وحدات بايثون:
توليد البيانات الخام
dbgen لإنشاء بيانات تضم 100 مليون صف باستخدام المعلمة التالية:
-s 20
يُتوقع إنشاء ملفات مثل *.tbl ضمن ./benchmark_sample/rawdata_dir/ssb-dbgen:
إعداد قاعدة البيانات
Connected to ClickHouse server في وحدة التحكّم، ما يعني أن العميل نجح في إعداد اتصال مع الخادم.
أكمل الخطوات الثلاث أدناه المذكورة في Star Schema Benchmark
- إنشاء الجداول في ClickHouse
- إدراج البيانات. ينبغي هنا استخدام
./benchmark_sample/rawdata_dir/ssb-dbgen/*.tblكبيانات إدخال. - تحويل “star schema” إلى مخطط “flat schema” غير مُطبَّع
lz4 أعلاه
[self-check]
لكل codec (lz4/zstd/deflate)، يُرجى تنفيذ الاستعلام أدناه للتأكد من إنشاء قواعد البيانات بنجاح:
اختبار الأداء باستخدام مثيل واحد
- قبل بدء اختبار الأداء، يُرجى تعطيل C6 وضبط حاكم تردد CPU على
performance
- لإزالة تأثير ربط الذاكرة عبر المقابس، نستخدم
numactlلربط الخادم بمقبس واحد والعميل بمقبس آخر. - يعني المثيل الواحد خادمًا واحدًا متصلًا بعميل واحد
QPS_Final ثم جمع الإحصاءات
القياس المعياري باستخدام مثيلات متعددة
- لتقليل أثر القيود المرتبطة بالذاكرة عند استخدام عدد كبير جدًا من الخيوط، نوصي بإجراء القياس المعياري باستخدام مثيلات متعددة.
- تعني المثيلات المتعددة وجود عدة خوادم (2 أو 4) يتصل كلٌّ منها بالعميل المقابل له.
- يجب تقسيم الأنوية في socket واحد بالتساوي وتخصيصها للخوادم كلٌّ على حدة.
- عند استخدام مثيلات متعددة، يجب إنشاء مجلد جديد لكل codec وإدراج مجموعة البيانات باتباع خطوات مشابهة لخطوات المثيل الواحد.
- من جهة العميل، تحتاج إلى تشغيل ClickHouse باستخدام المنفذ المخصص أثناء إنشاء الجدول وإدراج البيانات.
- من جهة الخادم، تحتاج إلى تشغيل ClickHouse باستخدام ملف xml config المحدد الذي جرى تعيين المنفذ فيه. وقد جرى توفير جميع ملفات xml config المخصصة للمثيلات المتعددة ضمن ./server_config.
- يمثّل [TBL_FILE_NAME] اسم ملف مُسمّى وفقًا للتعبير النمطي: *. tbl ضمن
./benchmark_sample/rawdata_dir/ssb-dbgen. - يشير
--port=9001إلى المنفذ المخصّص لمثيل الخادم، وهو معرّف أيضًا في config_lz4_s2.xml/config_zstd_s2.xml/config_deflate_s2.xml. ولإضافة المزيد من المثيلات، يجب استبداله بالقيمة 9002/9003، التي تشير إلى المثيلين s3/s4 على التوالي. وإذا لم تُعيّنه، فسيكون المنفذ 9000 افتراضيًا، وهو مستخدم بالفعل من قِبل المثيل الأول.
2 في client_stressing_test.py إلى عدد المثيلات. ولزيادة عدد المثيلات، عليك استبدالها بالقيمة 3 أو 4. يدعم هذا البرنامج النصي ما يصل إلى 4 مثيلات/
الآن ينبغي أن تظهر ثلاثة سجلات كما هو متوقع:
QPS_Final وجمع الإحصاءات
إعداد اختبار الأداء لأربعة مثيلات مماثل لإعداد المثيلين المذكورين أعلاه.
نوصي باستخدام بيانات اختبار الأداء الخاصة بمثيلين بوصفها التقرير النهائي للمراجعة.