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

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

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

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

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

פעולת הדה-פרגמנטציה היא אחד הכלים הידועים ביותר להאצת ביצועים של מחשבים. הסיבה לכך היא שעד שיצאה windows xp רוב המחשבים הביתיים שהריצו מערכות הפעלה שהשתמשו במערכת ניהול קבצים מסוג FAT ו FAT32 (DOS, win 95, win 98, win me) סבלו מכך שמערכת ניהול הקבצים הזו לא ביצעה שום ניסיון למנוע מראש פרגמנטציה של קבצים. מערכות ניהול קבצים מודרניות כמו NTFS (בה משתתמשים בעולם הווינדוס) ext2 ו ext3 (לינוקס) נוקטות מראש באמצעים בכדי להבטיח מינימום של פרגמנטציה.

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

  1. פרגמנטציה מתרחשת לרוב כאשר נפח הקבצים שעל הדיסק מתקרב לנפח המקסימלי של הדיסק ובגלל שיש פחות מקום פנוי, מערכת ניהול הקבצים נאלצת לבחור מקומות פחות אופטימליים מהרצוי. מאחר שלא ניתן היום לקנות דיסק בגודל של פחות מ120 ג'יגה, נדרשות הרבה מאוד הורדות של קבצים והתקנות של תוכנות בכדי להגיע למצב הזה. סביר להניח שאני לא דוגמא מיצגת, אבל מתוך 100 הג'יגה שיש לי על המחשב רק 30 מנוצלים.
  2. אנשים עורכים רק לעיתים נדירות קבצים גדולים במחשב שלהם. רובנו משתמשים במחשב לגלישה, שליחת דואל ועריכה של קבצי וורד קצרים יחסית. אף אחד מהפעילויות האלו בפני עצמה לא יוצרת קבצים מספיק גדולים בשביל שתורגש ירידת ביצועים בגלל פרגמנטציה. קובץ של 10K נטען כל כך מהר במחשבים של היום שלאדם יהיה קשה להרגיש את ההבדל גם אם הטעינה תשתפר ב10%. אצלי הקובץ היחיד שנוצר דינמית והיה מפוזר על פני כל הדיסק היה הקובץ שבו משתמשת תוכנת הדואל לשמירת ההודעות ושלא דאגתי לנקות אותו בשלוש שנים האחרונות (ואכן כל קריאה וכתיבה היתה מאוד איטית).
  3. הכוננים הקשיחים של היום מכילים זיכרון בגודל של 8 מגה בייט שבו נשמרים קטעים שנקראים הרבה פעמים, כך שקריאה נוספת שלהם מתבצעת במהירות של קריאה מזיכרון שהיא הרבה יותר מהירה מקריאה מהמשטח הפיזי. כלומר גם אם קובץ סובל מפרגמנטציה, אם נעשה בו שימוש רב הוא יטען בזכרון של הכונן הקשיח ולא תורגש ירידת הביצועים מעבר לטעינה הראשונית.
  4. במערכות הפעלה מודרניות כמו ויסטה יש תהליך דפרגמנטציה שפועל באופן אוטומטי.

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

המאמר הזה "בא גם כתגובה לכתבה על כלי דה-פרגמנטציה בYNET והיה נחסך ממני לכתוב אותו אם הייתי מגלה את המאמר על איך הכוננים המודרניים מפחיתים את הצורך בדפרגמנטציה.

עריכה 20.1:

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

7 תגובות “מדוע אין חשיבות לדה-פרגמנטציה של הכונן הקשיח במחשבים מודרניים”

  1. את הטענה ש-NTFS מייתרת את הדפרגמנטציה אני כבר שומע הרבה שנים. זה מיתוס.

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

    התסריט שהצגת (דיסק שעומד להתמלא) הוא רק אחד מני רבים.

    הייתי מוסיף: פרגמנטציה של קבצי pst, של קבצי אינדקס של Google Desktop Search ושל האינדקסים של ה-Indexing Service, של קבצים שמורידים ב-P2P, של עדכונים מ-Windows Update, של קבצי חתימות של תוכנות אנטי-וירוס וכלי אבטחה אחרים, של לוגים שונים, קבצי תמונה אצל מי שמשתמש במצלמה דיגיטלית, של ה-Cache של הדפדפן, קבצים זמניים של Windows, של Restore points וכו' וכו'.

    שלא לדבר על ה-Page File שעבורו מיקרוסופט כלל לא מציעה פתרון (ב-XP אפשר להשתמש ב-Contig ובויסטה עושה את זה הכי טוב PerfectDisk).

    הדפרגמנטציה האוטומטית של ויסטה לא כוללת Free space defragmentation, לא נוגעת ברוב קבצי המערכת, לא מטפלת בפרגמנטים גדולים מ-64MB, ובאופן כללי מדובר במודול די איטי ולא יעיל. לא בדקתי, אבל אני מנחש שמדובר עדיין בטכנולוגיה של נורטון אותה הם קנו לפני 12 שנה.

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

    אם אתה רוצה חוות דעת נוספת בכל העניינים האלה, אתה יכול לנסות לקרוא את זה
    http://searchwincomputing.techtarget.com/tip/0,289483,sid68_gci1230202,00.html

    או את זה
    http://files.diskeeper.com/pdf/HowFileFragmentationOccursonWindowsXP.pdf

  2. 1. כתבתי במפורש שסביר להניח שכל מערכת קבצים תגיע למצב שבו יהיה צורך לעשות דה-פרגמנטציה.

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

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

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

  3. ראשית, אולי קשה עברית שפה, אבל באותה מידה שאפשר לבטא בעברית את המילה הקלה פרגמנטציה, אני מניח שעם מעט מאמץ ניתן יהיה לבטא בשפה זרה(?) גם את המילה הקשה "איחוי" ואולי גם "פיצול" – עברית קשה שפה, כבר אמרנו?!

    שנית, אולי גם אני לא מהווה מדגם מייצג עבור רוב אוכלסיית משתמשי המחשב, אך מנסיוני, איכשהו, כל דיסק קשיח חדש ולא משנה מה נפחו, יתמלא בתוך תקופה, הדיסק הנוכחי שלי (לפחות נכון לרגע זה) הוא בנפח 320 ג'יגה וכבר מאז כחודש לאחר שהתקנתי אותו רוב הנפח שהו התמלא.
    אז כמו שכתבתי, אני בטח גם לא מהווה מדגם מייצג, אך מהיכרות עם משתמשי מחשבי רבים ומתחומים רבים, החל ממשתמשים ביתיים, משרדיים, גרפיקאים, גיימרים ואחרים (בתור אחד שעוסק בתחום אני נתקל כמעט בכולם), דיסק בנפח 250 ג'יגה אינו מיותר ו-100 ג'יגה בשימוש הינו דבר שיגרתי אצל מרבית המשתמשים.

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

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

    איחוי מהנה ומהפנט לכולם :)

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

  5. אני אשתף אותך בדוגמא אחת מרבות – למי שמשתמש בפוטושופ (והרבה ילדים משתמשים ל'עיצוב' אתרים בכל בית שלישי או יותר) הקובץ של המברשות מתפצל כל פעם שאתה מוסיף מברשות נוספות (והוא יכול לשקול עשרות אם לא מאות מגה תלוי במשתמש) ואם לא תאחה אותו פוטושופ יעלה לאט יותר כל פעם [אני משתמש בתוכנת צד ג' שיכולה לאחות קבצים בודדים וכך מאחה רק את מה שחשוב לי באמת כי אין טעם לשחוק את הכונן הקשיח יותר מידי]

  6. מרק,

    הצלחת להזכיר לי את הפעם הראשונה והאחרונה שחיפשתי פתרון לאיחוי כונן בלינוקס.

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

    תודה על המאמר!

    דותן

כתיבת תגובה

האימייל לא יוצג באתר. (*) שדות חובה מסומנים