−25%

روی پرداخت سالانه Windows، تا ۳۱ اکتبر. مشاهده پلن‌ها

EQVPS

چطور روی VPS لینوکسی فایل swap اضافه کنیم

با پنج دستور یک فایل swap بسازید، کاری کنید پس از ری‌بوت بماند و swappiness را تنظیم کنید؛ به همراه اینکه چقدر swap اضافه کنید و کی راه‌حل واقعی RAM بیشتر است.

سرورهای کوچک در بدترین لحظه‌ها حافظه کم می‌آورند: یک apt upgrade، یک بیلد Docker، یک پشتیبان‌گیری شبانه. بدون swap، OOM killer کرنل یک پردازه را انتخاب می‌کند و می‌کشد؛ اغلب پایگاه‌داده شما را. فایل swap کمربند ایمنی ارزانی است که به آن جهش‌ها جایی برای رفتن می‌دهد. پنج دستور لازم است.

۱. ببینید چه دارید

swapon --show
free -h

اگر swapon --show چیزی نشان ندهد، هنوز swap ندارید.

۲. فایل swap را بسازید

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

chmod 600 مهم است: swap ممکن است تکه‌هایی از هر چیزی که در حافظه بوده، از جمله رازها، داشته باشد، پس فقط root باید بتواند آن را بخواند. اگر fallocate با پیام «operation not supported» شکست خورد، به جایش از dd استفاده کنید:

dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

۳. دائمی‌اش کنید

بدون این مرحله، swap پس از ری‌بوت ناپدید می‌شود:

echo '/swapfile none swap sw 0 0' >> /etc/fstab

۴. swappiness را تنظیم کنید

به کرنل بگویید RAM را ترجیح دهد و عمدتاً زیر فشار از swap استفاده کند:

echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system

۵. بررسی کنید

swapon --show
free -h

باید یک دستگاه swap دو گیگابایتی ببینید و cat /proc/sys/vm/swappiness باید عدد 10 را چاپ کند.

چقدر بزرگ باشد؟

اندازه swap را «دو برابر RAM» نگذارید. روی سرور، swap برای جذب جهش‌های کوتاه است، نه اجرای کارهایی که در حافظه جا نمی‌شوند.

وقتی swap پاسخ نیست

چند روز زیر نظرش بگیرید:

vmstat 5

ستون‌های si و so صفحاتی را نشان می‌دهند که در هر ثانیه از swap خوانده و در آن نوشته می‌شوند. فعالیت گاه‌به‌گاه عادی است. مقادیر غیرصفر دائمی یعنی سرور کمبود حافظه دارد و همه‌چیز منتظر دیسک است. آن وقت راه‌حل RAM بیشتر است؛ یک VPS چقدر RAM لازم دارد را ببینید. در EQVPS می‌توانید بدون نصب دوباره به پلن بزرگ‌تر بروید؛ داده‌هایتان سر جایشان می‌مانند.

مرتبط

پرسش‌های متداول

چقدر swap اضافه کنم؟

روی سرورهای ۱ تا ۲ گیگابایت RAM، یک فایل swap ۱ تا ۲ گیگابایتی پیش‌فرض خوبی است. روی سرورهای بزرگ‌تر هم ۱ تا ۲ گیگابایت به عنوان تور ایمنی کافی است؛ توصیه «دو برابر RAM» مال دوران دستگاه‌های ۲۵۶ مگابایتی است.

آیا swap سرورم را سریع‌تر می‌کند؟

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

swappiness چه کار می‌کند؟

تعیین می‌کند کرنل با چه اشتیاقی حافظه بیکار را به swap منتقل کند. مقدار پیش‌فرض ۶۰ نسبتاً زود swap می‌کند؛ مقدار ۱۰ به کرنل می‌گوید چیزها را در RAM نگه دارد و عمدتاً زیر فشار واقعی از swap استفاده کند، که برای بیشتر سرورها مناسب است.

چرا فایل swap به جای پارتیشن swap؟

یک فایل را می‌شود روی سرور در حال اجرا در چند ثانیه و بدون دست زدن به جدول پارتیشن ساخت، تغییر اندازه داد و حذف کرد. عملکرد روی فایل‌سیستم‌های امروزی یکسان است.

بعداً چطور swap را حذف کنم؟

'swapoff /swapfile' را اجرا کنید، خط /swapfile را از /etc/fstab پاک کنید، سپس 'rm /swapfile'.

نظرات

هنوز نظری نیست. اولین نفر باشید.

یک نظر بگذارید

نظرات پیش از نمایش بررسی می‌شوند.