05-08-2007, 00:24
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,775
|
|
בתגובה להודעה מספר 1 שנכתבה על ידי HummerH1 שמתחילה ב "מה ההגיון בזה שחלונות ממליצה על swap file בגודל 50% יותר מגודל ה RAM?"
אני לא יכול לענות לך לגבי חלונות, כי אני לא מכיר את ה internals של ניהול ה swap שלה, אבל אני כן יכול לענות לך ממערכות שבהן אני יודע שיש ניהול זיכרון נכון...
ובכן - תלוי (בטיב המילוי) :
אם כל האפליקציות שרצות אצלך במערכת הן אפליקציות שפעילות כל הזמן - כלומר אין מצב שחלקן "ישנות" ורק חלק עושות עבודה - אזי אתה צודק בהחלט. במערכות כאלה, צריך שכמות ה RAM שלך תהיה ככמות הזיכרון שהאפליקציות דורשות (לא וירטואלית, אלא בפועל, מה שנקרא RSS בלינוקס) - שהרי אם היא תהיה פחותה, יהיה שימוש ב swap כדי לאחסן תהליך שלא נמצא כרגע ב running (ותהליכים נכנסים ויוצאים מ running כל הזמן - בין השאר משום העובדה שהמעבד תמיד מבצע פעולה אחת בו זמנית...) - מה שאומר שתהליכים יכולים להיכנס ולצאת מה swap נונ-סטופ, בהתאם לתהליך שמנסה לפעול כרגע. זה אומר שהמערכת תהיה עסוקה כל הזמן ב I/O של הכנסה ל swap והוצאה מה swap - והיא תקרטע בצורה כזו שאתה תתחרפן... במערכות כאלה, ה swap קיים אך ורק לצורכי חירום בלבד - למקרה שקרה אירוע בלתי צפוי, והמערכת צורכת יותר מהמקסימום הידוע שלה - שאמור להיות מנורמל וקבוע - כדי להמנע ממצב שבו תהליכים מתחילים לעוף בגלל Out Of Memory... אבל בשימוש נורמאלי, לא אמור לעבור ביט אחד של מידע ל swap - כי זה יפגע בביצועים.
לעומת זאת...
אם אתה משתמש ביתי, ופתוחות לך המון תוכנות כבדות: כגון פוטושופ, פרמייר, אופיס 2007 (אני בכוונה אומר 2007 ) - וכדו' - אתה הרי לא עובד על כולן בו זמנית בדרך כלל. הן פשוט פתוחות. ואז, במקרה הזה, התוכנות שאינן בשימוש, בהנחה והן לא עושות עיבוד ברקע, יכולות לרדת אל ה swap ולפנות מקום לתוכנות שכן פעילות. במקרה הזה, יהיה I/O של כניסה ויציאה מה swap רק שאתה עובר בין התוכנות האלה (ותוכל להרגיש בכך על ידי delay לפני שהמסך שלהן קופץ בחזרה כשאתה עובר אליהן...). בצורת העבודה הזו, כמות ה RAM שלך בעצם קובעת כמה תוכנות יכולות לרוץ אצלך בו זמנית לפני שחייבים להשתמש ב swap ולהגיע ל delay הזה במעבר בין אפליקציות. ההגיון אומר, שבתצורת העבודה הזו, ייתכן ותרצה לטעון הרבה יותר תוכנות ממה שאתה משתמש בהן; וככל שיש לך יותר RAM, ייתכן שתרצה לטעון עוד יותר תוכנות, "כי המחשב מסוגל". כיוון ששוב, אתה לא הולך להשתמש בכולן בו זמנית, זה יהיה בזבוז לקנות את כמות ה RAM המקסימלית הדרושה כדי לאחסן את _כל_ התוכנות ב RAM בו זמנית - ולכן יש הגיון מסויים בלהקצות שטח נכבד גם בדיסק כדי להוריד אליו תוכנות שלא פעילות כרגע במערכת, למרות שהן טעונות. אני, בשונה מהמומחים, מאמין שיש גבול, וש 50% יותר זה ערך שאין מאחוריו הגיון. אני מאמין שלא צריך להחזיק ב swap יותר מ 200-300MB, לפחות לא בחלונות שגם ככה לא יעילה יותר מדי, ואם אתה מגיע למצב שיש לך כל כך הרבה ב swap - אתה צריך עוד RAM לדעתי, ולא עוד swap.
לסיכום, אם יש לך המון RAM, יותר ממה שאתה משתמש, ביטול ה swap הוא:
א) חסר משמעות במערכות שאינן חלונות - כי הן לא ישתמשו ב swap אלא אם כן הן באמת צריכות
ב) מומלץ בחלונות - כיוון שהיא מעבירה דברים ל swap סתם, לפני שה RAM נגמר (אני עדיין ממתין למהנדס של מיקרוסופט שיסביר לי מדוע זה עושה את הדבר הזה, שלדעתי הוא התגלמות ה...)
כל אחד והנסיון שלו
|