SYSTEM إلى جانب أوامر الكلمات المكوّنة من أربعة أحرف (4LW) في Keeper.
أخذ عينات من تخصيصات الذاكرة وتفريغ ملفات تعريف heap
jemalloc، فعليك تشغيل ClickHouse/Keeper مع تمكين التنميط باستخدام متغير البيئة MALLOC_CONF:
jemalloc عينات من عمليات تخصيص الذاكرة ويخزّن المعلومات داخليًا.
يمكنك مطالبة jemalloc بتفريغ ملف التعريف الحالي عبر تشغيل:
- ClickHouse
- Keeper
/tmp/jemalloc_clickhouse._pid_._seqnum_.heap، حيث إن _pid_ هو PID الخاص بـ ClickHouse و_seqnum_ هو رقم التسلسل العام لملف تعريف heap الحالي.
وبالنسبة إلى Keeper، فالملف الافتراضي هو /tmp/jemalloc_keeper._pid_._seqnum_.heap، ويخضع للقواعد نفسها.
يمكن تحديد موقع مختلف بإضافة الخيار prof_prefix إلى متغير البيئة MALLOC_CONF.
على سبيل المثال، إذا كنت تريد إنشاء ملفات التعريف في المجلد /data بحيث تكون بادئة اسم الملف my_current_profile، فيمكنك تشغيل ClickHouse/Keeper باستخدام متغير البيئة التالي:
تحليل ملفات تعريف heap
jemalloc المسماة jeprof. ويمكن تثبيتها بعدة طرق:
- باستخدام مدير الحزم في النظام
- استنساخ مستودع jemalloc وتشغيل
autogen.shمن المجلد الجذر. سيؤدي ذلك إلى توفير البرنامج النصيjeprofداخل المجلدbin
يستخدم
jeprof الأداة addr2line لإنشاء stacktraces، وقد يكون ذلك بطيئًا جدًا.
إذا كان الأمر كذلك، فيُنصح بتثبيت تنفيذ بديل لهذه الأداة.jeprof.
ويُنصح بتشغيل jeprof --help للحصول على معلومات حول طريقة الاستخدام والخيارات المختلفة التي توفرها الأداة.
وبوجه عام، يُستخدم الأمر jeprof كما يلي:
base:
أمثلة
- إذا كنت تريد إنشاء ملف نصي يُكتب فيه كل إجراء في سطر مستقل:
- إذا كنت تريد إنشاء ملف PDF يحتوي على مخطّط للاستدعاءات:
إنشاء Flame Graph
jeprof إنشاء collapsed stacks اللازمة لبناء flame graph.
تحتاج إلى استخدام الوسيط --collapsed:
flamegraph.pl:
التحكّم في مُحلِّل التخصيص أثناء التشغيل
- ClickHouse
- Keeper
- ClickHouse
- Keeper
prof_active، وهو مفعّل افتراضيًا.
على سبيل المثال، إذا كنت لا تريد أخذ عينات من التخصيصات أثناء بدء التشغيل، بل بعده فقط، فيمكنك تفعيل المُحلِّل. يمكنك تشغيل ClickHouse/Keeper باستخدام متغير البيئة التالي:
خيارات إضافية للمُحلِّل
jemalloc العديد من الخيارات المرتبطة بالمُحلِّل، ويمكن التحكم فيها عبر تعديل متغير البيئة MALLOC_CONF.
على سبيل المثال، يمكن التحكم في الفاصل الزمني بين عينات التخصيص باستخدام lg_prof_sample.
إذا كنت تريد إخراج ملف تعريف heap كل N بايت، فيمكنك تفعيل ذلك باستخدام lg_prof_interval.
يُنصح بالرجوع إلى الصفحة المرجعية الخاصة بـ jemalloc للحصول على قائمة كاملة بالخيارات.
موارد أخرى
jemalloc بطرق مختلفة عديدة.
جدول النظام asynchronous_metrics
جدول النظام jemalloc_bins
Prometheus
jemalloc من asynchronous_metrics عبر نقطة نهاية Prometheus في كلٍّ من ClickHouse وKeeper.
مرجع
الأمر 4LW jmst في Keeper
jmst، الذي يعرض إحصاءات المخصِّص الأساسية: