در این مطلب می‌خواهیم نحوه افزایش حافظه swap را در لینوکس CentOS 7 بررسی کنیم. لینوکس این امکان را دارد که حافظه فیزیکی RAM را به قطعات کوچکتر حافظه با نام page تقسیم کند. در روش موسوم به Swapping، یک page از حافظه می‌تواند در فضایی از پیش تعیین شده بر روی دیسک سخت کپی شود. این فضا، فضای swap نامیده می‌شود و برای خالی‌ کردن یک page خاص از حافظه به کار می‌‌رود. بنابراین، ترکیب حافظه فیزیکی و فضای swap مقدار فضای حافظه‌ای است که واقعاً‌ در دسترس قرار دارد.

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

دو روش برای افزایش حافظه Swap وجود دارد.

۱) پارتیشن swap

۲) فایل swap

اولین روش: پارتیشن swap

ابتدا با استفاده از فرمان swapon –s بررسی کنید که چقدر فضا برای swap وجود دارد.

مقدار فضای در دسترس برای افزایش حافظه swap

مقدار فضای در دسترس برای افزایش حافظه swap

بررسی فضای کلی سیستم نیز با استفاده از فرمان free –m انجام می‌گیرد.

بررسی کلی فضای سیستم

بررسی کلی فضای سیستم

قبل از اینکه جانمایی swap را انجام دهید، فضای در دسترس درایو را نیز با فرمان df –h بررسی کنید.

بررسی فضای در دسترس درایو

بررسی فضای در دسترس درایو

حالا با استفاده از فرمان زیر، یک پارتیشن برای فضای swap ایجاد کنید.


fdisk /dev/sda

ایجاد یک پارتیشن برای افزایش حافظه swap

ایجاد یک پارتیشن برای افزایش حافظه swap

حرف n را برای ایجاد پارتیشن جدید تایپ کنید و سپس Enter بزنید.

حالا باید انتخاب کنید که چه نوعی از پارتیشن (اصلی یا گسترده) می‌خواهید. در اینجا ما نوع پارتیشن اصلی را انتخاب کرده اید. سپس Enter می‌زنیم و شماره پارتیشن را نیز مشخص می‌کنیم.

حالت پیش‌فرض اولین و آخرین سکتور را انتخاب می‌کنیم و سپس کلید Enter را می‌زنیم.

با فشردن کلید p، پارتیشن‌‌ها را لیست کنید.

لیست پارتیشن‌ها

لیست پارتیشن‌ها

با زدن کلید I بر اساس شناسه یا ID پارتیشن‌ها را لیست کنید.

حرف t را فشار دهید تا شناسه پارتیشن را تغییر داده و عدد 82 را برای Linux Swap / So انتخاب کنید.

تغییر شناسه پارتیشن swap

تغییر شناسه پارتیشن swap

 

با زدن کلید p، پارتیشن swap لیست خواهد شد.

برای ذخیره  تغیرات، کلید w را بزنید.

حالا با استفاده از فرمان زیر، تنظیم سیستم را بروزرسانی کنید.


partprobe /dev/sda1

فرمان زیر نیز برای فرمت‌کردن پارتیشنی که ساخته‌اید، استفاده می‌شود.


mkswap /dev/sda1

برای فعال‌کردن حافظه swap داریم:


Swapon /dev/sda1

از این فرمان برای تأیید پارتیشن فعال استفاده کنید.


Cat /proc/swaps

برای اضافه‌کردن پارتیشن جدید به فایل تنظیمات fstab، فرمان زیر به کمک شما می‌آید.


Vim /etc/fstab

حالا صفحه fstab را ذخیره کرده و ببندید. سپس نوبت به راه‌اندازی دوباره سیستم می‌رسد.

سپ از راه‌اندازی دوباره سیستم، با استفاده از فرمان cat /proc/swaps، بررسی کنید  که ‌آ‌یا پارتیشن جدید در لیست قرار گرفته یا خیر.

دومین روش برای افزایش حافظه swap: استفاده از فایل

در صورتی درایو دیگری در حافظه سیستم وجود نداشته باشد، می‌توانید یک فایل برای افزایش حافظه swap ایجاد کنید.

از فرمان زیر برای ایجاد یک فایل swap استفاده کنید و سپس Enter بزنید.


dd if=/dev/zero of=/root/vembuswap bs=1M count=1024

 

سپس با فرمان ls -l /root/vembuswap وضعیت مجوّز های فایل swap جدید را بررسی کنید.

برای تنظیم مجوّزهای فایل swap می‌توانید از فرمان زیر استفاده کنید.


chmod 600 /root/vembuswap

با کمک  فرمان زیر، این فایل را تبدیل به فایل swap کنید.


mkswap /root/vembuswap

اکنون با استفاده از فرمان زیر، این فایل swap را که به‌تازگی ساخته‌اید، فعال کنید.


swapon /root/vembuswap

حالا نوبت به اضافه‌کردن این فایل swap به صفحه fstab با استفاده از فرمان زیر است.


vim /etc/fstab

وقتی این کار را انجام دادید، فایل را ذخیره کرده و ببندید.

اکنون باید دسترسی فایل swap را با فرمان swapon –s و فضای خالی حافظه را نیز با فرمان free –m بررسی کنید.

جمع‌بندی

مدیریت حافظه swap یکی از مهمترین جنبه‌های مدیریت سیستم‌های سرور است. با طراحی و استفاده مناسب، و همین‌طور افزایش حافظه swap می‌توان خدمات بسیار بهتری به کاربران ارائه داد.