WPML

בחודשים האחרונים הרגשנו שהאתר שלנו – wpml.org – הופך לאיטי יותר. תחילה, נקטנו בגישה האגרסיבית של שדרוג השרת. כאשר זה לא עזר, הקדשנו לכך מחשבה וניתחנו את הבעיה לעומק. התוצאה היא הגרסה של היום, שהפחיתה את עומס ה־CPU וזמן התגובה שלנו ב־70%.

מה שלמדנו על ניתוח ביצועים


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

השיטה שבה השתמשנו עד כה לבדיקת ביצועים הייתה:

  • יצירת מסד נתונים גדול עם הרבה פוסטים, postmeta, קטגוריות ומשתמשים
  • הפקת רשימה של העמודים ה"כבדים" יותר
  • טעינתם פעמים רבות, מדידת זמן הטעינה ויצירת פרופיל

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

אז מה חסר?

WordPress ו־WPML מורכבים קצת יותר מ"בקשת עמוד והמתנה לטעינתו". הכל קורה דרך מסד הנתונים, שהוא משאב משותף. פעולה אחת שמבקר א' מבצע במסד הנתונים יכולה להשפיע על החוויה שמבקר ב' מקבל.

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

שיפור הביצועים בפועל


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

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

אבל יש לי בעיות ביצועים אחרות, האם תוכלו לתקן אותן?


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

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

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

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

מה עוד חדש ב־WPML 4.2.6

ליבת WPML 4.2.6

  • הוספת הפילטר wpml_post_edit_meta_box_priority כדי לשנות את העדיפות של תיבת המטא לעריכת פוסטים של WPML
  • תיקון בעיה בשדרוג תוספים במקרה של התקנות בתיקיית משנה – שימוש תמיד בכתובות ה־URL של האתר
  • שמירת ההתראות רק כשנדרש כדי להפחית כתיבות מיותרות לטבלת wp_options
  • תיקון בעיית אבטחה בקישורים של בורר שפות

WPML תרגום מחרוזות 2.10.4

  • תיקון בעיה בייבוא קובצי mo של ST כדי שטבלת wp_option לא תעודכן ללא צורך

WPML ניהול תרגום 2.8.5

  • שיפור העיצוב של פקדי העימוד בעמוד עבודות תרגום
  • תיקון בעיה בהקצאת מתרגמים בעמוד עבודות תרגום כאשר שפת אזור הניהול שונה מאנגלית
  • תיקון תוכן שגוי בעמודה "Translated by" כאשר שפת אזור הניהול שונה מאנגלית

WPML Media Translation 2.5.2

  • שמירת ההתראות רק כשנדרש כדי להפחית כתיבות מיותרות לטבלת wp_options

WPML CMS Nav 1.5.1

  • שיפור ביצועים על ידי ניקוי המטמון רק כשהדבר רלוונטי

הורדה ועדכון


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

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

משוב? שאלות? הצעות?


האתרים שלנו פועלים הרבה יותר מהר עכשיו, אבל נשמח לשמוע על האתרים שלך. אנא השאר את הערותיך ונחזור אליך.

מצאת את זה שימושי? שתף מאמר זה: