בדף הזה מתואר הביצועים המשוערים ש-Spanner יכול לספק בתנאים אופטימליים, גורמים שיכולים להשפיע על הביצועים וטיפים לבדיקה ולפתרון בעיות בביצועים של Spanner.
המידע בדף הזה רלוונטי למסדי נתונים של GoogleSQL ושל PostgreSQL.
שיפורים בביצועים ובאחסון
שיפורים בביצועים ובאחסון הוטמעו בכל ההגדרות של מופעי Spanner באזור, בשני אזורים ובמספר אזורים. כדי ליהנות מהשיפורים האלה, שמוצעים ללא עלות נוספת, לא צריך לבצע שינויים באפליקציה או להגדיר משהו באופן ידני במופעי Spanner. השיפורים האלה בביצועים מובילים לתפוקה גבוהה יותר ולזמן אחזור טוב יותר בצמתי Spanner בכל תצורות המופעים.
שיפור התפוקה של הביצועים
כל ההגדרות של מופעי Spanner כוללות שיפור בביצועים ומציעות תפוקה גבוהה יותר. בטבלה הבאה מפורטת תפוקת הנתונים המשוערת (שאילתות לשנייה) להגדרות של מופעי Spanner:
| סוג ההגדרה של המופע | קריאות שיא (QPS לכל אזור) | כתיבות בשיא (סך הכתיבות לשנייה) | שיא הכתיבות באמצעות כתיבות שעברו אופטימיזציה של קצב העברת הנתונים (סך הכול QPS) | ||
|---|---|---|---|---|---|
| אזורי | SSD: 22,500 HDD: 1,500 |
או | SSD: 3,500 HDD: 3,500 |
SSD: 22,500 HDD: 22,500 |
|
| שני אזורים ומספר אזורים | SSD: 15,000 HDD: 1,000 |
או | SSD: 2,700 HDD: 2,700 |
SSD: 15,000 HDD: 15,000 |
מידע על תפוקת הביצועים של הגדרות המופעים האלה זמין במאמר ביצועים עבור עומסי עבודה אופייניים. מידע נוסף על שימוש בכונני SSD ובדיסקים קשיחים (HDD) לאחסון הנתונים זמין במאמר סקירה כללית על אחסון בשכבות.
ההנחיות לקריאה ניתנות לכל אזור (כי אפשר להציג קריאות מכל אזור עם הרשאת קריאה וכתיבה או הרשאת קריאה בלבד), ואילו ההנחיות לכתיבה הן לכל ההגדרה. ההנחיות לקריאה מניחות שאתם קוראים שורות בודדות של 1KB. ההנחיות לכתיבה מניחות שאתם כותבים שורות בודדות בנפח של 1KB של נתונים לכל שורה.
כדי להשיג ביצועים אופטימליים של כתיבה באמצעות כתיבה עם אופטימיזציה של קצב העברת נתונים, צריך להשתמש בעיכוב של 100ms לאיחוד נתונים.
באופן כללי, קצב העברת הנתונים לקריאה ולכתיבה של מופע Spanner גדל באופן ליניארי כשמוסיפים למופע קיבולת מחשוב נוספת (צמתים או יחידות עיבוד). לדוגמה, אם מכונת Spanner באזור יחיד עם 2 צמתים יכולה לספק עד 45,000 קריאות בשנייה, אז מכונת Spanner באזור יחיד עם 4 צמתים יכולה לספק עד 90,000 קריאות בשנייה.
אם אתם לא רואים את הביצועים הצפויים בעומס העבודה שלכם ב-Spanner, כדאי לעיין בפתרון בעיות שקשורות לירידה בביצועים כדי לקבל מידע על סיבות נפוצות.
נפח אחסון גדול יותר
בכל ההגדרות של מכונות Spanner באזור אחד, בשני אזורים ובמספר אזורים, לכל צומת (1,000 יחידות עיבוד) של נפח מחשוב במכונה יש נפח אחסון מוגדל של 10TiB.
ביצועים לעומסי עבודה אופייניים
כל ההגדרות של מופעי Spanner כוללות שיפור בביצועים ומציעות תפוקה גבוהה יותר.
ביצועים של הגדרות לפי אזור
כל 1,000 יחידות עיבוד (צומת אחד) של קיבולת מחשוב יכולות לספק את ביצועי השיא הבאים (ב-100% CPU) בהגדרת מופע אזורי:
| קריאות שיא (QPS לכל אזור) | כתיבות בשיא (סך הכתיבות לשנייה) | שיא הכתיבות באמצעות כתיבות שעברו אופטימיזציה של התפוקה (סך הכול QPS) | ||
|---|---|---|---|---|
| SSD: 22,500 HDD: 1,500 |
או | SSD: 3,500 HDD: 3,500 |
SSD: 22,500 HDD: 22,500 |
במקרים של הגדרות אזוריות של מופעים שמאפשרות רפליקות אופציונליות לקריאה בלבד, הרפליקה האופציונלית לקריאה בלבד יכולה לתמוך ב-7,500 קריאות נוספות לשנייה לאחסון SSD וב-500 קריאות נוספות לשנייה לאחסון HDD.
ביצועים בהגדרות של שני אזורים
כל 1,000 יחידות עיבוד (צומת אחד) של קיבולת מחשוב יכולות לספק את ביצועי השיא הבאים (ב-100% CPU) בהגדרת מופע דו-אזורי. כדי להגדיל את קצב העברת הנתונים לכתיבה מעבר למספרים שבטבלה, אפשר להשתמש בכתיבות שעברו אופטימיזציה של קצב העברת הנתונים.
| שם הגדרת הבסיס | קריאות שיא משוערות (QPS לכל אזור) | כתיבות משוערות בשעות השיא (סך הכול QPS) |
|---|---|---|
dual-region-australia1 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
dual-region-germany1 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
dual-region-india1 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
dual-region-japan1 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
ההנחיות לקריאה ניתנות לפי אזור (כי אפשר לבצע קריאות מכל מקום), וההנחיות לכתיבה הן לכל ההגדרה. ההנחיות לקריאה ולכתיבה מניחות שאתם קוראים וכותבים שורות בודדות של נתונים בגודל 1KB לכל שורה.
ביצועים של הגדרות במספר אזורים
לכל הגדרה של מופע Spanner במספר אזורים יש מאפייני ביצועים שונים במקצת, בהתאם לטופולוגיית השכפול. כדי להגדיל את קצב העברת הנתונים לכתיבה מעבר למספרים שבטבלה, אפשר להשתמש בכתיבה עם אופטימיזציה של קצב העברת הנתונים.
כל 1,000 יחידות עיבוד (צומת אחד) של קיבולת מחשוב יכולות לספק את ביצועי השיא הבאים (ב-100% CPU):
| שם הגדרת הבסיס | קריאות שיא משוערות (QPS לכל אזור) | כתיבות משוערות בשעות השיא (סך הכול QPS) |
|---|---|---|
asia1 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
asia2 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
eur3 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
eur5 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
eur6 |
SSD: 15,000, 7,500 לכל העתק אופציונלי לקריאה בלבד HDD: 1,000, 500 לכל העתק אופציונלי לקריאה בלבד |
SSD: 2,700 HDD: 2,700 |
eur7 |
SSD: 15,000, 7,500 לכל העתק אופציונלי לקריאה בלבד HDD: 1,000, 500 לכל העתק אופציונלי לקריאה בלבד |
SSD: 2,700 HDD: 2,700 |
nam3 |
SSD: 15,000, 7,500 לכל העתק אופציונלי לקריאה בלבד HDD: 1,000, 500 לכל העתק אופציונלי לקריאה בלבד |
SSD: 2,700 HDD: 2,700 |
nam6 |
SSD: 15,000 ב-us-central1 וב-us-east17,500 ב- us-west1 וב-us-west2HDD: 1,000 ב- us-central1 וב-us-east1500 ב- us-west1 וב-us-west2 [1] |
SSD: 2,700 HDD: 2,700 |
nam7 |
SSD: 15,000, 7,500 לכל העתק אופציונלי לקריאה בלבד HDD: 1,000, 500 לכל העתק אופציונלי לקריאה בלבד |
SSD: 2,700 HDD: 2,700 |
nam8 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
nam9 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
nam10 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
nam11 |
SSD: 15,000, 7,500 לכל העתק אופציונלי לקריאה בלבד HDD: 1,000, 500 לכל העתק אופציונלי לקריאה בלבד |
SSD: 2,700 HDD: 2,700 |
nam12 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
nam13 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
nam14 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
nam15 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
nam16 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
nam-eur-asia1 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
nam-eur-asia3 |
SSD: 15,000 HDD: 1,000 |
SSD: 2,700 HDD: 2,700 |
- [1]:
us-west1ו-us-west2מספקות רק חצי מהביצועים של QPS כי הן מכילות רפליקה אחת לכל אזור במקום שתיים.
ההנחיות לקריאה ניתנות לפי אזור (כי אפשר לבצע קריאות מכל מקום), וההנחיות לכתיבה הן לכל ההגדרה. ההנחיות לקריאה ולכתיבה מניחות שאתם קוראים וכותבים שורות בודדות של נתונים בגודל 1KB לכל שורה.
הפעלת עומסי העבודה הרגילים ב-Spanner
כשמתכננים את הקיבולת, תמיד כדאי להריץ את עומסי העבודה האופייניים שלכם מול מופע Spanner, כדי להבין מהי הקצאת המשאבים הכי טובה לאפליקציות שלכם. כלי ההשוואה של Google PerfKit משתמש ב-YCSB כדי להשוות בין שירותי ענן. אתם יכולים לפעול לפי המדריך של PerfKitBenchmarker ל-Spanner כדי ליצור בדיקות לעומסי העבודה שלכם. כשעושים את זה, צריך לשנות את הפרמטרים בקובצי ההגדרות של ההשוואה yaml כדי לוודא שההשוואה שנוצרה משקפת את המאפיינים הבאים בסביבת הייצור:
- הגודל הכולל של מסד הנתונים
- סכימה (לדוגמה: גודל מפתח השורה, מספר העמודות, גדלי נתוני השורה)
- דפוס גישה לנתונים (חלוקת מפתחות שורות)
- תערובת של קריאות לעומת כתיבות
- סוג השאילתות והמורכבות שלהן
שחזור של נתוני השוואה
כדי לשחזר את מספרי ההשוואה, פועלים לפי המדריך בנושא השוואה לשוק של Spanner באמצעות כלי ההשוואה של PerfKit, ומשתמשים בקבצים המתאימים yaml בתיקייה throughput_benchmark.
כדי להשוות בין מופעים בהגדרת מופע שעברה שיפורים בביצועים, צריך לוודא שהבדיקות שלכם פועלות באחת מההגדרות המשופרות האלה של המופעים.
הגנה מפני כשלים אזוריים ואזוריים
כשמריצים את עומסי העבודה בסביבת ייצור, חשוב להקצות מספיק קיבולת מחשוב כדי להמשיך לשרת את התנועה במקרה של אובדן של אזור שלם (למכונות אזוריות) או של אזור שלם (למכונות בשני אזורים ומכונות במספר אזורים). מידע נוסף על השימוש המקסימלי המומלץ ב-CPU זמין במאמר בנושא התראות על שימוש גבוה ב-CPU.
המאמרים הבאים
- איך מעצבים סכימה של Spanner
- איך עוקבים אחרי הביצועים של Spanner
- כך פותרים בעיות בכלי Key Visualizer.
- מידע על התמחור של Spanner.