آموزش ساخت فایل swap در لینوکس
Swap فضایی بر روی دیسک است و زمانی استفاده می شود که حافظه رم فیزیکی پر باشد. هنگامی که در یک سیستم لینوکس حافظه RAM تمام می شود، برنامههای غیرفعال از RAM به فضای swap منتقل می شوند.
فضای swap می تواند به شکل یک پارتیشن اختصاصی یا یک فایل باشد. در بیشتر موارد، هنگام اجرای لینوکس بر روی ماشین مجازی، پارتیشن swap وجود ندارد، بنابراین تنها گزینه ایجاد یک فایل swap است.
این آموزش بر روی سیستم های لینوکس با Ubuntu 18.04 و CentOS 7 آزمایش شده است، اما باید با هر توزیع لینوکس دیگر کار کند.
محتویات این صفحه:
# چطور یک فایل swap اضافه کنیم؟
در این آموزش 1 گیگابایت حافظه swap ایجاد میکنیم. میتوانید این عدد را کمتر یا بیشتر کنید.
1. با دستور زیر یک فایل ایجاد کنید تا به عنوان swap از آن استفاده کنید:
sudo fallocate -l 1G /swapfile
اگر ابزار fallocate
را نصب ندارید و یا با پیغام خطای fallocate failed: Operation not supported
مواجه شدید، میتوانید از دستور زیر استفاده کنید:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
2. فقط کاربر root باید بتواند در فایل swap بنویسد یا بخواند. برای تنظیم مجوزها از دستور زیر استفاده کنید:
sudo chmod 600 /swapfile
3. از ابزار mkswap
استفاده کنید تا این فایل را به عنوان حافطه swap در لینوکس مشخص کنید:
sudo mkswap /swapfile
4. حالا باید حافظه swap را فعال کنید. با دستور زیر اینکار را انجام دهید:
sudo swapon /swapfile
برای اینکه تغییرات را ماندگار کنید تا بعد از هر بار ریبوت بازگردانی نشوند، فایل /etc/fstab
را باز کرده و خط زیر را به آخر آن اضافه کنید:
/swapfile swap swap defaults 0 0
5. برای اینکه مطمئن شوید فایل swap به درستی نتظیم شده است، از دستور swapon
یا دستور free
استفاده کنید:
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 507.4M -1
$ sudo free -h
total used free shared buff/cache available
Mem: 488M 158M 83M 2.3M 246M 217M
Swap: 1.0G 506M 517M
دوره پیشنهادی: دوره آموزش لینوکس(linux)
# تنظیم میزان استفاده از swap
Swappiness یک ویژگی هسته لینوکس است که مشخص می کند سیستم چند وقت یکبار از فضای swap استفاده کند. Swappiness میتواند مقداری بین 0 تا 100 باشد. هر چقدر مقدار Swappiness کم باشد هسته سعی کند در صورت امکان از swapp اجتناب کند اما مقادیر بالا به لینوکس اجازه میدهد که بیشتر از حافظه swap استفاده کند.
مقدار پیشفرض برای swappiness برابر با 60 است. میتوانید با دستور زیر میزان swappiness سیستم خودتان را ببینید:
$cat /proc/sys/vm/swappiness
60
عدد 60 برای اکثر موارد مناسب است اما در زمان استفاده از سرور در حالت production ممکن است بخواهید مقدار آن را کم کنید. برای تغییر میزان swappiness میتوانید از دستور زیر استفاده کنید:
sudo sysctl vm.swappiness=10
برای اینکه این تغییر را دائمی کنید تا در صورت reboot سیستم به عدد قبلی برنگردد، دستور زیر را به آخر فایل /etc/sysctl.conf
اضافه کنید:
vm.swappiness=10
مقدار مناسب برای swappiness به حجم کاری سیستم شما و نحوه استفاده از حافظه بستگی دارد.
مقاله پیشنهادی: آموزش دستور pstree لینوکس
# چطور فایل swap را حذف کنیم؟
اگر به هر دلیلی میخواهید فایل swap را غیرفعال یا حذف کنید، مراحل زیر را دنبال کنید:
1. ابتدا فایل swap را با دستور زیر غیر فعال کنید:
sudo swapoff -v /swapfile
2. خط /swapfile swap swap defaults 0 0
که قبلا به فایل /etc/fstab
اضافه کرده بودید را حذف کنید.
3. در آخر فایل swap را با دستور rm
حذف کنید:
sudo rm /swapfile
# نتیجه گیری
شما یاد گرفته اید که چگونه یک فایل swap ایجاد کنید و فضای swap را در سیستم لینوکس خود فعال و پیکربندی کنید. یک فایل swap به سیستم عامل اجازه می دهد تا از فضای هارد دیسک برای شبیه سازی حافظه اضافی استفاده کند. وقتی حافظه سیستم کم می شود، بخشی از RAM را که یک برنامه غیرفعال از آن استفاده می کند، روی هارد دیسک تعویض می کند تا حافظه را برای برنامه های دیگر آزاد کند.