מדריכי איך לעשות

צמצום שימוש CPU על ידי הגבלת API ה-Heartbeat של WordPress

  • 12 דקות קריאה
  • צוות Hostragons
צמצום שימוש CPU על ידי הגבלת API ה-Heartbeat של WordPress

הגבלת API ה-Heartbeat של WordPress היא תהליך להפחתת השימוש ב-CPU על ידי צמצום תדירות הבקשות שמבצע הקובץ admin-ajax.php ברקע בלוח הניהול של WordPress. במיוחד בשירותי Hosting משותפים, חנויות WooCommerce עמוסות ובבלוגים עם מספר כותבים, ה-Heartbeat API יכול לשלוח בקשות לשרת כל 15-60 שניות; דבר שיכול להוביל לשימוש מיותר ב-CPU, להאטה בלוח הניהול ולהתרעות על מגבלת משאבים. הפתרון הוא להקטין את תדירות הבקשות ל-60-120 שניות לפי הצורך, להשאיר את ה-API פתוח רק בתחומים הנדרשים ולמדוד את התוצאות בלוח הניהול של ההוסטינג.

במדריך זה נסקור מהו ה-Heartbeat API, מתי הוא עלול להוות בעיה, אילו הגדרות בטוחות וכיצד לצמצם את השימוש ב-CPU באתר WordPress שלך בצורה מעשית. המטרה היא להגביל את התנועה הלא נחוצה ברקע מבלי לשבש תכונות מועילות כמו שמירה אוטומטית ואימות סשן. אם האתר שלך נתקל לעיתים קרובות בהודעות כמו 508 Resource Limit, 503 Service Unavailable או בעיות בהאטה בלוח הניהול של WordPress, ההגדרות הללו הן מהאופטימיזציות הראשונות שצריך לבדוק.

מהו API ה-Heartbeat של WordPress?

API ה-Heartbeat של WordPress הוא מנגנון של WordPress שמקיים תקשורת באופן קבוע בין הדפדפן לשרת. התקשורת מתבצעת בדרך כלל דרך הקובץ /wp-admin/admin-ajax.php. באמצעות מערכת זו WordPress שומר טיוטות אוטומטיות, מדווח על כך שמשתמש אחר עורך את אותו הפוסט, בודק את אורך הסשן ומפעיל התראות בזמן אמת מכמה תוספים.

נביא דוגמה פשוטה: כאשר עורך עובד על מסך הפוסט, WordPress שולח בקשה קטנה לשרת בתדירות קבועה כדי למנוע אובדן טיוטה. הבקשה עצמה אינה כבדה. אך אם באותו הזמן יש 8 עורכים, 2 מנהלים וצוות ששומר על פאנל ה-WooCommerce פתוח, מספר הבקשות יגדל במהירות. 10 סשנים פתוחים יכולים ליצור כ-1,200 בקשות Heartbeat בשעה, בתדירות של 30 שניות. אם תוספים מוסיפים נתונים נוספים לבקשות הללו, השימוש ב-CPU יכול להיות גבוה מהצפוי.

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

מדוע API ה-Heartbeat מעלה את השימוש ב-CPU?

שימוש ה-CPU מתאר את כוח העיבוד שהשרת משקיע כדי להריץ את תהליכי ה-PHP. מכיוון ש-WordPress הוא מערכת ניהול תוכן דינמית, כל בקשת PHP מפעילה במידה מסוימת את התבנית, התוספים, מסד הנתונים וליבת WordPress. בקשות ה-Heartbeat, גם אם נראות קטנות, מפעילות גם את תהליך ה-PHP.

הסיבות הנפוצות ביותר להגדלת השימוש ב-CPU הן:

  • תדירות בקשות גבוהה מאוד: בחלק מהמסכים ה-Heartbeat יכול לרדת עד 15 שניות. זה אומר 240 בקשות בשעה גם עם משתמש אחד בלבד.
  • מספר טאבים פתוחים: אם המשתמש משאיר 4 טאבים שונים פתוחים בלוח הניהול של WordPress, כל טאב יכול לייצר תנועה נפרדת של Heartbeat.
  • תוספים כבדים: תוספים של אבטחה, סטטיסטיקות, גיבוי, בוני דפים ו-WooCommerce יכולים להוסיף עומס על נתוני ה-Heartbeat.
  • הוסטינג חסר משאבים: בחבילות עם מגבלת CPU צרה, גם בקשות קטנות ברקע יכולות למלא את המגבלה בשעות עמוסות.
  • התנגשויות בין תעבורת רובוטים למשתמשים אמיתיים: כאשר יש תעבורת מבקרים בחזית, הבקשות ברקע בלוח הניהול משתמשות באותם משאבים.

אם אתה רואה במיוחד כי הגישות לקובץ admin-ajax.php חוזרות על עצמן לעיתים קרובות ב-log של access, יש לבדוק את תנועת ה-Heartbeat. בתשתית של Hostragons, תוכל לעקוב אחרי שינויים בשימוש במשאבים באמצעות גרפים ולבחון חבילות מתאימות יותר לצרכים של אתר ה-WordPress שלך ב-אחסון WordPress.

האם כדאי לכבות לחלוטין את ה-Heartbeat API?

התשובה הכללית היא: לא, לרוב האתרים לא מומלץ לכבות זאת לחלוטין. כיבוי מלא של ה-Heartbeat API עשוי להפחית את השימוש ב-CPU בטווח הקצר, אך זה עלול לשבש תכונות כמו שמירה אוטומטית, נעילת תוכן, רענון סשן וחלק מההתראות של תוספים. במיוחד בבלוגים עם מספר כותבים, עריכה של אותו פוסט על ידי שני אנשים יכולה להוביל לאובדן תוכן.

הגישה הבטוחה יותר היא לשמור את ה-API פתוח בתחומים הנדרשים ולפרוס את התדירות. לדוגמה, במסך עריכת הפוסט 60 שניות, בלוח הניהול הכללי 120 שניות, ובחזית האתר אפשר לכבות לחלוטין את ה-Heartbeat. בחנויות WooCommerce יש לבצע בדיקות זהירות יותר בחלקים כמו מסך ההזמנות וניהול המלאי.

טבלת ההגדרות המומלצות ל-Heartbeat API

טבלת ההגדרות המומלצות ל-Heartbeat API
סcenarioהגדרה מומלצתהשפעה צפויהנקודות שיש לשים לב אליהן
בלוג עם כותב אחד120 שניות לניהול, 60 שניות לעריכה, כיבוי בחזיתירידה משמעותית בבקשות admin-ajaxיש לבדוק את תדירות השמירה האוטומטית
אתר פרסום עם מספר כותבים60 שניות לעריכה, 90-120 שניות לניהולהפחתת CPU, שמירה על נעילת תוכןיש לעקוב אחרי מספר טאבים פתוחים של הכותבים
חנות WooCommerce60-90 שניות לניהול, סגירה זהירה בחזיתירידת העומס על הפאנליש לבדוק את תוספי הסל, התשלום והניהול של המלאי
אתר תדמית עסקי120 שניות לניהול, כיבוי בחזיתהפחתה בטוחה ביותריש לבדוק תוספי טפסים ואבטחה
אתר שמקבל התראות על מגבלת משאביםראשית 60 שניות, לאחר מכן 120 שניות לבדוקהפחתת פיקים ב-CPUיש למדוד באמצעות לוגים וגרפים של ההוסטינג

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

כיצד להגביל את ה-Heartbeat API של WordPress?

ישנם שלושה שיטות מעשיות להגביל את ה-Heartbeat API של WordPress: שימוש בתוסף, הוספת קוד לקובץ פונקציות של התבנית או שימוש בהגדרות המובנות של תוספי ביצועים. אם הידע הטכני שלך נמוך, שיטת התוסף היא הבטוחה ביותר. אם אתה מפתח, תוכל לבצע הגדרות יותר מבוקרות עם קטע קוד קטן.

שיטה 1: הגבלת Heartbeat בעזרת תוסף Heartbeat Control

השיטה הקלה ביותר היא להשתמש בתוסף שנועד לנהל את תנועת ה-Heartbeat. עם תוסף Heartbeat Control של WP Rocket או תוספים אמינים דומים, תוכל להגדיר חוקים נפרדים עבור תחומים שונים.

צעדים:

  • לך ללוח הניהול של WordPress ובחר בתוספים > הוסף חדש.
  • חפש את Heartbeat Control והתקן את התוסף המעודכן והאמין.
  • לאחר הפעלת התוסף, גש למסך ההגדרות.
  • קבע את התדירות ל-60 או 120 שניות עבור לוח הבקרה או לוח הניהול.
  • בחר 60 שניות במקום לכבות לחלוטין את אזור עריכת הפוסט.
  • כבה את ה-Heartbeat בחזית או קבע אותו לתדירות הארוכה ביותר.
  • שמור את השינויים ועקוב אחרי גרף ה-CPU במשך 24 שעות.

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

שיטה 2: שינוי תדירות ה-Heartbeat בעזרת functions.php

אם אתה רוצה להגביל בעזרת קוד, יש להוסיף את השינוי לא לקובץ התבנית הראשי אלא, אם אפשר, לקובץ functions.php של תבנית הילד או לתוסף קטן ייחודי לאתר. כך, בעת עדכון התבנית, ההגדרות שלך לא יימחקו.

הדוגמה הבאה מגדילה את תדירות ה-Heartbeat ל-60 שניות:

add_filter('heartbeat_settings', 'hostragons_heartbeat_interval'); function hostragons_heartbeat_interval($settings) { $settings['interval'] = 60; return $settings; }

קוד זה מקרב את התדירויות הקצרות יותר ל-60 שניות ומפחית את מספר הבקשות. מעבר מתדירות של 15 שניות ל-60 שניות יכול להפחית את מספר הבקשות ב-Heartbeat ב-75%. לדוגמה, ב-5 סשנים של מנהלים, במקום 1,200 בקשות בשעה, יהיו כ-300 בקשות. הרווח האמיתי תלוי בכמה נתונים נוספים תוספים מוסיפים לבקשות הללו.

אם אתה רוצה מבנה יותר אגרסיבי, תוכל לכבות את ה-Heartbeat בחזית ולשמור אותו פתוח בלוח הניהול:

add_action('init', 'hostragons_disable_heartbeat_frontend', 1); function hostragons_disable_heartbeat_frontend() { if (!is_admin()) { wp_deregister_script('heartbeat'); } }

קוד זה מכבה את הסקריפט של ה-Heartbeat בחזית. אך יש לבדוק את ההתנהגות של אתרים שמשתמשים בתוסף למנוי, התראות בזמן אמת, עדכון סל או עורך חזיתי. אם ההתנהגות בסוגי עמודים כמו תשלום, סל או חשבון שלי ב-WooCommerce משתנה, עדיף להשתמש בתוסף ולהגדיר את ההגדרות לפי עמוד.

שיטה 3: ניהול בעזרת WP Rocket או תוספי ביצועים

חלק מתוספי кеш וביצועים מציעים ניהול של ה-Heartbeat בהגדרותיהם. בכלים כמו WP Rocket תוכל לבחור רמות שונות עבור לוח הניהול, אזור עריכת הפוסט וחזית האתר דרך הלשונית של ה-Heartbeat. שיטה זו מפחיתה את הצורך בתוסף נוסף לאתרים שמשתמשים כבר בתוסף לביצועים.

בעת שימוש בתוסף לביצועים, הקפד לא להפעיל שני מודולים שונים עם אותה פונקציה בו זמנית. לדוגמה, הפעלת הגדרות ה-Heartbeat של WP Rocket יחד עם תוסף Heartbeat Control נפרד עלולה לגרום לקונפליקטים או להתנהגות בלתי צפויה. הכלל הבסיסי באופטימיזציה של WordPress הוא: השתמש בכלי אחד בלבד שמבצע את אותה משימה, מדוד את התוצאה ולאחר מכן הוסף שינויים חדשים.

מדידת השימוש ב-CPU כדי למצוא את ההגדרה הנכונה

לקחת מדידות לפני ואחרי הגדרת ה-Heartbeat היא חלק חיוני באופטימיזציה מקצועית. פשוט להרגיש שהלוח ניהול מהיר יותר אינו מספיק כהוכחה. יש להעריך את גרף השימוש ב-CPU, מספר תהליכי PHP, לוג הגישה ולוגי השגיאות יחד.

תוכנית הבדיקה המומלצת:

  • קח מדידה התחלתית: רשום גרף של 24 שעות של CPU ו-RAM לפני ביצוע שינויים.
  • בדוק את לוג הגישה: בדוק את תדירות הבקשות לקובץ admin-ajax.php.
  • החל את ההגדרה הראשונה: הגדל את תדירות ה-Heartbeat ל-60 שניות, סגור בחזית.
  • חכה 24-48 שעות: עקוב אחרי שינויים בשימוש ב-CPU תחת אותן תנאי תנועה.
  • אם צריך, נסה 120 שניות: במיוחד באתרים עסקיים, תדירות ארוכה יותר לא תגרום לבעיות.
  • בדוק תכונות קריטיות: בדוק שמירה אוטומטית של פוסטים, סל של WooCommerce, ניהול הזמנות ותהליכי מנוי.

לדוגמה, באתר WordPress עסקי, כאשר לוח הניהול פתוח, השימוש ב-CPU מגיע ל-80-90%. הגדלת תדירות ה-Heartbeat מ-15 שניות ל-60 שניות עשויה להפחית את פיקות ה-CPU ב-20-40%. אך אם באותו אתר תוסף גיבוי מריץ סריקות כל שעה, אופטימיזציית ה-Heartbeat לבדה לא תהיה מספקת. במצב כזה יש לדון ב-אופטימיזציית מהירות WordPress וב-שימוש במשאבי הוסטינג יחד.

האם תמיד השימוש ב-admin-ajax.php נובע מה-Heartbeat?

האם תמיד השימוש ב-admin-ajax.php נובע מה-Heartbeat?

לא. הקובץ admin-ajax.php משמש על ידי מגוון רחב של תהליכים ב-WordPress. API ה-Heartbeat הוא רק אחד מהם. תוספי טפסים, תכונות סינון, חיפוש בזמן אמת, סריקות אבטחה, עדכוני סל קניות של מסחר אלקטרוני ותכונות מסוימות של תבניות עשויים גם לשלוח בקשות לאותו הקובץ.

לכן, לראות תנועה לקובץ admin-ajax.php ולסגור את ה-Heartbeat לא תמיד יהיה האבחון הנכון. תוכל לפתוח את הלשונית Network בכלים של המפתחים בדפדפן שלך ולבדוק אם ב-payload של הבקשה יש action=heartbeat. אם ערך ה-action שונה, הבעיה עשויה לנבוע מתוסף אחר.

גם בצד השרת ניתן לבצע ניתוח של לוג הגישה. יש לבדוק מאיזה IP מגיעים הבקשות העמוסות, באילו שעות ואילו דפי הפניה היו. אם התנועה נובעת מרובוטים, פתרונות כמו חומת אש, הגבלת קצב או הגנה מפני רובוטים עשויים להיות פתרונות מדויקים יותר. לשמירה על חיבור מאובטח ולהגדרת תעודת SSL נכונה, יש לעדכן את דף ה-תעודת SSL שלך, מה שחשוב גם מבחינת ביצועים וגם מבחינת סימני אבטחה.

טעויות נפוצות כאשר מגבילים את ה-Heartbeat

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

  • לסגור את ה-API לחלוטין בכל מקום: שמירה אוטומטית ונעילת תוכן עלולות להפסיק לפעול.
  • להוסיף קוד לאתר חי מבלי לבדוק: שגיאות תחביר עלולות לגרום לבעיות במסך הלבן.
  • לא לבדוק את תהליך התשלום של WooCommerce: בעיות בלתי צפויות עלולות להתרחש בתהליכי סל וקנייה.
  • להשתמש ביותר מתוסף ביצועים אחד בו זמנית: קונפליקטים מקשים על המדידה.
  • לייחס את בעיות ה-CPU רק ל-Heartbeat: שאילתות כבדות, תנועות רובוטים או משימות cron עשויות להיות הגורם האמיתי.
  • לעשות שינויים מבלי לגבות: במקרה של שגיאת קוד פשוט, זמן החזרה מתארך.

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

צעדים נוספים להפחתת השימוש ב-CPU מעבר ל-Heartbeat API

הגבלת ה-Heartbeat היא צעד יעיל, אך אופטימיזציה של CPU ב-WordPress היא תהליך רחב יותר. לשם ביצועים קבועים, יש ליישם גם את הצעדים הבאים:

שימוש בקאש

הכנת קאש של העמודים מפחיתה בצורה משמעותית את העומס על PHP ומסד הנתונים בבקשות המבקרים. כאשר הקאש מופעל בעמודים סטטיים, אין צורך להפעיל את ליבת WordPress מחדש עבור כל ביקור. זו אחת הדרכים היעילות ביותר להפחתת השימוש ב-CPU.

הסרת תוספים מיותרים

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

בדיקת WP-Cron

מערכת ה-cron של WordPress יכולה להיראות מופעלת בכל ביקור. באתרים עם תנועה גבוהה, זה עשוי להגדיל את השימוש ב-CPU. הפעלת מערכת cron לתפעול מתוכנן היא מבנה יותר מבוקר. נושא זה שונה מה-Heartbeat אך מצמצם את העומס ברקע באופן דומה.

אופטימיזציה של מסד הנתונים

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

גרסת PHP ומשאבי הוסטינג

גרסאות PHP עדכניות מספקות בדרך כלל ביצועים טובים יותר. מבנה תוספים ותבניות תואמים ל-PHP 8.x עשוי להניב שימוש נמוך יותר ב-CPU תחת אותה תנועה. עם זאת, אופטימיזציה של התוכנה צריכה להיות נתמכת בתשתית הוסטינג מתאימה. אם התנועה שלך גדלה, ייתכן שכדאי לשקול שרת VPS או אפשרויות הוסטינג של WordPress ניתנות להתרחבות.

מפת דרכים מומלצת ליישום בטוח

בעת הגבלת API ה-Heartbeat באתר WordPress חי, מעקב אחרי הסדר הבא מספק תוצאות בטוחות ומדידות:

  • קח קודם כל גיבוי מלא.
  • רשום את השימוש הנוכחי ב-CPU, RAM ותעבורת admin-ajax.php.
  • וודא שה-Heartbeat אכן יוצר בקשות כבדות.
  • סגור את ה-Heartbeat בחזית או קבע אותו לתדירות הארוכה ביותר.
  • אל תרד מתדירות של 60 שניות באזור עריכת הפוסט.
  • בוחן את טווח 90-120 שניות בלוח הניהול.
  • בדוק את תהליכי התשלום, המנוי והטפסים של WooCommerce ידנית.
  • השווה את השימוש במשאבים ב-24-48 שעות.
  • אם התוצאה אינה מספקת, נתח את העומסים שנובעים מתוספים, תבניות ומשימות cron.

גישה זו מאפשרת לך לבצע אופטימיזציה מבוססת נתונים במקום להסתמך על הגדרה אחת בלבד. במטרת תחזוקה מקצועית של WordPress, המטרה היא לא רק להפחית את ערך ה-CPU, אלא גם לשמור על יציבות האתר ועל חוויית המשתמש.

סיכום: אל תכבה את ה-Heartbeat, הגבילה אותו בצורה חכמה

הגבלת API ה-Heartbeat של WordPress, כאשר היא מיועדת כראוי, היא אופטימיזציה מעשית המפחיתה את השימוש ב-CPU, מרגיעה את לוח הניהול ומאפשרת שימוש יותר יעיל במשאבי ההוסטינג. השיטה הבריאה ביותר היא להגביל את ה-API בחזית, להשאיר טווח בטוח באזור עריכת הפוסט ולבחון את טווח 60-120 שניות בלוח הניהול.

אם הבעיה שלך עם ה-CPU נמשכת, ה-Heartbeat עשויה להיות רק נקודת התחלה; יש לדון בקשיים נוספים כמו קאש, עומס תוספים, WP-Cron, מסד הנתונים וחבילת ההוסטינג יחד. אם אתה מחפש תשתית יותר יציבה עבור אתר ה-WordPress שלך על Hostragons, תוכל לבדוק את פתרונות ה-אחסון WordPress ולבנות תוכנית עדכון רכה בהתאם לצרכי המשאבים של האתר שלך.

שאלות נפוצות

האם יש לכבות את API ה-Heartbeat של WordPress לחלוטין?

כמעט בכל האתרים אין להמליץ על כיבוי מוחלט. שמירה אוטומטית, נעילת תוכן ובדיקת סשן עלולות להיפגע. הפתרון הבטוח יותר הוא לסגור את ה-Heartbeat בחזית ולהגדיל את הטווח בלוח הניהול ובאזור העריכה ל-60-120 שניות.

כמה API ה-Heartbeat מפחית את השימוש ב-CPU?

זה תלוי במבנה האתר. הגדלת התדירות מ-15 שניות ל-60 שניות יכולה תיאורטית להפחית את מספר הבקשות ב-Heartbeat ב-75%. הרווח האמיתי ב-CPU משתנה לפי עומס התוספים, מספר המשתמשים ומשאבי ההוסטינג.

האם השימוש הגבוה ב-admin-ajax.php תמיד נובע מה-Heartbeat?

לא. טפסים, WooCommerce, חיפוש בזמן אמת, תוספי אבטחה ותכונות תבניות עשויים גם להשתמש ב-admin-ajax.php. תוכל לבדוק אם הבקשה נובעת מה-Heartbeat על ידי בדיקת ערך action=heartbeat בלשונית Network.

האם הגבלת ה-Heartbeat באתרים של WooCommerce היא בטוחה?

זה בטוח, אך יש לבדוק בזהירות. יש לבדוק את תהליכי הסל, התשלום, ניהול ההזמנות, עדכון המלאי ודפי המנוי. בדרך כלל, עדיף להאריך את הטווח במקום לכבות לחלוטין.

כמה זמן יש לבצע בדיקות לאחר הגדרת ה-Heartbeat?

מומלץ לבצע בדיקות במשך לפחות 24-48 שעות. במהלך תקופה זו יש לעקוב אחרי גרפי ה-CPU, מספר תהליכי PHP, בקשות admin-ajax.php ותכונות קריטיות של האתר. אם צפיפות התנועה משתנה בין השבוע ליום, ניתן לבצע מדידות יותר ארוכות.

שתפו פוסט זה:

צוות Hostragons

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

צור קשר