מליוני קבצים ב-NTFS

דברים שלמדתי בדרך הקשה:

  • אל תאמינו ללקוח שאומר לכם שיש "רק כמה עשרות אלפים", תבדקו לבד כדי לוודא.
  • לא להעיז לעשות דיפראג, עדיף לגבות ולשחזר, תאמינו לי שזה לוקח פחות זמן.
  • לא winrar ולא 7zip יצליחו לגבות יותר מ400K קבצים פחות או יותר. אם יש לכם יותר מזה אז לא להתעצל, לפתוח חלון Cygwin ולדחוס איזה TBZ בריא.
  • האיטיות תהיה הרבה יותר גרועה ממה שאתם חושבים, לפעמים פאקטור X5 על כל הערכה, וזה יהיה אופטימי. אני לא צוחק.
  • כדי לשפר את המצב, כבו זמנית על אותה תחנה או שרת את האנטיוירוס.
  • כשאתם מפרמטים את המחיצה מחדש זה מאוד מפתה לחשוב שיחידות 4K זה בזבזני וכדאי לרדת לקלאסטרים בגודל סקטור – טעות. אל תתנו לזה לקרות לכם. השארו עם ברירת המחדל.
  • כשאתם משחזרים את הTBZ עם 10 מליון קבצים, ודאו שהאנטיוירוס המזורגג לא הפעיל את עצמו מחדש בלי לשאול אתכם.
  • כשאתם משחזרים 10 מליון קבצים מ-TBZ ודאו מההתחלה שהUMASK שלכם הוא 0 ולא 0022 או משהו מעצבן דומה. זה סיוט לשנות מחדש את כל ההרשאות דרך הGUI, לא מצאתי בדיוק איך לעשות את זה רשמית ב-CLI ונראה שפקודת chmod רקורסיבית ב-Cygwin עושה רק חלק מהעבודה.
  • בכלל, זכרו שבניגוד ל"עצים רוקדים" ושלל שכלולים חכמים בFS שאתם רגילים בלינוקס, NTFS זו מערכת מפגרת שעובדת ב-linked lists פשוטים, משמע מציאת קובץ בספריה הוא (o(n ולכן מציאת המטא-דאטה שלו היא (O(n2, אם לא נזהרים. האנס רייזר אולי פסיכופת אבל הוא גם גאון.
  • עוד דבר חשוב – לא רק שהאינדקס של כל ספריה הוא לינארי, הוא בעצם קובץ שעשוי להתחרפן אם הוא חוטף פראגמנטציה, וכלי הדיפראג של חלונות לא מאחה אותו! בשביל זה מוחבא כלי אחר ב-MSDN בשם contig. למה? ככה. קסנם מיקרוסופט. עוד סיבה להשאר עם קלאסטרים גדולים.
  • יש כמה דברים שראוי לעשות לפני הכל ומראש כי עצוב לגלות אותם בסוף, כולל כל הטוויקים להתנהגות מערכת הקבצים (למשל איזה כיף לגלות שאפשר לכבות יצירת שמות 8.3 אוטומטית – למה זו לא ברירת המחדל, אינעל OS תבעק?)
  • ובכלל, מדי פעם שיעורי בית זה לא מזיק. אפשר ללמוד המון מאחרים.
  • לבסוף, להסביר בנימוס ללקוח שאלפי קבצים בספריה זה נחמד אבל הביצועים יפלו עם עשרות ומאות אלפים, בשביל זה אלוהימה המציאה את ההאשים.

ציינתי כבר שאני שונא לנהל מערכות של מיקיסופט?

4 Replies to “מליוני קבצים ב-NTFS”

  1. (Sorry for the English, new laptop I haven't complete a setup yet).

    Our Windows people always told us Ops guys to keep the maximum number of entries in one NTFS folder to less than 20,000 or else any access to the volume slows down.

    About using Cygnus tar – it might be good for "normal" files but you should be careful to make sure it catches all the file attributes like ACL's and such. I don't know whether GNU tar on Cygnus does that or not but just a point to look for.

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

להגיב על רובוסוניה לבטל