آرش حقیقت
آرش حقیقت
خواندن ۲ دقیقه·۸ سال پیش

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

شاید با خودتون فکر کنید: چرا ممکنه بخوام swap را بعد از نصب لینوکس اضافه کنم؟
مگه همیشه موقع نصب، فضای مناسب را در نظر نمی‌گیرم؟
در پاسخ باید بگم که بعضی وقتا ممکنه فراموش کنیم یا گاهی اوقات وقتی از یک ارایه دهنده خدمات مثل دیجیتال‌اوشن VPS می‌خریم، می‌بینیم که فضای swap در نظر نگرفتن.

اصلا swap چیه و چرا به swap احتیاج داریم؟

فضای swap در تعریف خودمونی جایی هست که هر وقت ram پر میشه و قابل استفاده نیست، سیستم‌عامل از این فضا استفاده می‌کنه تا بتونه به کار خودش ادامه بده، در غیر این صورت ممکنه crash کنه و این برای یه سرور لینوکسی فاجعه هست. این مکانیزم توی سیستم‌عامل‌های Unix Like با نام swap شناخته میشه و توی ویندوز با نام Page File.

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

چطور swap بسازیم؟

اگر نیاز دارید swap بسازید یا فضای swap برای سرور فعلی، مناسب نیست و به فضای بیشتری احتیاج دارید، دو راه وجود داره:
۱. فایل swap: این فایل می‌تونه روی هر مسیر از سرور شما باشه مثلا روی یک فلش که به سیستم متصل می‌کنید یا هر جای هارد.
این فایل را معمولا با fallocate  یا dd  می‌سازیم.
۲. پارتیشن swap: پارتیشنی هست که روی سرور شما مانت شده یا از کل پارتیشن موجود روی فلش شما مثل dev/sdb1/ استفاده می‌کنیم.

فایل swap

ابتدا نیاز داریم فایلی بسازیم که داخلش مقادیر ۰ وجود داشته باشه یا به عبارتی فایل خالی با حجم مورد نیاز مثلا ۱ گیگابایت.

dd if=/dev/zero of=/swap bs=1G count=1

یا با کمک fallocate

fallocate -l 1G /swap

حالا Permission فایل ساخته شده را به ۶۰۰ تغییر میدیم که اجازه دسترسی را ازبقیه یوزر‌ها بگیریم.

chmod 600 /swap

فایل آماده شده و می‌تونیم به فضای swap تبدیلش کنیم.

mkswap /swap

و فعالش می‌کنیم

swapon /swap

حالا نیاز داریم که فایل رو به صورت همیشگی به سیستم‌عامل اضافه کنیم تا بعد از ریبوت شدن هم فعال بمونه.
برای این کار خط زیر رو به فایل etc/fstab/  اضافه می‌کنیم.

/swap none swap sw 0 0

حالا با free -h یا htop  می‌تونیم ببینیم که swap به سرور اضافه شده.

پارتیشن swap

اگر یک استوریج (به هر شکلی مثل فلش یا هارد یا…) به سرورتون اضافه کردین و می‌خواهید از اون استوریج به عنوان swap استفاده کنید، اول باید با دستور fdisk -l  اسم دیوایس را پیدا کنید، مطمعن بشید که اسم درست را انتخاب کردین چون قراره تمام اطلاعات روی این دیوایس از بین بره.

اول نیاز دارید که یک پارتیشن بسازید.
— در صورتی که پارتیشن قبلا ساخته شده، می‌تونید به مرحله بعد برید
مثلا در صورتی که device name مورد نظر شما dev/sdb1/  هست می‌تونید پارتیشن را با سایز مورد نظر به وسیله parted  یا fdisk  بسازید.

حالا که پارتیشن ساخته شد، مثل مرحله قبل ادامه می‌دیم:

mkswap /dev/sdbX

X تو این مرحله شماره پارتیشنی هست که روی بلاک دیوایس دوم (sdb) ساختید یا از قبل وجود داشته.

swapon /dev/sdb1

حالا که swap ساخته و روشن شد، با اضافه کردنش به فایل etc/fstab/  به صورت پایدار در میاریم که بعد از ریبوت شدن کارایی داشته باشه.

/dev/sdb1 swap swap defaults 0 0
swapآموزشسیستم عامللینوکس
شاید از این پست‌ها خوشتان بیاید