בדף הזה מפורטות שיטות מומלצות להשגת הביצועים, העמידות והזמינות הטובים ביותר מ-Cloud SQL.
אם נתקלתם בבעיות במכונה של Cloud SQL, כדאי לבדוק את הדברים הבאים:
הגדרה וניהול של מכונות
| שיטה מומלצת | מידע נוסף |
|---|---|
| כדי לוודא שהמכונות שלכם מכוסות על ידי הסכם SLA של Cloud SQL, קראו את ההנחיות התפעוליות ופעלו לפיהן. | |
| כדי לקבוע מתי יתבצעו עדכונים שמשבשים את הפעילות, מגדירים חלון זמן לתחזוקה במכונה הראשית. | חלון זמן לתחזוקה |
| בעומסי עבודה שכוללים הרבה פעולות קריאה, כדאי להוסיף עותקים לקריאה בלבד כדי להפחית את העומס על המכונה הראשית. | אפשר גם להשתמש במאזן עומסים כמו HAProxy כדי לנהל את התנועה לרפליקות. |
| אם אתם מוחקים ויוצרים מחדש מכונות באופן קבוע, כדאי להשתמש בחותמת זמן במזהה המכונה כדי להגדיל את הסבירות שתוכלו להשתמש במזהי המכונות החדשים. | |
| אל תתחילו פעולה ניהולית לפני שהפעולה הקודמת הסתיימה. |
מכונות של Cloud SQL לא יקבלו בקשות חדשות לפעולות עד שהן יסיימו את הפעולה הקודמת. אי אפשר להריץ בו-זמנית פעולות ניהול (כמו הפעלות מחדש, עדכונים, ייבוא, ייצוא, גיבויים ושכפולים) באותה מכונה. אם תנסו להתחיל פעולה חדשה לפני הזמן, בקשת הפעולה תיכשל.
סטטוס המכונה במסוף Cloud de Confiance לא משקף אם פעולה כלשהי פועלת. סימן הווי הירוק מציין רק שהמכונה נמצאת במצב |
| הגדרת האחסון כך שיתאים לתחזוקה קריטית של מסד הנתונים. |
אם ההגדרה enable automatic storage increases מושבתת במכונה, או אם ההגדרה automatic storage increase limit מופעלת, ודאו שיש לכם לפחות 20% נפח אחסון פנוי כדי לאפשר פעולות תחזוקה קריטיות של מסד הנתונים ש-Cloud SQL עשוי לבצע. כדי לקבל התראה כשהמקום בכונן יורד מתחת ל-20%, יוצרים מדיניות התראות שמבוססת על מדדים למדד disk utilization, עם מיקום above threshold וערך של .8. מידע נוסף זמין במאמר יצירת מדיניות התראות מבוססת-מדדים. |
| למנוע ניצול יתר של המעבד (CPU). |
בדף הפרטים של המכונה במסוף Cloud de Confiance אפשר לראות את אחוז המעבד (CPU) הזמין שבו המכונה משתמשת. מידע נוסף זמין במאמר מדדים. אפשר גם לעקוב אחרי השימוש ב-CPU ולקבל התראות על סף מסוים באמצעות יצירת מדיניות התראות על סף מדדים. כדי למנוע ניצול יתר, אפשר להגדיל את מספר המעבדים במכונה. כדי לשנות את המעבדים, צריך להפעיל מחדש את המכונה. אם למכונה כבר יש את המספר המקסימלי של מעבדים, צריך לפצל את מסד הנתונים לכמה מכונות. |
| להימנע מניצול יתר של הזיכרון. |
כשמחפשים סימנים לניצול יתר של הזיכרון, צריך להשתמש בעיקר במדד usage. כדי למנוע שגיאות של מחסור בזיכרון, מומלץ שהמדד הזה יישאר מתחת ל-90% במכונות עם 16GB או פחות, ומתחת ל-95% במכונות עם יותר מ-16GB. אפשר גם להשתמש במדד total_usage כדי לבדוק את אחוז הזיכרון הזמין שבו משתמשת מכונת Cloud SQL, כולל הזיכרון שמשמש את מאגר מסד הנתונים והזיכרון שהוקצה על ידי המטמון של מערכת ההפעלה. ההבדל בין שני המדדים האלה מאפשר לזהות כמה זיכרון מנוצל על ידי תהליכים וכמה מנוצל על ידי המטמון של מערכת ההפעלה. אפשר להשתמש בזיכרון במטמון הזה למטרה אחרת. כדי לחזות בעיות של מחסור בזיכרון, צריך לבדוק את שני המדדים ולפרש אותם ביחד. אם המדדים נראים גבוהים, יכול להיות שאין מספיק זיכרון במכונה. יכול להיות שהסיבה לכך היא הגדרה מותאמת אישית, שהמכונה קטנה מדי לעומס העבודה או שילוב של הגורמים האלה. להגדיל את המכונה של Cloud SQL כדי להגדיל את נפח הזיכרון שלה. כדי לשנות את גודל הזיכרון של המכונה, צריך להפעיל אותה מחדש. אם המכונה כבר הגיעה לגודל הזיכרון המקסימלי, צריך לפצל את מסד הנתונים לכמה מכונות. למידע נוסף על מעקב אחרי שני המדדים במסוף Cloud de Confiance , קראו את המאמר מדדים. |
אבטחה
| שיטה מומלצת | מידע נוסף |
|---|---|
| העדפה של כתובת IP פרטית | אם לא נדרשת גישה לכתובת IP ציבורית, עדיף להשתמש בכתובת IP פרטית. כך תוכלו לצמצם את החיבורים הלא מורשים לרשת של מסד הנתונים. |
| הימנעו משימוש ב-0.0.0.0/0 ברשתות מורשות | אל תכללו את 0.0.0.0/0 ברשתות מורשות, כי זה מאפשר גישה מהאינטרנט הגלובלי ללא הגבלה. |
| הימנעו מרשתות מורשות גדולות מדי | הימנעו משימוש בקידומות CIDR קטנות ברשתות מורשות, כי זה מאפשר גישה ממספר גדול מדי של מארחים. מומלץ להשתמש בקידומת CIDR לא קטנה מ-/16, ועדיף גדולה מ-/19. |
| הפעלת מדיניות סיסמאות | באמצעות כללי מדיניות לסיסמאות של מכונות, מגדירים כללי מדיניות מתאימים לסיסמאות של מכונת מסד הנתונים כדי למנוע הגדרה של סיסמאות חלשות, מגדירים זמן תפוגה ומגדירים נעילת חשבון במקרה של ניסיונות התחברות שנכשלו. זה חשוב במיוחד אם אתם מגדירים את המכונה לכתובת IP ציבורית. |
ארכיטקטורת נתונים
| שיטה מומלצת | מידע נוסף |
|---|---|
| אם אפשר, פצלו את המכונות הגדולות למכונות קטנות יותר. | אם אפשר, עדיף להשתמש בהרבה מכונות קטנות של Cloud SQL מאשר במכונה אחת גדולה. ניהול של מכונה מונוליתית גדולה מציב אתגרים שלא קיימים בקבוצה של מכונות קטנות יותר. |
| אל תשתמשו ביותר מדי מסדי נתונים או טבלאות של מסדי נתונים. |
מספר מסדי הנתונים צריך להיות קטן מ-500. מספר הטבלאות במכונה צריך להיות פחות מ-50,000, או פחות מ-500,000 אם אתם עומדים בדרישות החומרה המינימליות של 32 ליבות או יותר וזיכרון של 200G או יותר. מספר הטבלאות בכל מסד נתונים צריך להיות קטן מ-50,000. יותר מדי מסדי נתונים או טבלאות של מסדי נתונים יכולים להשפיע על משך הזמן של שדרוג מסד הנתונים. |
| חשוב לוודא שבטבלאות יש מפתח ראשי או ייחודי. | ב-Cloud SQL נעשה שימוש ברפליקציה שמבוססת על שורות, שפועלת בצורה הכי טובה בטבלאות עם מפתחות ראשיים או ייחודיים. |
הטמעת האפליקציה
| שיטה מומלצת | מידע נוסף |
|---|---|
| להשתמש בשיטות מומלצות לניהול חיבורים, כמו מאגר חיבורים והשהיה מעריכית לפני ניסיון חוזר (exponential backoff). | השיטות האלה משפרות את השימוש של האפליקציה במשאבים, ועוזרות לכם לא לחרוג ממגבלות החיבור של Cloud SQL. למידע נוסף ולדוגמאות קוד, קראו את המאמר ניהול החיבורים למסדי נתונים. |
| בודקים את התגובה של האפליקציה לעדכוני תחזוקה, שיכולים להתרחש בכל שלב במהלך חלון הזמן לתחזוקה. | נסו להשתמש בתחזוקה בשירות עצמי כדי לדמות עדכון תחזוקה. במהלך התחזוקה, המכונה לא זמינה לזמן קצר והחיבורים הקיימים מתנתקים. בדיקת פריסות של תחזוקה מאפשרת לכם להבין טוב יותר איך האפליקציה מטפלת בתחזוקה מתוזמנת, ובאיזו מהירות המערכת יכולה להתאושש. |
| בודקים את התגובה של האפליקציה ליתירות כשל, שיכולה לקרות בכל שלב. | אפשר להפעיל ידנית את יתירות הכשל באמצעות מסוף Cloud de Confiance , ה-CLI של gcloud או ה-API. איך מפעילים יתירות כשל |
| הימנעו מעסקאות גדולות. | הטרנזקציות צריכות להיות קטנות וקצרות. אם צריך לעדכן מסד נתונים גדול, עשו זאת בכמה טרנזקציות קטנות יותר במקום בטרנזקציה אחת גדולה. |
| אם אתם משתמשים ב-Cloud SQL Auth Proxy, ודאו שאתם משתמשים בגרסה העדכנית ביותר. | איך מעדכנים את Cloud SQL Auth Proxy |
ייבוא וייצוא של נתונים
| שיטה מומלצת | מידע נוסף |
|---|---|
| להשתמש בייצוא ללא שרת (serverless). | ייצוא ללא שרת (serverless) מעביר את פעולת הייצוא למכונה זמנית, וכך המכונה הראשית יכולה להמשיך לטפל בשאילתות ולבצע פעולות ברמת הביצועים הרגילה שלה. בסיום ייצוא הנתונים, המכונה הזמנית נמחקת באופן אוטומטי. |
| האצת הייבוא של מכונות קטנות. | במכונות קטנות, אפשר להגדיל זמנית את המעבד (CPU) ואת ה-RAM של המכונה כדי לשפר את הביצועים כשמייבאים מערכי נתונים גדולים. |
| אם אתם מייצאים נתונים כדי לייבא אותם ל-Cloud SQL, הקפידו להשתמש בתהליך המתאים. | ייצוא נתונים משרת מסד נתונים שמנוהל באופן חיצוני. |
| כשמעבירים נתונים באמצעות ייצוא וייבוא, צריך להשתמש באותו מצב SQL בדיוק לייבוא ולייצוא. | מידע נוסף זמין במאמר שימוש באותו מצב SQL לייבוא ולייצוא. |
גיבוי ושחזור
| שיטה מומלצת | מידע נוסף |
|---|---|
| הגנה על הנתונים באמצעות הפונקציונליות המתאימה של Cloud SQL. |
גיבויים, שחזור מערכת מנקודה מסוימת בזמן (PITR) וייצוא הם דרכים לספק יתירות והגנה על הנתונים. כל אחת מהן מגינה מפני תרחישים שונים, והן משלימות זו את זו באסטרטגיה חזקה להגנה על נתונים. הגיבויים הם קלים, והם מאפשרים לשחזר את הנתונים במכונה למצב שבו הם היו בזמן הגיבוי. עם זאת, יש כמה מגבלות על הגיבויים. אם מוחקים את המכונה, גם הגיבויים נמחקים. אי אפשר לגבות מסד נתונים או טבלה בודדים. אם האזור שבו נמצא המכונה לא זמין, אי אפשר לשחזר את המכונה מהגיבוי הזה, גם באזור שזמין. שחזור מערכת מנקודה מסוימת בזמן (PITR) עוזר לשחזר מכונה לנקודה מסוימת בזמן. לדוגמה, אם שגיאה גורמת לאובדן נתונים, אפשר לשחזר מסד נתונים למצב שלו לפני שהשגיאה קרתה. שחזור מערכת מנקודה מסוימת בזמן (PITR) תמיד יוצר מכונה חדשה. אי אפשר לבצע שחזור מערכת מנקודה מסוימת בזמן למכונה קיימת. יצירת הייצוא נמשכת זמן רב יותר, כי נוצר קובץ חיצוני ב-Cloud Storage שבאמצעותו אפשר ליצור מחדש את הנתונים. אם תמחקו את המכונה, הייצוא לא יושפע. בנוסף, אפשר לייצא רק מסד נתונים אחד או אפילו טבלה אחת, בהתאם לפורמט הייצוא שבחרתם. |
| התאמת גודל המכונות כדי להביא בחשבון את שמירת יומן העסקאות (הבינארי). | פעילות כתיבה גבוהה במסד הנתונים יכולה ליצור נפח גדול של יומני טרנזקציות (בינאריים), שיכולים לצרוך מקום משמעותי בכונן ולהוביל להגדלת הכונן במכונות שמופעלת בהן הגדלה אוטומטית של נפח האחסון. מומלץ להגדיר את גודל האחסון של המכונה כך שיכלול את שמירת יומן העסקאות. |
| הגנה על המכונה והגיבויים מפני מחיקה מקרית. | במכונה של Cloud SQL שיוצרים במסוף Cloud de Confiance או באמצעות Terraform, מניעת מחיקה בטעות מופעלת כברירת מחדל. כדי להגן על הנתונים, אתם יכולים להשתמש בתכונת הייצוא ב-Cloud SQL. משתמשים ב-Cloud Scheduler עם ה-API בארכיטקטורת REST כדי להפוך את ניהול הייצוא לאוטומטי. בתרחישים מתקדמים יותר, Cloud Scheduler עם פונקציות Cloud Run לאוטומציה. |