فضای Swap در لینوکس همانند حافظه مجازی (Virtual memory) در ویندوز است که وظیفه آن کمک به بهبود عملکرد سیستم عامل در مواقع ضروری است. زمانی که Ram یک کامپیوتر بصورت کامل اشغال شود حافظه Swap نقش رم کمکی را ایفا می کند که از فضای هارد دیسک استفاده می کند. باید توجه داشت که فضای Swap یا همان حافظه مبادله ای نمی تواند سرعت و عملکردی همانند رم داشته باشد اما در مواقع ضروری که حاظه رم تحت فشار قرار دارد می تواند مانع هنگ شدن سیستم عامل شود. بر همین اساس وجود فضای Swap در لینوکس یک الزام به شمار می رود و می بایست مقداری از فضای هارد دیسک را به آن اختصاص دهیم.
چه میزان به حافظه Swap اختصاص دهیم؟
این مضوع کاملا اختیاری هست و قاعدتا هر قدر بیشتر باشد بهتر است. برای مثال اگر رم کامپیوتر یا سرور ما 16 گیگابایت است در صورت عدم محدودیت فضای هارد دیسک بهتر است حدود همین مقدار یا نصف آن را به فضای Swap اختصاص دهیم. در حال حاضر درایوهای SSD/NVMe جایگزین هارد دیسک های قدیمی شده اند که سرعت بسیار بالاتری دارند اما همچنان در مقایسه با رم کندتر هستند و بنابراین می توان نتیجه گرفت حتی با وجود استفاده از درایوهای پرسرعت و اختصاص بخشی از آن به حافظه Swap نیز نمی توان عملکردی برابر با رم را داشت.
اقدامات قبل از شروع کار
با توجه به اینکه در سیستم عامل لینوکس از یکسری دستورات برای ایجاد فضای Swap استفاده می کنیم پیشنهاد می شود قبل از هر اقدامی از اطلاعات مهم خود بکاپ بگیرید تا در صورت بروز مشکل به آنها دسترسی داشته باشید. همچنین لازم به ذکر است برای انجام کار به دسترسی root نیاز داریم که بالاترین سطح دسترسی در سیستم عامل لینوکس است.
ایجاد فضای Swap در سیستم عامل CentOS
در قدم اول با یوزر root به لینوکس وارد شوید. در صورتی که از سرور استفاده می کنید و دسترسی شما بصورت SSH است می توانید از آموزش ورود به SSH استفاده کنید.
در ادامه با دستور زیر مقدار مشخصی از فضای هارد دیسک را بردارید که در زیر مقدار 8 گیگابایت در نظر گرفته شده است. توجه داشته باشید که عدد آخر میزان فضا بوده و مقدار آنرا بر اساس نیازتان تغییر دهید.
dd if=/dev/zero of=/swapspace bs=1024 count=8388608
که بصورت زیر محاسبه شده است:
- 8 گیگابایت برابر است با 8192 مگابایت بر اساس : 1024×8
- عدد 8192 اگر در 1024 ضرب شود مقدار بر اساس KB بدست می آید که اندازه هر بلوک فضاست.
- پس بنابراین عدد 8388608 کیلوبایت برابر با 8192 مگابایت و 8 گیگابایت است.
در ادامه می بایست با دستور زیر، مالکیت کاربری این فضا را به کاربر root بدهیم.
chown root:root /swapspace
با دستور زیر نیز سطح دسترسی مناسب این فضا را تعیین می کنیم.
chmod 0600 /swapspace
و دستور زیر را برای تعیین ساختار این فضا و تبدیل آن به Swap وارد می کنیم:
mkswap /swapspace
و برای فعال کردن آن، دستور زیر را وارد می کنیم.
swapon /swapspace
در انتها با دستور زیر، فایل fstab را در مسیر etc ویرایش کرده
nano /etc/fstab
و مقدار زیر را به محتوا فایل fstab در حالت ویرایش اضافه نمایید که در واقع معرفی حافظه Swap به سیستم است.
/swapspace none swap sw 0 0
تا اینجا توانستیم کار را با موفقیت انجام دهیم و تنها کافیست یکبار سیستم را Reboot (ری استارت) کنید.
پس از بالا آمدن سیستم عامل می توانید با دستور زیر حافظه های فعال سیستم را مشاهده نمایید:
free -m
که به حافظه رم اصلی و حاظه Swap اشاره می کند.
نوشته آموزش ایجاد فضای swap در سیستم عامل لینوکس اولین بار در پایگاه دانش میزبانفا پدیدار شد.