ניטור מעבד לשרת Bitrix: הגדרת התראות

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

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

שאלות נפוצות

תארו לעצמכם: חנות ה-Bitrix שלכם עובדת כרגיל, אבל בסביבות שעת הצהריים האתר מתחיל להאט — עמודים נטענים תוך 10–15 שניות, מנהלים מתלוננים, חלק מהמבקרים עוזבים. אתם מריצים htop: ה-CPU תקוע על 100%, אבל אי אפשר לדעת מה צורך אותו. שעה לאחר מכן, העומס יורד. למחרת זה חוזר. בלי נתונים היסטוריים, אי אפשר למצוא את הגורם; צריך לתפוס את זה בזמן השיא. ראינו את זה עשרות פעמים. הגדרת ניטור נכונה לוכדת חריגות ומקשרת אותן לאירועים — סוכנים, משימות cron, פריסות. זה מאפשר לתקן את הבעיה לצמיתות, לא רק לכבות שריפות. שעת השבתה אחת לחנות מקוונת יכולה לעלות בין $300–1k, ולמסחר אלקטרוני גדול עד $1.8k–2.6k, כך שהגדרת ניטור מחזירה את עצמה במהירות. בנוסף, הלקוחות שלנו חוסכים בממוצע $450–650 בחודש בעלויות שרת.

בפרויקטים של 1C-Bitrix, צרכני ה-CPU העיקריים הם php-fpm, mysqld וסוכנים (b_agent). PHP-FPM מריץ קוד שמציג עמודים ומטפל בפעולות משתמש. MySQL מטפל בשאילתות מסד נתונים — שאילתות לא אופטימליות יכולות לתפוס ליבה למשך זמן רב, מה שמוביל ל-I/O wait גבוה. סוכנים מריצים משימות רקע: עדכון אינדקס החיפוש, ייצוא קטלוג, עיבוד הזמנות. כל סוכן מוסיף מיקרו-שניות, אבל עם הרבה סוכנים או מרווחים גרועים הם יוצרים עומס קבוע. לא מספיק להסתכל על השימוש הנוכחי; צריך לנתח מגמות. לשם כך אנחנו משתמשים ב-Prometheus + Grafana, ולבדיקות מהירות — htop ו-mpstat. עם Prometheus, אתם מזהים קפיצות CPU פי 10 מהר יותר מאשר להסתמך על htop בלבד. הגדירו התראות CPU ב-Prometheus כדי ליידע את הצוות שלכם מיד כשהעומס חוצה ספים.

למה ניטור CPU הוא קריטי לשרת Bitrix

שימוש גבוה ב-CPU הוא סימפטום, לא הגורם. בלי ניטור, אתם רואים רק את הסימפטום אבל לא יודעים איזה תהליך גרם לו. לדוגמה, אם MySQL צורך CPU, הבעיה היא במסד הנתונים: שאילתות איטיות, אינדקסים חסרים, מבנים לא אופטימליים. אם php-fpm, בדקו את הקוד והגדרות האפליקציה. סוכני Bitrix יכולים להקפיץ את ה-CPU בכל ריצה. לפי התיעוד הרשמי של Bitrix, סוכנים לא מוגדרים כהלכה גורמים לעד 30% מעומס שרת נוסף. ניטור עם התראות מאפשר לדעת על אירועים כאלה בזמן אמת. Load average הוא מדד מערכת שמראה את המספר הממוצע של תהליכים שממתינים לריצה. ב-70% מהמקרים, לשרת בעייתי יש load average גבוה ממספר הליבות. אנחנו גם מנטרים את זמן ה-CPU steal בסביבות וירטואליות ובודקים קפיצות ב-context switching עם htop. שיקולים טכניים נוספים כוללים בעיות NUMA locality (ניטור עם mpstat), שימוש ב-inode באתרים עם תעבורה גבוהה, ו-cgroups להגבלת CPU לכל שירות.

איך להבחין בין בעיות PHP לבעיות MySQL

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

htop -d 20 mpstat -P ALL 5 pidstat -p <PID> 5 

אם htop -d 20 mpstat -P ALL 5 pidstat -p <PID> 5 צורך >50% CPU, בדקו שאילתות איטיות:

SHOW FULL PROCESSLIST; SELECT * FROM information_schema.PROCESSLIST WHERE TIME > 5; 

בעיות PHP מוסתרות לעתים קרובות בקוד: mysqld מראה את מספר התהליכים הפעילים. אם הם כל הזמן במקסימום, אתם צריכים יותר עובדים. ב-40% מהמקרים, הפתרון הוא הגדלת SHOW FULL PROCESSLIST; SELECT * FROM information_schema.PROCESSLIST WHERE TIME > 5; . context switching גבוה מצביע על תחלופת תהליכים מוגזמת; השתמשו ב-php-fpm status כדי לאשר. בנוסף, כוונו את oom_score של תהליכי PHP כדי למנוע הרגי OOM.

אילו כלי ניטור CPU הם היעילים ביותר עבור Bitrix?

לאבחון מיידי, htop הוא הטוב ביותר — הוא מראה תהליכים ותצוגת עץ. mpstat נותן פירוט לפי ליבה ושימושי לזיהוי בעיות I/O wait. לניתוח ארוך טווח וגרפים, אנחנו משתמשים ב-Prometheus + Grafana: הם אוגרים חודשים של מדדים וחושפים מגמות. atop שומר היסטוריה לכמה ימים אחרונים ודורש אין הגדרה — מצוין לרטרוספקציה. ניסינו עשרות כלים והתמקמנו על השילוב הזה; הוא מכסה 95% מהמקרים. עבור Prometheus, הגדירו את קולקטור ה-CPU של node_exporter עם הפרמטר pm.max_children כדי לאסוף מדדים לפי ליבה.

מדריך שלב-אחר-שלב להגדרת ניטור CPU

התקנת Prometheus + Grafana אורכת 2 עד 4 שעות, כולל הגדרת התראות. הנה תוכנית אופיינית:

  1. ביקורת מצב נוכחי: בדקו htop, mpstat, מצאו תהליכים מובילים עם uptime.
  2. התקינו node_exporter על השרת: הורידו והריצו אותו עם הרשאות לקריאת מדדי CPU, זיכרון ודיסק.
  3. הגדירו את Prometheus: ב-cat /proc/loadavg, הוסיפו יעד עבור node_exporter (לדוגמה, ps aux --sort=-%cpu | head -10).
  4. ייבאו דשבורד ב-Grafana: השתמשו בתבנית Node Exporter Full (מזהה 1860) או צרו משלכם עם ניצול CPU, load average, I/O wait.
  5. הגדירו את Alertmanager: הוסיפו כלל לעומס CPU גבוה, לדוגמה, prometheus.yml למשך 10 דקות.
  6. בדקו התראות: צרו עומס עם localhost:9100 וודאו שההתראה מופעלת.

ספים אופייניים

מדד רמה קריטית פעולה
Load average / ליבות > 2.0 בדקו תהליכים, שלחו התראה
I/O wait > 10% בדקו שימוש בדיסק, שאילתות איטיות
ניצול CPU של mysqld > 80% בצעו אופטימיזציה לשאילתות
ניצול CPU של php-fpm > 70% הגדילו max_children או בצעו אופטימיזציה לקוד
דוגמה לאבחון מהירבפרויקט אחד, load average נשאר על 3.5 עם 2 ליבות. הניתוח הראה שסוכן עדכון אינדקס החיפוש רץ כל 5 דקות. העברתו ל-cron עם nice הפחיתה את העומס ל-1.2. במקרים אחרים, load average ירד מ-3.5 ל-0.8, וזמן טעינת העמוד השתפר מ-15 ל-2 שניות.

רשימת בדיקה לאבחון מהיר של CPU גבוה

  • בדקו load average דרך (node_load1 / count(count(node_cpu_seconds_total) by (cpu))) > 2 או stress --cpu 4.
  • לאבחון מהיר של האטה, מצאו תהליכי CPU מובילים: uptime.
  • אם mysqld מוביל, הפעילו יומן שאילתות איטיות ונתחו את השאילתות.
  • אם php-fpm, בדקו cat /proc/loadavg לתור.
  • בחנו סוכנים: ps aux --sort=-%cpu | head -10
  • העבירו סוכנים כבדים ל-cron עם pm.status_path וקבצו אותם.
  • נטרו זמן CPU steal, שיעורי context switching והשפעות NUMA.
  • השתמשו ב-cgroups כדי להגביל תהליכים עם CPU גבוה.

חיסכון ממוצע במשאבי שרת לאחר יישום ניטור הוא 20–40% — על ידי זיהוי שאילתות וסוכנים לא יעילים. לדוגמה, העברת סוכן כבד אחד ל-cron נכון יכולה לחצות את עומס השיא. שעת השבתה אחת של חנות מקוונת יכולה לעלות עשרות, כ-$9–13 בחיסכון, כך שהגדרת ניטור מחזירה את עצמה במהירות. בממוצע, ניטור חוסך $180–260 בחודש במשאבי שרת.

מה כלול בשירות הגדרת הניטור שלנו

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

  • ביקורת ביצועי שרת (CPU, זיכרון, דיסק, הגדרות PHP ו-MySQL).
  • התקנה והגדרה של Prometheus + node_exporter + Grafana.
  • דשבורד עם מדדים מרכזיים (CPU, load average, I/O wait, תהליכים מובילים).
  • הגדרת התראות ל-Telegram/Slack.
  • אופטימיזציה של php-fpm (max_children, pm.max_requests) וסוכנים (העברה ל-cron, מרווחים).
  • מסירת תיעוד עם הוראות וגישה.
  • חודש תמיכה לאחר הפריסה.

לוח זמנים: 2 עד 5 ימים תלוי במורכבות. התמחור מותאם אישית — נעריך את הפרויקט שלכם תוך יום עסקים אחד. צרו קשר כדי לדון בפרטים.

איך אנחנו עושים את זה: דוגמה אמיתית

לאחרונה, חנות מקוונת עם קטלוג של 50,000 מוצרים פנתה אלינו. כל לילה, סוכן עדכן את אינדקס החיפוש, והעמיס את ה-CPU ל-100% למשך שעה. זה גרם לכשלים במשימות רקע. העברנו את הסוכן ל-cron עם nice 19 וקבצנו עדכונים לפי 1,000 מוצרים. עומס השיא ירד מ-100% ל-30%, וזמן הביצוע ירד מ-60 ל-12 דקות. הגדרנו גם התראה ל-load average > 1.5 — עכשיו הצוות יודע על בעיות לפני שהן משפיעות על המשתמשים.

שלבי העבודה

שלב משך תוצאה
ביקורת אקספרס יום אחד דוח על מדדי CPU נוכחיים, צווארי בקבוק
תכנון יום אחד תוכנית אופטימיזציה, בחירת כלים
הגדרת ניטור 1-2 ימים Prometheus + Grafana, התראות
אופטימיזציה 1-2 ימים php-fpm, סוכנים, MySQL (במידת הצורך)
מסירה והדרכה יום אחד תיעוד, דשבורדים, גישה

חיסכון ממוצע בהשכרת שרת לאחר יישום ניטור הוא 20–40%, שלפרויקט ממוצע משמעותו עשרות, כ-$9–13 בחיסכון חודשי. קבלו ייעוץ על הגדרת ניטור לשרת שלכם — נציע את הפתרון האופטימלי לתשתית שלכם. הזמינו ביקורת, ונזהה את צווארי הבקבוק בשרת ה-Bitrix שלכם. הניסיון שלנו: למעלה מ-10 שנים ו-500+ פרויקטים באופטימיזציה ותמיכה ב-Bitrix.