- ClickHouse Cloud
- Self-managed
في ClickHouse Cloud، يمكنك الحصول على معرّف الاستعلام بالنقر على ”…” في أقصى يمين الشريط أعلى جدول نتائج الاستعلام (بجوار مفتاح التبديل table/chart). سيؤدي ذلك إلى فتح قائمة سياق يمكنك من خلالها النقر على “Copy query ID”.استخدم
clusterAllReplicas(default, system.trace_log) للاختيار من جميع عُقد الـ cluster:استخدام أداة تنميط الاستعلامات في عمليات النشر المُدارة ذاتيًا
1
ثبّت ClickHouse مع معلومات تصحيح الأخطاء
ثبّت الحزمةclickhouse-common-static-dbg:- اتبع التعليمات في الخطوة “إعداد مستودع Debian”
- شغّل
sudo apt-get install clickhouse-server clickhouse-client clickhouse-common-static-dbgلتثبيت الملفات الثنائية المترجمة لـ ClickHouse مع معلومات تصحيح الأخطاء - شغّل
sudo service clickhouse-server startلبدء تشغيل الخادم - شغّل
clickhouse-client. سيلتقط الخادم تلقائيًا رموز تصحيح الأخطاء منclickhouse-common-static-dbg— ولا تحتاج إلى القيام بأي إجراء خاص لتمكينها
2
تحقّق من إعدادات الخادم
تأكد من إعداد قسمtrace_log في ملف إعدادات الخادم. وهو مُمكَّن افتراضيًا:3
اضبط مؤقتات التحليل
أعِد الإعدادينquery_profiler_cpu_time_period_ns أو query_profiler_real_time_period_ns.
يمكن استخدام كلا الإعدادين في الوقت نفسه.تتيح لك هذه الإعدادات ضبط مؤقتات أداة التحليل.
وبما أنها إعدادات جلسة، يمكنك استخدام تردد sampling مختلف للخادم بالكامل، أو للمستخدمين الأفراد أو ملفات تعريف المستخدمين، أو لجلسة العمل التفاعلية الخاصة بك، أو لكل query على حدة.تردد sampling الافتراضي هو عينة واحدة في الثانية، كما أن مؤقتَي CPU والوقت الفعلي مُمكَّنان.
ويتيح لك هذا التردد جمع معلومات كافية عن ClickHouse cluster لديك من دون التأثير في أداء الخادم.
إذا كنت بحاجة إلى تحليل كل query على حدة، فاستخدم تردد sampling أعلى.4
حلّل الجدول النظامي trace_log
لتحليل الجدول النظامي trace_log، اسمح باستخدام دوال الاستبطان عبر الإعداد allow_introspection_functions:لدواعٍ أمنية، تكون دوال الاستبطان معطّلة افتراضيًا
addressToLine وaddressToLineWithInlines وaddressToSymbol وdemangle للحصول على أسماء الدوال ومواضعها في شيفرة ClickHouse.
وللحصول على profile لاستعلام معيّن، تحتاج إلى تجميع البيانات من الجدول trace_log.
ويمكنك تجميع البيانات بحسب الدوال الفردية أو بحسب تتبعات المكدس كاملة.إنشاء مخططات اللهب باستخدام الدالة flameGraph
flameGraph التي تُنشئ مخطط اللهب مباشرةً من تتبعات المكدس المخزّنة في trace_log.
ويكون الناتج مصفوفة من السلاسل النصية بتنسيق متوافق مع flamegraph.pl.
البنية:
traces— تتبّع مكدس الاستدعاءات.Array(UInt64).size— حجم التخصيص لتنميط الذاكرة.Int64.ptr— عنوان التخصيص.UInt64.
ptr غير صفرية، فإن flameGraph يطابق بين التخصيصات (size > 0) وعمليات إلغاء التخصيص (size < 0) التي لها الحجم والمؤشر نفسيهما.
ولا تُعرض إلا التخصيصات التي لم تُحرَّر.
وتُتجاهل عمليات إلغاء التخصيص غير المطابقة.
مخطط اللهب للـ CPU
تتطلب الاستعلامات أدناه أن يكون flamegraph.pl مثبّتًا على جهازك.يمكنك القيام بذلك بتشغيل:استبدل
flamegraph.pl في الاستعلامات التالية بالمسار الذي يوجد فيه flamegraph.pl على جهازك.مخطط اللهب للذاكرة — جميع عمليات تخصيص الذاكرة
مخطط اللهب للذاكرة — التخصيصات غير المُحرَّرة
مخطط اللهب للذاكرة — التخصيصات النشطة في لحظة زمنية معيّنة
تتبّع استخدام الذاكرة بمرور الوقت
حدِّد النقطة الزمنية ذات أعلى استخدام للذاكرة
أنشئ مخطط اللهب لتخصيصات الذاكرة النشطة عند تلك اللحظة الزمنية
أنشئ مخطط مخطط اللهب لعمليات تحرير الذاكرة بعد تلك النقطة الزمنية (لفهم ما الذي حُرِّر لاحقًا)
مثال
- يطبّق عامل تصفية على بيانات
trace_logحسب معرّف الاستعلام والتاريخ الحالي. - يجمّع حسب تتبّع المكدس.
- يستخدم دوال الاستبطان للحصول على تقرير يتضمن:
- أسماء الرموز والدوال المقابلة لها في الشيفرة المصدرية.
- مواضع هذه الدوال في الشيفرة المصدرية.