اطلاعیه

بستن
No announcement yet.

فضای swap چیست و چگونه در لینوکس یک swap file ایجاد کنیم

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    فضای swap چیست و چگونه در لینوکس یک swap file ایجاد کنیم

    فضای swap هنگامی که فضای حافظه اصلی (RAM) پر می شود و دیگر جایی برای فرایند های جدید وجود نداشته باشد، مورد استفاده قرار می گیرد. توجه کنید که فرایند بخشی از یک برنامه است، که برای اجرا شدن باید ابتدا توسط الگوریتم های زمانبندی خاص (مانند FIFI, SJF و غیره) از فضای دیسک (حافظه ثانویه : مانند هارد دیسک) به درون حافظه اصلی بار گذاری شود (در صف آماده برای اجرا قرار بگیرد) و سپس برای اجرا شدن توسط الگوریتم های زمانبندی فرایند ها، برای اجرا شدن، پردازنده را دریافت کنند. فرض کنید سیستم ما یک پردازنده دارد و تعداد بسیاری فرایند نیز در حافظه اصلی، برای اجرا شدن، صف بندی شود، حال یک فرایند با اولویت بالا بخواهد اجرا شود اما جایی در حافظه اصلی وجود ندارد که فرایند در آن قرار بگیرد، در این مواقع، سیستم عامل توسط معیار هایی فرایندی را برای خروج از حافظه اصلی و قرار گرفتن در حافظه فضای swap انتخاب می کند.به عمل مبادله فرایند ها میان حافظه اصلی و فضای swap، اصطلاحا swapping و به عمل خروج فرایند از حافظه اصلی و قرار گیری در swap، اصطلاحا swap in و به عمل خروج فرایند از swap و قرار گیری در حافظه اصلی، اصطلاحا swap out گفته می شود. توجه داشته باشید که swap جزئی از حافظه اصلی (RAM) نیست بلکه فضایی است بر روی رسانه ثانویه مانند هارد دیسک و به همین خاطر است که زمان نصب هر توزیع لینوکسی یا هر سیستم عامل دیگر یونیکسی، بخشی از هارد دیسک را از نوع سیستم فایل swap، پارتیشن بندی می کنید.

    بطور کلی برای نصب هر توزیع لینوکسی نیاز به دو سیستم فایل است، یکی پارتیشن root که با علامت / نشان داده می شود و معمولا در توزیع های لینوکسی از نوع ext2, ext3 یا ext4 می باشد و پارتیشین لازم دیگر، فضای swap است که بعنوان بخشی از هارد دیسک و از نوع سیستم فایل swap و اندازه آن بر اساس میزان حافظه اصلی، ایجاد می شود.

    معیار انتخاب میزان فضای swap بر اساس میزان حافظه اصلی موجود بر روی سیستم می باشد. به دو گونه می تواینم فضای swap را ایجاد کنیم. نخست اینکه در زمان نصب یک توزیع لینوکسی، حتما باید بخشی از هارد دیسک را بعنوان فضای swap در نظر گرفت.

    دومین مورد اینکه، ممکن است حتی خود فضای swap که ایجاد کرده بودیم، نیز پر شود، پس می بایست یک فضای swap دیگر (یعنی پس از نصب سیستم و به هنگام بروز مشکل) ایجاد کنیم، که این فضا معمولا در قالب یک فایل (نه پارتیشن) ایجاد خواهد شد. با استفاده از دستور free می توانیم میزان فضای swap فعلی (میزان کل فضا، میزان فضای آزاد و میزان فضای استفاده شده) را مشاهده کنیم.

    کد PHP:
    free 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	swap1.png نمایش ها:	1 اندازه:	8.4 KB شناسه:	18317




    دستور free اطلاعات را از فایل proc/swaps/ می خواند و در ترمینال چاپ می کند. برای خواندن این فایل از دستور زیر استفاده کنید. برای سیستم هایی که یک پارتیشن swap دارند، خروجی مانند زیر است.

    کد PHP:
    cat /proc/swaps 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	swap3.png نمایش ها:	1 اندازه:	6.6 KB شناسه:	18318




    همچنین می توانید از دستور top نیز استفاده کنید تا فضای swap را monitor کنید.

    کد PHP:
    top 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	swap4.png نمایش ها:	1 اندازه:	11.6 KB شناسه:	18319




    همچنین می توانید از دستور زیر نیز استفاده کنید. خروجی زیر نشان می دهد که تنها یک فضای swap، آن هم بصورت پارتیشن در سیستم وجود دارد. عدد 1- که اولویت نشان می دهد. اگر یک فضای swap دیگر (مانند یک swap file) داشته باشیم آنگاه این عدد کاربردش مشخص خواهد شد، در آن صورت عددی که اولویت 1- داشته باشد دارای اولویت بالاتری است و عدد اولویت فضای swap دیگر 2- خواهد بود. (توجه کنید که عدد 1- بزرگتر از عدد 2- است).

    کد PHP:
    swapon -
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	swap5.png نمایش ها:	1 اندازه:	6.3 KB شناسه:	18320




    طبق کتاب Red Hat Enterprise Linux 5 Deployment Guide، جدولی برای انتخاب اندازه فضای swap متناسب با حاظه اصلی موجود بر روی سیستم ارائه شده است که در زیر مشاهده می کنید.
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	swap2.png نمایش ها:	1 اندازه:	38.2 KB شناسه:	18321




    ایجاد یک swap file (یک فضای swap اضافی بصورت یک فایل).

    ابتدا یک فایل (بطور مثال به نام swapfile1) در زیر دایرکتوری root ایجاد می کنیم. این کار را توسط دستور dd انجام می دهیم. فرض کنید می خواهیم فایلی به اندازه 512 مگابایت ایجاد کنیم پس بصورت زیر انجام می دهیم. (524288*1024=512MB)

    کد PHP:
    dd if=/dev/zero of=/swapfile1 bs=1024 count=524288 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	swap7.png نمایش ها:	1 اندازه:	8.2 KB شناسه:	18322




    سپس از دستور زیر برای ایجاد ساختار سیستم فایل swap بر روی فایل استفاده کنید. در زمان نصب توزیع لینوکسی همین دستور بر روی پارتیشن برای ایجاد سیستم فایل swap انجام می شود.

    کد PHP:
    mkswap /swapfile1 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	swap8.png نمایش ها:	1 اندازه:	7.8 KB شناسه:	18323




    سپس با دستور زیر آنرا به لیست فضاهای swap موجود روی سیستم معرفی کنید.

    کد PHP:
    swapon /swapfile1 
    دستور swapon -s را اجرا کنید تا فهرستی از فضا های swap موجود به همراه نوع و اولویت شان (آنچه که پیش تر گفته شد) مشاهده کنید.

    کد PHP:
    swapon -
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	swap9.png نمایش ها:	1 اندازه:	8.1 KB شناسه:	18324




    باید این فایل را بعنوان یک ورودی به فایل etc/fstab/ اضافه کنیم. پس خطی مانند زیر را اضافه کنید. در نخستین خطوط زیر، شکل کلی و دومین خط بعنوان یک نمونه و برای فایلی که ایجاد کردیم استفاده شده است.

    [PHP]
    SWAP_FILE_PATH swap swap default 0 0/

    کد PHP:
    swapfile1 swap swap defaults 0 0
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	swap10.png نمایش ها:	1 اندازه:	44.2 KB شناسه:	18325




    نویسنده نامی امیر
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 10-14-2019, 01:25 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X