הגדרת פאנל הביצועים של Bitrix: אבחון ואופטימיזציה

כשאתר Bitrix מתחיל להאט — לקוחות מתלוננים, מנהלים מתעצבנים, וכל לחיצה בפאנל הניהול לוקחת 10 שניות? הכלי הראשון שכל מפתח חייב לשלוט בו הוא **פאנל הביצועים** המובנה. במשך 8 שנות ניסיון בשוק ו-50+ פרויקטי Bitrix, אישרנו שוב ושוב
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
הגדרת פאנל הביצועים של Bitrix: אבחון ואופטימיזציה
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    880
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    805
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1163

כאשר אתר ביטריקס מתחיל להאט — לקוחות מתלוננים, מנהלים מתעצבנים, וכל לחיצה בלוח הניהול אורכת 10 שניות?

הכלי הראשון שכל מפתח צריך לשלוט בו הוא לוח הביצועים המובנה. במשך 8 שנים בשוק ויותר מ-50 פרויקטים של ביטריקס, אישרנו שוב ושוב שהנתונים שלו מספיקים ל-80% ממשימות האבחון ללא פרופילרים חיצוניים. לאחרונה הגיעה אלינו חנות מקוונת עם קטלוג של 50,000 פריטים — דף הקטלוג נטען ב-12 שניות. לאחר כוונון הלוח ואופטימיזציית SQL, הזמן ירד ל-1.2 שניות — שיפור פי 10. תוצאות כאלה אופייניות כאשר יודעים מה לבדוק. להלן נפרק כיצד להגדיר את הלוח, לפרש את המדדים שלו, ולבצע אופטימיזציה בפועל.

הפעלת לוח הביצועים

הפעל דרך ממשק הניהול: הגדרות → ביצועים → לוח ביצועים. לצורך דיבוג מהיר, ניתן להפעיל אותו באמצעות קוד:

// Показывать панель для текущего пользователя $USER->SetShowStatPanel(true); // Или в dbconn.php для отладки на dev-окружении define('BX_STATPANEL', true); 

הלוח נראה רק למשתמשים מורשים בקבוצת "מנהלים". בסביבת ייצור, השאר אותו פעיל רק במהלך דיבוג פעיל — הוא מוסיף תקורה קטנה לאיסוף נתונים. לפי התיעוד הרשמי של ביטריקס, הלוח אינו משפיע על מהירות הדף למבקרים רגילים.

מדדי לוח הביצועים

  • זמן ביצוע — זמן PHP + SQL כולל במילישניות, מפולח לזמן PHP וזמן המתנה של MySQL.
  • שאילתות DB — מספר שאילתות SQL וזמנן הכולל. לחץ על הבלוק כדי לפתוח את רשימת כל השאילתות עם זמני ביצוע בודדים.
  • מטמון — מספר גישות למטמון: פגיעות והחטאות. שיעור פגיעות נמוך (<80%) מצביע על הגדרת מטמון לא יעילה או אי-תוקף תכוף מדי.
  • קבצים — מספר קבצי PHP שנכללו. 500+ קבצים ללא OPcache פירושו אתחול איטי.
  • זיכרון — צריכת זיכרון שיא של סקריפט PHP. 64 MB+ מצביע על צורך לבדוק דליפות או טעינת נתונים מוגזמת.

לנוחות, הנה ערכים תקינים בטבלה:

פרמטר טוב דורש תשומת לב בעיה
זמן יצירה עד 500 אלפיות השנייה 500-1500 אלפיות השנייה >1500 אלפיות השנייה
שאילתות SQL עד 50 50-100 >100
שיעור פגיעות מטמון >90% 80-90% <80%
זיכרון עד 32 MB 32-64 MB >64 MB
קבצי PHP עד 300 300-500 >500

בעיות אופייניות ופתרונותיהן מרוכזים להלן.

בעיה סימפטום פתרון
שאילתות N+1 שאילתות דומות רבות השתמש ב-GetList עם בחירות, אגרגציית ORM
אינדקסים חסרים שאילתות איטיות >50 אלפיות השנייה הוסף אינדקס על שדות WHERE/ORDER
שיעור פגיעות מטמון נמוך <80% הגדר מטמון מתויג, צמצם אי-תוקף

פרופיל SQL מפורט

לחץ על בלוק SQL בלוח כדי לפתוח את רשימת כל השאילתות. מיין לפי זמן. שאילתות >50 אלפיות השנייה הן מועמדות לאופטימיזציה באמצעות EXPLAIN. שאילתות שחוזרות 10+ פעמים עם אותו תבנית מצביעות על בעיית N+1. בדרך כלל מדובר במאפייני אלמנט של בלוק מידע שנטענים אחד אחד. השוואה: שאילתה בנויה כראוי עם JOIN יחיד רצה פי 10-20 מהר יותר מאשר N שאילתות בודדות.

הגדרת ניטור הביצועים

בתפריט הגדרות → ביצועים → ניטור ביצועים, הגדר:

  • סף רישום — 1000 אלפיות השנייה לסביבת ייצור, 500 אלפיות השנייה לסביבת בדיקות
  • רשומות לאחסון — 1000–5000 רשומות בטבלת // Показывать панель для текущего пользователя $USER->SetShowStatPanel(true); // Или в dbconn.php для отладки на dev-окружении define('BX_STATPANEL', true);
  • רישום SQL — הפעל כדי לראות את רשימת השאילתות לדפים איטיים

צפה ביומן: הגדרות → ביצועים → צפה ביומן. מיין לפי זמן SQL כולל — שם מופיעים הדפים הבעייתיים ביותר.

אלגוריתם אבחון לבעיה ספציפית

  1. פתח את הדף האיטי עם הלוח מופעל.
  2. בדוק את היחס בין זמן PHP לזמן SQL. אם SQL >70%, בצע אופטימיזציה לשאילתות. אם זמן PHP גדול עם SQL קטן — הבעיה בקוד הרכיב.
  3. פתח את רשימת שאילתות SQL, מיין לפי זמן.
  4. העתק שאילתה איטית, הרץ b_perf_hit ב-MySQL Workbench או phpMyAdmin. לעתים קרובות הוספת אינדקס מפחיתה את זמן השאילתה פי 5-10.
  5. הוסף את האינדקס החסר, רענן את הדף, ואשר את השיפור.

מקרה אופייני: בפרויקט אחד, דף הקטלוג נטען ב-8 שניות. הלוח הראה 250 שאילתות SQL. EXPLAIN חשף אינדקסים חסרים על שדה EXPLAIN. לאחר הוספת האינדקס, הדף נטען ב-0.8 שניות — שיפור פי 10.

מדוע לוח הביצועים אינו תמיד מספיק?

הלוח מצוין בזיהוי שאילתות SQL איטיות ובעיות מטמון, אך אינו מראה צווארי בקבוק בקוד אסינכרוני או בקריאות API חיצוניות. לאבחון מעמיק, אנו משתמשים בנוסף בפרופיל Xdebug ובניטור שירותי REST (למשל, 1C או שערי תשלום). הלוח הוא קו האבחון הראשון, לא האחרון.

באיזו תדירות יש לבצע ביקורות ביצועים?

אנו ממליצים להשאיר את ניטור הביצועים פעיל ברציפות, ולבצע ביקורת מלאה רבעונית או לאחר עדכונים גדולים. כך תופסים הידרדרות מוקדם. לדוגמה, לאחר הוספת קטלוג חדש או שילוב API חדש, בדוק האם מספר שאילתות SQL גדל.

מה כוללת ביקורת ביצועים מלאה

אם תפקידו בידינו את האבחון, תקבלו:

  • ביקורת מלאה של הביצועים הנוכחיים באמצעות הלוח וכלים נוספים.
  • אופטימיזציית שאילתות SQL: ניתוח EXPLAIN, הוספת אינדקסים, שיפוץ שאילתות ORM.
  • כוונון מטמון: מטמון מתויג, מטמון HTML, מצב מרוכב.
  • הגדרת ניטור ביצועים לאיסוף מדדים רציף.
  • דוח סופי עם המלצות ותוכנית פעולה.
  • אחריות על תוצאות — נגדיר יעדי זמן טעינה.

. הזמינו אבחון מקדים חינם באמצעות לוח הביצועים. צרו קשר לייעוץ בנושא אופטימיזציה.

דוגמת פקודה לבדיקת אינדקסים מהירה
SELECT TABLE_NAME, COLUMN_NAME, INDEX_NAME, NON_UNIQUE FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'your_database'; 

שאילתה זו מציגה את כל האינדקסים במסד הנתונים, ועוזרת לזהות כפילויות וחסרים.