הסברים · ארבעה
חמש עמודות חוזרות ברוב הטבלאות שלנו. הנה מה שכל אחת מודדת, למה שווה לפרסם אותה, ובערך איך נראה ערך טוב או רע במכונה שבאמת יש לך.
המספר המרכזי
השעון מתחיל כשהמשימה נוספת ונעצר כשהתוכן המוגמר קיים על הדיסק, מאומת ומחולץ. לא כשההורדה מסתיימת, ולא כשהלקוח מכריז שסיים.
זה המספר היחיד שמתאים למשהו שאתה חווה. לקוח יכול לסיים להוריד מהר ואז להעביר דקה בבדיקה ובפריקה, ומהמקום שבו אתה יושב הדקה הזאת היא חלק מההמתנה. מדידת ההורדה בלבד הייתה מחמיאה ללקוחות שעושים את העבודה אחר כך, כלומר לרובם.
זו גם הסיבה שהארכיטקטורה שלנו נראית חריגה בטבלאות האלה. אנחנו מאמתים כל חתיכה עם הגעתה ופורקים בזמן שההורדה עדיין רצה, כך שכשהמאמרה האחרונה נוחתת נותר מעט מאוד לעשות. לקוחות אחרים מניחים תחילה את כל הפרסום על הדיסק, אחר כך מאמתים אותו, אחר כך פורקים אותו, בשלושה שלבים ברצף. במשימה קלה ההפרש צנוע. במשימה גדולה או פגומה הוא רוב התוצאה.
זו שקוראים לא נכון
כמות הזיכרון הגדולה ביותר שהתוכנית החזיקה בכל רגע במהלך המשימה. RSS הוא ראשי תיבות של resident set size, כלומר פשוט הזיכרון שנמצא באמת ב-RAM ולא כזה שהובטח או הוקצה.
גבוה יותר אינו אוטומטית גרוע יותר, ונמוך יותר אינו אוטומטית טוב יותר. הזיכרון מוצא כדי להימנע ממשהו יקר יותר, בדרך כלל קריאת אותם נתונים מהדיסק פעמיים. השאלה ששווה לשאול היא אם ההוצאה קונה משהו ואם היא חסומה.
חסומה היא המילה החשובה. לקוח שהזיכרון שלו גדל עם גודל המשימה ייתקל בסופו של דבר במשימה שאינו יכול לסיים במכונה שלך, והכשל מגיע כהחלפה לדיסק או כתהליך שנהרג ולא כהודעה מנומסת. אנחנו מחזיקים תקציב ונשארים בתוכו, ולכן אנחנו יכולים להעביר משימה של 190 GB במכונה שבה זמינים לנו כ-1.1 GB של זיכרון. נתון כמו 9.3 GB במשימה של 190 GB אינו רק גדול, הוא בעל צורה אחרת: הוא גדל עם העבודה.
היכן שהזיכרון שלנו עולה, אנחנו מנסים לומר מה הוא קנה. בפרסומים פגומים קשות הגרסה הנוכחית מחזיקה נתוני זוגיות בזיכרון כדי לתקן מיד במקום להביא עוד אחר כך, מה שמעלה את שיא הזיכרון מכ-0.8 GB לכ-1.3 GB וחוסך כעשר שניות. בפרסום שאינו פגום ההוצאה הזאת אינה מתרחשת והנתון הוא 0.24 GB.
מדד האנרגיה
סך זמן המעבד שצרכה התוכנית כולה, מסוכם על פני כל הליבות. זו מדידה של עבודה שנעשתה ולא של זמן שחלף, ולכן היא יכולה להיות גדולה בהרבה מהשעון.
אם משימה נמשכת 100 שניות ומדווחת 1,600 שניות מעבד, בערך שש עשרה ליבות היו עסוקות לאורך כל הריצה. זה משנה משלוש סיבות מעשיות: זה חום, זה חשמל, ובמכונה שעושה משהו נוסף באותו זמן זו תחרות על משאבים. לקוח שמסיים בזמן סביר תוך רוויה של כל ליבה לא היה יעיל, הוא היה יקר.
בעמודה הזאת מופיעים ההפרשים הרחבים ביותר באתר כולו, רחבים יותר מכל זמן סיום. עבור פלט זהה בית-בית באותו פרסום פגום, מדדנו פיזור של פי שלושים בשניות מעבד בין לקוחות. שווה לבדוק זאת לפני שמניחים ששני לקוחות שמסיימים בהפרש של שניות ספורות עושים כמות עבודה דומה.
שתי עמודות הדיסק
שיא דיסק הוא השטח הנוסף הגדול ביותר שהמשימה נזקקה לו ברגע מסוים. תעבורת הקלט/פלט היא הכמות הכוללת של נתונים שנקראו ונכתבו כדי להגיע לשם. הם עונים על שאלות שונות.
שיא הדיסק הוא אילוץ קשיח. הוא מכריע אם המשימה יכולה לרוץ בכלל. רוב הלקוחות כותבים את הפרסום כולו לדיסק ואז פורקים עותק שני לצידו, כך שהם זקוקים לפי שניים מהתוכן בשטח פנוי. למשימה של 190 GB זה כ-313 GB פנויים לפני שמתחילים, לעומת כ-157 GB אצלנו, כי אנחנו פורקים תוך כדי הורדה ולעולם לא ממשים את כרכי הארכיון. אם הדיסק שלך אינו יכול להכיל פי שניים מהמשימה, ההפרש הזה אינו אחוז, הוא השאלה אם ההורדה מתרחשת.
תעבורת הקלט/פלט היא בלאי וזמן. כתיבת הפרסום, קריאתו בחזרה לאימות, קריאתו שוב לפריקה וכתיבת הפלט הן ארבע מעברים על הנתונים. עשייה במעבר אחד היא כשליש מהתעבורה, שבכונן SSD היא אורך חיים, ובכונן איטי יותר היא לעיתים קרובות צוואר הבקבוק האמיתי ולא הרשת.
הערה על האופן שבו אנחנו קוראים את השניים האלה, כי היא תפסה אותנו ועשויה לתפוס גם אותך בקריאת הטבלאות שלנו. שני הנתונים מגיעים ממונים שמכסים את הדיסק כולו, לא תוכנית יחידה. זה הופך אותם לבדיקה מצוינת אם מדידה זוהמה על ידי משהו אחר שרץ, וזה אומר שמספר שנראה בלתי אפשרי הוא בדרך כלל בדיוק זה: משימה של 6.5 GB שמדווחת 144 GB של תעבורת דיסק אינה לקוח שמתנהג מוזר, אלה שתי משימות שחולקות מכונה.
קריאת טבלה
הטבלאות עצמן, עם הגרסה והתאריך לצד כל אחת, נמצאות בעמוד בדיקות הביצועים, כולל הסבבים שאנחנו מפסידים.