אופטימיזציה של הביצועים בקטגוריות עם מרחב שמות היררכי מופעל

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

הצגת רשימה של אובייקטים

אלה שיקולי הביצועים של אובייקטים של כרטיסי מוצר:

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

ניהול תיקיות

כדי לנהל את התיקיות בצורה יעילה, מומלץ:

  • יצירת מבנה תיקיות מראש: במקום להסתמך על יצירה אוטומטית של תיקיות במהלך פעולות של העלאה, שכתוב והרכבה של אובייקטים, כדאי להשתמש בפעולה של יצירת תיקייה כדי לקבל מראש את מבנה התיקיות הרצוי. יצירה מראש של מבנה התיקיות משפרת את העקביות והצפיות של הביצועים.
  • מקסום היחס בין מספר האובייקטים למספר התיקיות: כדאי לשאוף ליחס גבוה בין מספר האובייקטים למספר התיקיות, כי כך מצמצמים את התקורה שקשורה ליצירה ולניהול של תיקיות.
  • מחיקה קבועה של תיקיות ריקות: תיקיות ריקות יכולות להצטבר, במיוחד כשמשתמשים בניהול מחזור חיים של אובייקטים או כשמוחקים אובייקטים בלי למחוק במפורש את תיקיות האב שלהם. הצטברות של תיקיות יכולה להשפיע על הביצועים של פעולות שקשורות לרשימת אובייקטים ופעולות אחרות שקשורות לתיקיות. אלה כמה מהשיטות שבהן אפשר להשתמש כדי למחוק תיקיות ריקות:
    • כשמשתמשים ב-Cloud Storage FUSE או ב-Cloud Storage connector כדי לנהל אינטראקציה עם קטגוריה שמופעל בה מרחב שמות היררכי, מחיקה של ספריה מוחקת את התיקייה התואמת בקטגוריה.
    • אפשר להשתמש במחיקה רקורסיבית כדי למחוק תיקיות באופן אוטומטי כשמשתמשים במסוף Google Cloud או ב-Google Cloud CLI.
    • אפשר להשתמש בסקריפט delete_empty_folders.py כדי למחוק תיקיות ריקות באופן תקופתי באמצעות עיבוד מקבילי. הסקריפט מספק אפשרות לטרגט קידומת של נתיב תיקייה ספציפי, וכך מאפשר לסקריפט למחוק תיקיות בחלק ממבנה הספריות של הדלי. בנוסף, הסקריפט מוחק את כל התיקיות הריקות (שנוצרו באופן מרומז או מפורש), כולל תיקיות מנוהלות ומדיניות IAM שמשויכת אליהן. פרטים על אופן השימוש בסקריפט מופיעים בקובץ README ב-GitHub.

המאמרים הבאים