Site icon تلاش نت

آموزش ایجاد فضای Swap در سیستم عامل لینوکس

آموزش ایجاد فضای Swap در سیستم عامل لینوکس

 

Swap لینوکس چیست؟

فضای Swap مکانی در هارد دیسک سیستم است که هنگام پر شدن حافظه فیزیکی سیستم (RAM) استفاده می شود. هنگامی که این اتفاق می افتد، page های موجود در RAM سیستم که غیرفعال هستند به فضای Swap منتقل می شوند تا فضای لازم برای page های فعال ایجاد شود.

 

 

” لینوکس (تقریبا مانند همه سیستم عامل های دیگر) سعی می کند اجزای سیستم عامل، داده های برنامه مورد نیاز فعلی و… را در RAM (حافظه اصلی) نگه دارد، زیرا دسترسی به RAM بسیار سریعتر از حامل های داده مانند هارد دیسک و USB است. “

 

 

اما رم دارای محدودیت فضا است، اگر سیستم شما ۴ گیگابایت حافظه داشته باشد، ممکن است که فضای رم شما زمانیکه چندین برنامه را اجرا می کنید به طور کامل پر شود. در این مرحله، هسته لینوکس با نوشتن بخش‌هایی از داده‌های ذخیره شده در RAM روی هارد دیسک شروع به آزاد کردن RAM می‌کند که آن حافظه «Swap» نامیده می‌شود. اگر دوباره به داده نیاز باشد، دوباره در RAM بارگذاری می شود و سایر داده هایی که در حال حاضر مورد نیاز نیستند در Swap نوشته می شوند. در چنین حالتی «سیستم مبادله می کند The System Swaps» نیز گفته می شود.

 

ایجاد فضای Swap در سیستم عامل لینوکس

اقدامات قبل از شروع کار:

با توجه به اینکه در سیستم عامل لینوکس از یکسری دستورات برای ایجاد فضای Swap استفاده می کنیم پیشنهاد می شود قبل از هر اقدامی از اطلاعات مهم خود بکاپ بگیرید تا در صورت بروز مشکل به آنها دسترسی داشته باشید.

 

 

” Swap هیچگاه نباید به عنوان جایگزینی برای حافظه RAM دیده شود. “

 

 

از آنجا که فضای Swap بخشی از هارد دیسک است، از زمان دسترسی کندتر نسبت به حافظه RAM برخوردار است، اگر سیستم شما دائماً از حافظه خارج می شود، باید رم بیشتری اضافه کنید.

به طور کلی، اندازه پرونده Swap بستگی به میزان RAM سیستم شما دارد:

 

 

” نکته: فقط root یا کاربر دارای امتیازات sudo می تواند پرونده Swap را فعال کند. (نیاز به بالاترین سطح دسترسی دارد) “

 

 

اینکه چه میزان به حافظه Swap اختصاص دهیم کاملا اختیاری هست و قاعدتا هرقدر بیشتر باشد بهتر است.

برای مثال اگر رم کامپیوتر یا سرور ما ۱۶ گیگابایت است در صورت عدم محدودیت فضای هارد دیسک بهتر است حدود همین مقدار یا نصف آن را به فضای Swap اختصاص دهیم. درحال حاضر درایوهای SSD/NVMe جایگزین هارد دیسک های قدیمی شده اند که سرعت بسیار بالاتری دارند اما همچنان در مقایسه با رم کندتر هستند و بنابراین می توان نتیجه گرفت حتی با وجود استفاده از درایوهای پرسرعت و اختصاص بخشی از آن به حافظه Swap نیز نمی توان عملکردی برابر با رم را داشت.

 

مراحل ایجاد پارتیشن Swap در لینوکس

در این مثال ، پرونده Swap ۲ GB ایجاد خواهیم کرد.

اگر می خواهید Swap بیشتری اضافه کنید، بجای ۲ GB اندازه فضای Swap مورد نیاز خود را جایگزین کنید.

 

ابتدا فایلی را ایجاد کنید که به عنوان Swap مورد استفاده قرار گیرد:

sudo fallocate -l 2G /swapfile

 

اگر برنامه fallocate در سیستم شما نیست، یا پیام خطایی مشابه زیر دریافت می کنید:

 fallocate failed: Operation not supported

 

پس از دستور زیر برای ایجاد پرونده Swap استفاده کنید:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152

 

محاسبه اندازه حجم Swap وارد شده قسمت count در کد بالا برای ۲ گیگابایت به کیلوبایت:

 

مجوزهای پرونده را 600 تنظیم کنید تا از نوشتن و خواندن پرونده توسط کاربران معمولی جلوگیری کنند:

sudo chmod 600 /swapfile

 

یک منطقه Swap لینوکس روی پرونده ایجاد کنید:

sudo mkswap /swapfile

Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)

no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8

 

فعالسازی فایل Swap

با استفاده از دستور زیر فایل Swap را فعال کنید:

sudo swapon /swapfile

 

ایجاد تغییرات دائمی برای پرونده

برای ایجاد تغییرات دائمی پرونده  etc/fstab/را باز کنید:

sudo nano /etc/fstab

 

و خط زیر را بچسبانید:

/swapfile swap swap defaults 0 0

 

تأیید کنید که Swap با استفاده دستور swapon یا از دستور free، مانند زیر فعال است:

sudo swapon –show

خروجی :

 

sudo free -h

خروجی :

total used free shared buff/cache available

Mem: 981Mi 97Mi 68Mi 0.0Ki 814Mi 735Mi

Swap: 2.0Gi 10Mi 1.9Gi

 

نحوه تنظیم مقدار Swappiness

Swappiness ویژگی هسته لینوکس است که تعیین می‌کند سیستم چند مرتبه از فضای Swap استفاده کند. مقدار Swappiness می‌تواند بین صفر تا صد باشد. هرچه این مقدار به صفر نزدیک‌تر باشد، هسته تاحدممکن Swapping یا همان مبادله را انجام نخواهد داد. هرچه میزان Swappiness به صد نزدیک‌تر باشد، هسته رغبت بیشتری برای استفاده از فضای مبادله خواهد داشت.

توجه کنید که مقدار Swappiness به‌صورت پیش‌فرض روی ۶۰ تنظیم شده است. با تایپ‌ کردن دستور زیر، می‌توانید مقدار فعلی Swappiness را بررسی کنید:

cat /proc/sys/vm/swappiness

60

مقدار Swappiness شصت تقریباً برای اکثر سیستم‌های Linux میزان مطلوبی است؛ اما به‌ احتمال زیاد برای پروداکشن سرورها نیاز است مقدار کمتری تنظیم کنید.

 

برای مثال، به‌منظور تنظیم مقدار Swappiness روی ۱۰، دستور sysctl زیر را اجرا کنید:

sudo sysctl vm.swappiness=10

 

باید توجه کنید که این پارامتر هنگام ری‌استارت و راه‌اندازی مجدد سیستم از بین می‌رود؛ ازاین‌رو، برای ثابت نگه‌داشتن این پارامتر حتی در مواقع راه‌اندازی مجدد، باید خط زیر را به فایل /etc/sysctl.conf بیفزایید:

vm.swappiness=10

 

حذف پرونده Swap در لینوکس

برای غیرفعال کردن و حذف پرونده Swap، این مراحل را دنبال کنید..

ابتدا فضای Swap را غیرفعال کنید:

sudo swapoff -v /swapfile

بعد، swapfile swap swap defaults 0/0 را از پرونده etc/fstab/ حذف کنید.

 

در آخر، پرونده واقعی Swapfile را با استفاده از دستور rm حذف کنید:

sudo rm /swapfile

 

نتیجه گیری

همانطور که متوجه شدید، فضای Swap مکانی در هارد دیسک سیستم است که هنگام پر شدن حافظه فیزیکی سیستم (RAM) استفاده می شود و طریقه نحوه ایجاد فضای Swap و مقدار دهی Swappiness و همچنین حذف آن را در این مقاله بازگو کردیم.

 

5/5 - (1 vote)