الانتقال إلى المحتوى الرئيسي
التحسين الموجَّه بالتوصيف (PGO) هو أسلوب لتحسين المصرّف، تُحسَّن فيه البرامج استنادًا إلى توصيفها في وقت التشغيل. وفقًا للاختبارات، يساعد PGO في تحقيق أداء أفضل لـ ClickHouse. وتُظهر الاختبارات تحسّنًا يصل إلى 15% في QPS على مجموعة اختبارات ClickBench. تتوفر نتائج أكثر تفصيلًا هنا. وتعتمد مكاسب الأداء على عبء العمل المعتاد لديك، لذا قد تحصل على نتائج أفضل أو أسوأ. يمكنك الاطلاع على مزيد من المعلومات حول PGO في ClickHouse في تذكرة GitHub ذات الصلة هنا.

كيفية بناء ClickHouse باستخدام PGO؟

هناك نوعان رئيسيان من PGO: Instrumentation وSampling (ويُعرف أيضًا باسم AutoFDO). يشرح هذا الدليل أسلوب Instrumentation PGO في ClickHouse.
  1. ابنِ ClickHouse في وضع Instrumentation. في Clang، يمكن تنفيذ ذلك بتمرير الخيار -fprofile-generate إلى CXXFLAGS.
  2. شغّل ClickHouse المبني بوضع Instrumentation على عبء عمل تجريبي. هنا تحتاج إلى استخدام عبء العمل المعتاد لديك. ويمكن أن يكون أحد الأساليب استخدام ClickBench كعبء عمل تجريبي. قد يعمل ClickHouse في وضع Instrumentation ببطء، لذا كن مستعدًا لذلك، ولا تُشغّل ClickHouse المبني بوضع Instrumentation في البيئات الحساسة للأداء.
  3. أعِد تجميع ClickHouse مرة أخرى باستخدام رايات المصرّف -fprofile-use وملفات التعريف التي جُمعت في الخطوة السابقة.
يوجد دليل أكثر تفصيلًا حول كيفية تطبيق PGO في توثيق Clang. إذا كنت ستجمع عبء عمل تجريبيًا مباشرةً من بيئة الإنتاج، فنوصي بتجربة استخدام Sampling PGO.
آخر تعديل في ٢٩ يونيو ٢٠٢٦