آموزش اضافه کردن swap در لینوکس
احتمالا برای شما هم سوال شده است که من میخواهم در سرور یا سیستم ( لپتاپ ) خودم که لینوکس نصب کرده ام ، فضای swap را اضافه کنم و بارها در اینترنت سرچ کردید و با هزار مصیبت تمام به پاسخ خود رسیده اید.
در این مقاله از وبلاگ سابین سرور ، اضافه کردن swap در لینوکس را برای شما عزیزان توضیح خواهم داد تا بتوانید در سریعترین زمان ممکن سواپ را در لینوکس خود اد کنید. پس لطفا با ما تا انتهای این مقاله همراه باشید.
عناوین مقاله :
swap چیست ؟
احتمالا برای شما هم سوال شده که سواپ چیست و کسی نتوانسته خیلی ساهده متقاعدتان کند . به زبان خیلی ساده : سواپ در لینوکس به فضایی از هارد دیسک یا همان حافظه های ssd یا nvme گفته میشود که مانند مموری ( حافظه RAM ) عمل میکند و زمانی کاربرد دارد که حافظه ( رم اصلی ) سرور یا دسکتاپ ما پر شده باشد .
پس بنابر این زمانی که رم سیستم یا سرور ما کم باشد و نتواند به درخواست ها پاسخ دهد و تحت فشار باشد ، سیستم عامل لینوکس ، به صورت موقت دیتا ( داده ها ) را از رم به فضای swap منتقل میکند تا فضای رم ازاد شده و برای برنامه ها و درخواست های جدید باز باشد. این یک تعریف ساده از swap که امیدوارم متوجه شده باشید.
مزایای swap
اگر بخواهم از مزایای سواپ به شما توضیح دهم ، سه مورد میگویم که دقیق متوجه شوید.
- زمانی که سرور ما شلوغ است و رم پر شده است ، از کند شدن سرور ما جلوگیری میکند.
- سواپ باعث میشود تا ما بتوانیم ، برنامه ها و درخواست های بیشتری را در سرور خود اجرا کنیم بصورتی که مشکلی رخ برای رم سرور رخ ندهد.
- اگر از دیسک های nvme و رم های ddr5 استفاده میکنید سواپ تاثیر بشدت بالایی میتواند برای شما داشته باشد.
معایت سواپ
- اگر چنانچه از هارد های sata و ssd ( جامد ) استفاده میکنید و رم کمتری نیز در سیستم یا سرور خود دارید ، میتواند باعث کندی بیش از حد سرور شما شود . بطوری که دیگر مزایایی نداشته باشد و صرفا عبب محسوب شود.
- استفاده مداوم و بیش از حد از سواپ میتواند عمر دیسک ( حافظه – هارد دیسک ) ما را کاهش داده و باعث از دست رفتن دیتا شود ( طبق تجربه البته اگر فشار زیادی روی سرور باشد و رم پاسخگو نباشد کار معقولانه ان است که رم ارتقا داده شود نه سواپ )
اندازه swap چقدر باشد بهتر است ؟
طبق تجربه اگر بخواهم فنی تر توضیح دهم ، دوبرابر مقدار رم سرور یا سیستم شما باشد تاثیر و عملکرد بهتری خواهد داشت. برخی ها بر این باور هستند که اگر شما بالای 128 گیگ رم دارید نیاز به سواپ بالایی ندارید. اما اگر این 128 گیگ را برای مجازی سازی استفاده کنید بنظر شما باز هم همان نظر را خواهید داشت ؟
به شخصه برای سرور های میزبانی وب که معمولا بین 64 الی 256 گیگ رم انتخاب میکنیم و در دیتاسنتر قرار میدهیم یا اجاره میکنیم ، حداقل 64 گیگ و حداکثر 128 گیگابایت از دیسک سرور را به swap اختصاص میدهم تا از نظر عملکرد مشکلی نداشته باشد.
اما اگر بخواهم یک سرور اختصاصی را برای میزبانی از +50 ماشین مجازی یا همان سرور مجازی استفاده کنم طبیعتا سروری را که 256 گیگابایت رم دارد ، 512 گیگابایت از دیسک آن را به عنوان swap انتخاب میکنم. ( چون از عواقب انتخاب اشتباه در این خصوص آگاهی دارم حاضرم از نظر مالی این هزینه را جبران کنم تا از نظر کیفیت کار – افراد فنی بیشتر این مورد را متوجه میشوند که در ایران کمتر کسی به این مورد توجه میکند )

مراحل افزودن سواپ در لینوکس
برای افزودن سواپ در لینوکس میبایست از دستور dd استفاده شود . اما قبل از استفاده از این دستور بهتر است بدانید که باید با کاربر root وارد سرور شده باشید. اگر با کاربر روت نیستید کافیست دستور su -s را وارد کرده و پسورد خود را بزنید و وارد محیط کاربری روت شوید تا امکان استفاده از دستورات فراهم باشد.
sudo -s
سپس شما باید استوریج فایل سواپ را ایجاد کنید که با دستور زیر انجام میشود که در واقع از دیوایس /dev/zero شما یک فایلی با دستور dd ایجاد میگردد با نام /swap که سپس با bs برای ان مقدار اولیه تعیین میکنیم که بر اساس گیگ باشد یا مگ یا کیلوبایت و سپس در انتها کانت را اضافه میکنیم که در دستور زیر ما میخواهیم یک پارتیشن با نام swap ایجاد کنیم که 16 گیگابایت حجم خواهد داشت.
dd if=/dev/zero of=/swap bs=1G count=16G
پس ازینکه دستور را وارد کردید باید مطابق با سرعت سخت افزار خود منتظر باشید تا این فایل ایجاد شود. اضافه کردن swap در لینوکس مقداری زمانبر خواهد بود.
افزایش امنیت فایل سواپ
ما برای اینکه فایل سواپمان اطلاعات خاصی را در خود نگه خواهد داشت ، باید حتما از امنیت این فایل مطمئن باشیم تا هر شخصی دسترسی به آن نداشته باشد.
بنابر این کافیست از دستورات زیر استفاده کنید تا دسترسی افراد دیگر به فایل قطع گردد و تنها یوزر روت به آن دسترسی داشته باشد و بخواند و بنویسد.
chown root:root /swap
chmod 0600 /swap
ایجاد swap area
ما باید در سرور خود یک دایرکتوری و دیوایسی با نام swap داشته باشیم که بتواند داده ها را مبادله کند. بنابر این با دستور زیر آن را میسازیم. دقت کنید /swap نام فایل دلخواه شما برای سواپ ایجاد شده در مراحل بالاست. مطابق همان باید نامگذاری کنید که دلخواه است.
mkswap /swap
یک نتیجه همانند مقدار زیر بعد از دستور بالا برای شما نمایش داده میشود.
Setting up swapspace version 1, size = 16,777,216 KiB
no label, UUID=0e5e7c60-bbba-4089-a76c-2bb29c0f0839
فعال کردن swap
برای فعال کردن سواپ خود باید از دستور زیر استفاده کنیم.
swapon /swap
قرار دادن swap در fstab
برای اینکه سرور ما این دیوایس و دایرکتوری ساخته شده را در ریبوت های بعدی بشناسد و جزوی از پارتیشن های سرور ما حساب کند باید حتما این فایل را به فایل fstab لینکوس بشناسانیم که کافیست دستور زیر را وارد کرده
nano /etc/fstab
و سپس خط زیر را به انتهای این فایل اضافه و در نهایت با ctrl+x و y ذخیره نمایید.
/swap none swap sw 0 0

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