למה צווארי בקבוק נודדים - ולא נשארים במקום אחד
למה צווארי בקבוק נודדים - ולא נשארים במקום אחד
צוואר בקבוק נתפס לעיתים כבעיה קבועה: רכיב אחד איטי, נקודה אחת שצריך “לתקן”.
אבל זו תפיסה שגויה.
צוואר בקבוק אינו קבוע. הוא תוצאה של הקשר - ובעיקר של עומס.
מה זה אומר שצוואר בקבוק “נודד”
מערכת מורכבת מכמה שלבים שעובדים יחד. כל שלב מהיר או איטי ביחס לאחרים - תלוי במצב.
כשמשנים את העומס, משנים את היחסים בין השלבים.
וכשהיחסים משתנים - הרכיב המגביל משתנה יחד איתם.
אותו קוד, צווארי בקבוק שונים
זו לא תאוריה. זו התנהגות טיפוסית:
בעומס נמוך החישוב כמעט לא מורגש. דווקא הדרך לשירות - הרשת - מגבילה.
בעומס בינוני הרשת כבר לא הבעיה. עכשיו המעבד הוא זה שלא עומד בקצב.
בעומס גבוה המעבד אולי חזק מספיק, אבל תורים, נעילות או סנכרון מתחילים לחנוק.
בזמן חימום לא העיבוד מגביל - אלא פתיחת חיבורים, אתחול מבנים, מילוי cache.
בזמן שיא הזיכרון או ה-I/O מגיעים לקצה, גם אם כל השאר “נראה בסדר”.
אותה מערכת. מגבלות שונות.
למה מדידה נקודתית תמיד מטעה
מדידה בנקודת זמן אחת רואה רק את המצב הנוכחי.
אבל צוואר בקבוק הוא לא תכונה של רכיב - הוא תכונה של התנהגות מערכתית תחת תנאים מסוימים.
לכן:
- מדידה בעומס אחד לא מספרת מה יקרה בעומס אחר
- מדידה אחרי חימום לא מספרת מה יקרה בהפעלה
- מדידה של רכיב אחד לא מספרת מה מגביל את הזרימה
הצוואר לא נעלם. הוא פשוט זז.
צוואר בקבוק אחד - מיתוס מסוכן
החיפוש אחרי “צוואר הבקבוק האחד” מניח שהמערכת סטטית.
אבל מערכות חיות. הן משתנות עם הזמן, העומס וההקשר.
מי שמתקן צוואר בקבוק אחד ומצפה ליציבות קבועה - מגלה מהר מאוד את הבא בתור.
סיכום
צווארי בקבוק אינם בעיות נקודתיות שצריך “למצוא ולפתור”.
הם סימפטום של מערכת חיה שמשנה התנהגות עם תנאים משתנים.
מערכת יציבה לא שואלת “איפה צוואר הבקבוק?” אלא “איך הוא זז - ואיך אנחנו רואים אותו בזמן אמת”.
שם מתחילה הבנה מערכתית אמיתית.