העתיקו קובץ אחד בגודל 2 GB דרך ה-VPN וההעברה נראית תקינה. העתיקו תיקייה של עשרת אלפים מסמכים קטנים ואותה קישוריות נראית שבורה. ההבדל אינו הגדרת רוחב פס שהשתנתה בין שתי העבודות. העבודה השנייה מבזבזת את זמנה על הקמה, מטא-נתונים והמתנה לתשובות, וההשהיה של המנהרה היא מה שהופך את ההמתנה הזו לגלויה.

קובץ אחד זורם; תיקיית קבצים מנהלת משא ומתן

העתקה גדולה מבלה את רוב חייה בלולאת קריאה-כתיבה על מעט ידיות פתוחות. עלות הפרוטוקול משולמת פעם אחת לכל קובץ, והנתונים נעים בבלוקים גדולים. רוחב הפס שולט בתוצאה.

העתקת תיקייה משלמת לכל קובץ: יצירה, שאילת מאפיינים, פתיחה, כתיבה, סגירה ועדכון מטא-נתונים של הספרייה. כל אחד מאלה הוא בקשה שממתינה לתשובה לפני שהצעד הבא יכול להתקדם. הבתים זעירים; התיאום אינו.

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

נסיעות הלוך ושוב מצטברות מהר יותר מבתים

השהיה היא העלות של חילוף תלוי אחד. אם קובץ זקוק לכמה חילופים סדרתיים והמנהרה מוסיפה 40 ms לכל כיוון, העלות לקובץ גדלה במהירות. עשרת אלפים קבצים הופכים זאת לדקות.

החשבון הוא להמחשה, לא מדידה: לא מובטח שקובץ יעלה נסיעה אחת הלוך ושוב, ולקוחות חופפים חלק מהעבודה.

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

מדדו את עומס העבודה, לא את הקישור

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

מספר MB/s בודד בלי הפרטים האלה אינו יכול להיות מושווה לזה של אף אחד אחר.

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

שנו את העבודה: מקביליות וארכיונים

להעתקה גורפת מורשית, כלי עם מקביליות מבוקרת מחזיק יותר בקשות באוויר. אפשרות /MT של Robocopy היא הדוגמה הנפוצה ב-Windows. הוספת תהליכונים אינה מבטיחה העתקה מהירה יותר.

בחרו מספר שהלקוח, השרת והאחסון יכולים לשאת, ושמרו את יומן העבודה ואת כל השגיאות.

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

בדקו את המונה בבדיקה מבוקרת

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

שתי פקודות נותנות את מספר הקבצים ואת קו הבסיס של ההלוך ושוב:

Get-ChildItem \\fileserver.hq.example\\share -Recurse | Measure-Object -Property Length -Sum
ping -n 20 fileserver.hq.example

לאחר מכן הריצו את ההעתקה עם מספר תהליכונים מוגבל והשוו את היומן להרצה הקודמת:

robocopy \\fileserver.hq.example\\share C:\\local /E /MT:16 /LOG:copy.log /TEE

אל תשביתו חתימת SMB, הצפנה או הגנת נקודת קצה כדי לשפר את המונה. השינויים האלה מחליפים תכונת אבטחה במספר שאולי לא היה צוואר הבקבוק. ושמרו את תעבורת ה-VPN בנפרד מתעבורת ה-SMB עצמה בהערות שלכם, כי תיקון באחד אינו ראיה על השני.

מאמרים קשורים