זכרון SWAP בשרת

    זכרון SWAP בשרת

    פורסם ב 12-02-2020

    כידוע, ארכיטקטורת החומרה הבסיסית של כל מחשב (וכמובן ש”מחשב” מתייחס ל PC/טאבלט/שרת וכו’) מבוססת על שלושת רכיבי הליבה העיקריים:

    CPU- מעבד: נתמצת את המושג בהגדרה הכללית העממית כ “המח שמבצע את החישובים במערכת”

    RAM-זיכרון נדיף/זיכרון גישה אקראית: מדובר ברכיב זיכרון וירטואלי-לוגי שמבצע פעולות ואינטראקציות עם המעבד והזיכרון הפיזי-DATA אל מול דרישות מערכת ההפעלה ושאר רכיבי התוכנה המבקשים משאבים.

    דיסק קשיח: זהו הרכיב שאחראי על האחסון בפועל של הנתונים HDD(hard-drive)

    ניצול מלא של זיכרון ה RAM עלול לתקוע את המערכת ואף לגרום לקריסתה. במערכות הההפצה השונות של LINUX קיים פתרון מיוחד למצב זה והוא מבוסס על ניצול של חלק מהדיסק הפיזי עצמו להמשך פעילות ה RAM. פתרון זה נקרא בשם זיכרון SWAP.
    חשוב לזכור כי זיכרון הRAM הינו רכיב זיכרון מהיר ויעיל עשרות מונים מהזיכרון הפיזי במחשב (ושימוש ב SWAP אמור להיות זמני מאוד בשאיפה ל 0)

    מבחינת מערכת השרת, ניתן להגדיר את פתרון ה SWAP כקובץ ייעודי, כמחיצה נפרדת (disk partition-הפתרון היותר מומלץ) או כשילוב של השניים.

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

    להלן ההמלצה הכללית לחישוב נפח ה SWAP בהתאם והשוואה לנתוני ה RAM:

    RAM in the SystemRecommended SWAP
    4GB or lessMinimum 2GB of SWAP
    4GB to 16GBMinimum 4GB of SWAP
    16GB to 64GBMinimum 8GB of SWAP
    64GB to 256GBMinimum 16GB of SWAP
    256GB to 512GBMinimum 32GB of SWAP

    פקודות בפועל

    נבדוק את נתוני זיכרון ה RAM בעזרת פקודת free (מדובר בשרת CentOS-7):

    [root@test-server ~]# free -h
    

    נ.ב: ה-flag של (h-) מצביע על פורמט שימושי של נתונים קריאים לאדם (human readable)

    נקבל תשובה בסגנון:

    [root@test-server ~]# free -h
                  total        used        free      shared  buff/cache   available
    Mem:            23G        6.3G        1.5G        1.2G         15G         13G
    Swap:           15G          0B         15G
    

    ממצאי הפלט ניתן לראות כי השרת מתפקד עם זיכרון RAM של 23GB בניצול בפועל של 6.3GB

    בשורת ה SWAP ניתן לראות כי לשרת מוגדר זיכרון SWAP פוטנציאלי עד 15GB ובפועל ניצול ה SWAP עומד על 0.

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

    [root@test-server ~]# swapon
    

    או לחלופין

    [root@test-server ~]# cat /proc/swaps
    

    הפלט יראה לנו את הנתיב ל SWAP בשרת:

    [root@test-server ~]# swapon
    NAME       TYPE      SIZE USED PRIO
    /dev/xvde1 partition  15G   0B   -1
    

    ה SWAP בשרת זה מוגדר אל הנתיב /dev/xvde1

    יצירת קובץ SWAP File

    כדי ליצור קובץ SWAP יש להשתמש בפקודה:

    [root@test-server ~]# dd if=/dev/zero of=/swapfile bs=1024 count=30000
    

    כאשר הפרמטר count מתייחס לגודל הבלוק הרצוי (כאן 30000=30GB )

    נסדר את ההרשאה של הקובץ:

    [root@test-server ~]# chmod 600 /swapfile
    

    נקים את הקובץ במערכת:

    [root@test-server ~]# mkswap /swapfile
    

    נבצע אקטיבציה לקובץ:

    [root@test-server ~]# swapon /swapfile
    

    ובכדי להכניס את ה SWAP לפעילות עם האתחול-boot הבא לשרת, נערוך את קובץ /etc/fstab:
    ונזין:

    /swapfile          swap            swap    defaults        0 0
    

    שינויים בנתוני ה SWAP

    לאחר שיצרנו את פתרון ה SAWP בשרת הוא ישאר ללא שינוי, גם במקרה של הגדלת/הקטנת נפח ה RAM.

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

    נשתמש בפקודת ה swapoff בכדי להסיר את ה SWAP הקודם:

    [root@test-server ~]# swapoff /dev/Old_SWAP_Path
    

    השותפים שלנו

    • js-partners-02
    • js-partners-03
    • js-partners-04
    • js-partners-06
    • mariadb-icon
    • docker-icon
    • nodejs
    Skip to content