אופטימיזציה של ביצועי אתר בזמן הידרדרות

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

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
אופטימיזציה של ביצועי אתר בזמן הידרדרות
בינוני
~3-5 ימים
שאלות נפוצות

הידרדרות ביצועים: היכן מאבד האתר את המהירות

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

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

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

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

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

מה נותן טיפול בצניחות: אפקטים מדידים

האפקט המרכזי — זמן התגובה מפסיק "לצוף" תחת עומס. אם לפני הטיפול זמן התגובה בדף טיפוסי גדל בשעות שיא פי 4–6, אחרי הסרת צווארי הבקבוק הפער בין מצב רגוע למצב עמוס מצטמצם ל-10–15%.

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

השבתה נמדדת לא בשעות אלא בדקות. עבודות תחזוקה — הפצת שינויים, עדכון סכימת נתונים, החלפת אתרים — מפסיקות לדרוש עצירה מלאה של השירות: התעבורה מועברת למסלול גיבוי, חלון אי-הזמינות מצטמצם מ-40–60 דקות ליחידות בודדות, וחלק מהפעולות עוברות בלי הפסקה מורגשת כלל. גם התאוששות אחרי תקלת צומת נכנסת לדקות, כי המצב כבר לא תלוי במכונה אחת.

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

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

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

פורמטי עבודה: בדיקה חד-פעמית, ליווי, עיבוד מחדש

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

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

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

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

המגבלה הוגנת: המצב דורש גישה לבנייה, למדדים ולרשימת סדרי העדיפויות שלכם — בלעדיהם הוא מתנוון לאוסף דוחות חד-פעמיים. תארו את המשימה — נחזור עם הערכה ותוכנית באיזה מצב לסגור אותה.

סדר העבודות: ממדידות להעברת נהלים

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

  1. מתעדים קו בסיס. לוקחים מדידות בסביבת העבודה תחת עומס אמיתי: זמן תגובה בתרחישי מפתח, תורי בקשות, צריכת זיכרון, הפניות הכבדות ביותר למסד הנתונים. מדידות בסביבת בדיקה ריקה לא מראות דבר — ההידרדרות מתגלה דווקא בנפח ובמקביליות.
  2. מחפשים את צוואר הבקבוק. משווים בין מדדים לקוד ולתוכניות שאילתות, פוסלים גרסאות שווא. בפועל צוואר הבקבוק הוא כמעט תמיד אחד, ושאר הצניחות הן התוצאה שלו.
  3. מרכיבים סכימת פתרון. קובעים מה משנים: אינדקסים ומבנה שאילתות, מטמון, העברת פעולות כבדות למשימות רקע, הגבלת פניות במקביל.
  4. מיישמים בשלבים. כל שינוי — בשלב נפרד עם אפקט מובן ואפשרות חזרה, כדי שאפשר יהיה למדוד את התרומה של כל אחד.
  5. בודקים תחת עומס. חוזרים על המדידות באותם תנאים ומשווים לקו הבסיס: מעניין לא הזמן הממוצע אלא ההתנהגות בשיא וההתאוששות אחריו.
  6. מקבלים את התוצאה. קריטריוני הקבלה מתאמים לפני תחילת העבודה, כדי שהקבלה תהיה השוואת מספרים ולא ויכוח על רשמים.
  7. מעבירים תיעוד. סכימת ארכיטקטורה, נוהל מדידות, תיאור נקודות צמיחה וכללים שבהם ההידרדרות לא תחזור.

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

ערכת ההגדרות והמסמכים שנשארת אצלכם

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

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

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

מקרה בוחן: איך קטלוג גדל הפסיק לאבד מהירות

קטלוג של חנות מקוונת גדל מ-12,000 ל-58,000 פריטים, והתעבורה — כמעט פי שלושה. הידרדרות הביצועים הגיעה בעקבות: הרשימה הגיבה תוך 4–6 שניות, המסננים פעלו באיחור, ואחרי פרסומים הצניחות חזרו והחזיקו עד התערבות ידנית.

מה נמצא

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

מה שינו

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

זמן התגובה של הרשימה — 5.4 → 0.9 שניות, שיעור הבקשות האיטיות משנייה — מ-34% ל-4%, פניות למסד הנתונים לדף — מ-120 ל-14. צניחות חוזרות אחרי פרסומים נעלמו: עשרה פרסומים ברצף עברו בלי האטה מורגשת, כי הרגרסיה נתפסת לפני הפרסום, לא לפי תלונות.

במה הידרדרות ביצועים שונה מעומס יתר בשיא

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

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

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

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

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

ספקות טכניים נפוצים לגבי טיפול בצניחות

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

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

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

חלק מהתיקונים בוצעו בידי קבלנים חיצוניים — נצטרך לכתוב הכול מחדש?

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

אחרי פרסום צריך לחכות ש"יתחמם"?

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

צריך מומחה קבוע ומוקדש?

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

נדון במשימה שלכם ונחזור עם הערכה ותוכנית

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

מה לשלוח לשלב הראשון של שיתוף הפעולה:

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

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

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

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

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

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1393
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1368
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1139
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1152
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1231
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    641