بلاگ/اضافه‌کردن فضای فایل Swap به سرور اوبونتو 20.04
به‌روز شده

اضافه‌کردن فضای فایل Swap به سرور اوبونتو 20.04

فایل Swap فضای اضافی نسبت به حافظه رم است که از طریق فضای دیسک سخت جانمایی می‌شود. در صورتی که حافظه رم به میزان کافی در دسترس نباشد، سیستم قدیمی‌ترین داده‌ها را به حافظه Swap انتقال می‌دهد و بنابراین فضا را برای اپلیکیشن‌های فعال خالی می‌کند. درایوهای هارددیسک حتی آنهایی که به صورت solid-state...

1399/11/052355 بازدید
اضافه‌کردن فضای فایل Swap به سرور اوبونتو 20.04
فایل Swap فضای اضافی نسبت به حافظه رم است که از طریق فضای دیسک سخت جانمایی می‌شود. در صورتی که حافظه رم به میزان کافی در دسترس نباشد، سیستم قدیمی‌ترین داده‌ها را به حافظه Swap انتقال می‌دهد و بنابراین فضا را برای اپلیکیشن‌های فعال خالی می‌کند. درایوهای هارددیسک حتی آنهایی که به صورت solid-state هستند، سرعت پایین‌تری نسبت  به حافظه رم دارند. بنابراین، ضمن طراحی و استفاده از سیستم، جانمایی مقداری از رم با فضای مشخصی از Swap به عنوان پشتیبان ضروری خواهد بود. اندازه بهینه حافظه Swap برابر میزان رم است. در عین حال، گاهی اوقات می‌توان آن را تا ۲ برابر نیز درنظر گرفت. سرورهای مجازی معمولاً عاری از فضای Swap هستند. در سرورهای  فیزیکی، این حافظه معمولاً به صورت اتوماتیک تنظیم می‌شود و در عین حال، می‌توان آن را بنابر مقاصدی خاص تغییر داد. در این آموزش قصد داریم که یک فایل Swap به اندازه ۴ گیگابایت ایجاد کنیم.

ساخت فایل Swap

ابتدا یک فایل ایجاد می‌کنیم و فضا را برای Swap به صورت “از پیش جانمایی” می‌کنیم.
php
sudo fallocate -l 4G /swap
ضمناً دسترسی را برای همه کاربران به جز روت به این فایل قطع می‌کنیم.
php
sudo chmod 600 /swap
تنظیم ناحیه Swap در فایل
php
sudo mkswap /swap
خروجی
php
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)no label, UUID=3c2ac0c0-3cc2-4571-b072-5f7d556acc88
با دستور زیر فایل Swap را فعال می‌کنیم.
php
sudo swapon /swap
برای فعالسازی آن پس از راه‌اندازی دوباره سیستم، فایل زیر را باز کنید.
php
sudo nano /etc/fstab
سپس خط زیر را در انتهای آن اضافه نمایید.
php
/swap swap swap defaults 0 0

بررسی فایل Swap

برای مشاهده اندازه و فضای مورد استفاده Swap کافی است که فرمان زیر را تایپ کنید.
php
sudo swapon --show
خروجی
php
NAME TYPE SIZE USED PRIO/swap file 4G 0B -2
گزینه دون برای مشاهده حافظه رم و فایل Swap به کار می‌رود.
php
sudo free -h
خروجی
php
total used free shared buff/cache availableMem: 1.9Gi 74Mi 1.8Gi 0.0Ki 115Mi 1.7GiSwap: 4.0Gi 0B 4.0Gi

تنظیمات Swappiness

Swappiness پارامتری است که به امکان می‌دهد سطح استفاده از Swap را در سیستم تنظیم کنید. مقادیر بالا از این پارامتر باعث می‌شود که عملکرد حافظه Swap نسبتاً فعال باشد و این در حالی است که مقادیر کمتر منجر به استفاده حداقلی از آن خواهد شد. برای مشاهده مقدار کنونی این پارامتر داریم:
php
cat /proc/sys/vm/swappiness
خروجی
php
60
برای تنظیم مقدار نمونه ۲۰ به روش زیر عمل می‌کنیم. در عین حال، می‌توانید هر یک از اعداد بین صفر تا ۱۰۰ را وارد کنید.
php
sudo sysctl vm.swappiness=20
برای ذخیره این تنظیم پس از راه‌اندازی دوباره سیستم، فایل /etc/sysctl.conf را باز کنید و خط زیر را در آن قرار دهید.
php
vm.swappiness=20
حالا فایل را ذخیره کرده و ببندید.

حذف حافظه Swap

ابتدا Swap را غیرفعال کنید.
php
sudo swapoff /swap
سپس خط زیر را از فایل /etc/fstab بردارید.
php
/swap swap swap defaults 0 0
نهایتاً فایل را در فایل سیستمی  حذف کنید.
php
sudo rm /swap