فهرست مقاله
لینوکسچگونه به صورت دستی فایل ها و پارتیشن های تعویض حافظه مجازی SWAP را اضافه یا حذف کنیم؟
پارتیشن swap چیست؟ SWAP ناحیه مبادله است و نقش فضای SWAP زمانی استلینـوکــسهنگامی که حافظه فیزیکی سیستم کافی نباشد، بخشی از حافظه فیزیکی برای تکمیل حافظه فیزیکی ناکافی آزاد می شود، به طوری که در حال حاضر در حال اجرانرم افزاراستفاده از برنامه
مزایای استفاده از Swap برای پارتیشن های swap
تنظیم تنظیمات بهینه سازی SWAP برای کاربرد عملکرد سرور وب بسیار مهم است.اگر حافظه فیزیکی کافی نیست، می توانید با تنظیم پارتیشن SWAP حافظه مجازی به طور موثر در هزینه ارتقاء سیستم LINUX صرفه جویی کنید.
اندازه پارتیشن swap چقدر باید باشد؟
اندازه پارتیشن swap SWAP با توجه به اندازه حافظه واقعی سیستم و نرم افزار مورد استفاده تعیین می شود.
پیشنهادات برای CentOS و RHEL6 به شرح زیر است. لطفاً تنظیمات بهینه سازی مناسب را با توجه به شرایط خاص انجام دهید:
- 4 گیگابایت رم به حداقل 2 گیگابایت فضای تعویض نیاز دارد
- رم 4 تا 16 گیگابایتی به حداقل 4 گیگابایت فضای تعویض نیاز دارد
- رم 16 تا 64 گیگابایتی به حداقل 8 گیگابایت فضای تعویض نیاز دارد
- رم 64 تا 256 گیگابایتی به حداقل 16 گیگابایت فضای تعویض نیاز دارد
مشاهده حافظه فعلی و اندازه فضای مبادله (واحد پیش فرض k، -m واحد M است):
free -m
نتایج نمایش داده شده به شرح زیر است (مثال):
مجموع بافرهای مشترک رایگان استفاده شده در حافظه پنهان ذخیره شده است
مم: 498 347 151 0 101 137
-/+ بافر/کش: 108 390
تعویض: 0 0 0
اگر Swap 0 باشد، به این معنی است که خیر، و باید پارتیشن SWAP swap را به صورت دستی اضافه کنید.
(توجه: VPS با معماری OPENVZ از افزودن دستی پارتیشن تعویض SWAP پشتیبانی نمی کند)
2 نوع اضافه کردن فضای مبادله SWAP وجود دارد:
- 1. یک پارتیشن swap SWAP اضافه کنید.
- 2. یک فایل swap SWAP اضافه کنید.
توصیه می شود یک پارتیشن swap SWAP اضافه کنید؛ اگر فضای خالی زیادی باقی نمانده است، یک فایل swap اضافه کنید.
مشاهده اطلاعات SWAP (از جمله فایل مبادله SWAP و جزئیات پارتیشن):
swapon -s
یا
cat /proc/swaps
(اگر مقدار SWAP نمایش داده نشد، به این معنی است که فضای SWAP اضافه نشده است)
در اینجا مثالی از نحوه ایجاد یک فایل SWAP آورده شده است:
1. یک مبادله 1 گیگابایتی ایجاد کنید
dd if=/dev/zero of=/home/swap bs=1k count=1024k
mkswap /swapfile
swapon /swapfile
echo "/home/swap swap swap default 0 0" | sudo tee -a /etc/fstab
sudo sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
2. یک مبادله 2 گیگابایتی ایجاد کنید
dd if=/dev/zero of=/home/swap bs=1k count=2048k
mkswap /home/swap
swapon /home/swap
echo "/home/swap swap swap default 0 0" | sudo tee -a /etc/fstab
sudo sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
(پایان)
در زیر ارجاعات مفصل اضافی وجود دارد:
1. از دستور dd برای ایجاد فایل swap استفاده کنید
حافظه 1G
dd if=/dev/zero of=/home/swap bs=1024 count=1024000
حافظه 2G:
dd if=/dev/zero of=/home/swap bs=1k count=2048k
به این ترتیب یک فایل /home/swap ایجاد می شود که اندازه 1024000 1G و اندازه 2048k برابر با 2G است.
2. یک فایل با فرمت swap بسازید:
mkswap /home/swap
3. از دستور swapon برای نصب پارتیشن فایل به پارتیشن swap استفاده کنید
/sbin/swapon /home/swap
بیایید با دستور free -m نگاهی بیندازیم و متوجه شویم که از قبل یک فایل swap وجود دارد.
free -m
اما پس از راه اندازی مجدد سیستم، فایل swap دوباره 0 می شود.
4. برای جلوگیری از 0 شدن فایل swap پس از راه اندازی مجدد، فایل /etc/fstab را تغییر دهید.
در پایان (آخرین خط) فایل /etc/fstab اضافه کنید:
/home/swap swap swap default 0 0
(بنابراین حتی اگر سیستم راه اندازی مجدد شود، فایل swap همچنان ارزشمند است)
یا مستقیماً از دستور زیر برای اضافه کردن دستور پیکربندی نصب خودکار راهاندازی مجدد استفاده کنید:
echo "/home/swap swap swap default 0 0
" | sudo tee -a /etc/fstab
تحت چه شرایطی VPS از فضای تبادل SWAP استفاده می کند؟
قبل از استفاده از فضای مبادله SWAP، تمام حافظه فیزیکی مصرف نمی شود، بلکه با مقدار پارامتر مبادله تعیین می شود.
[root@~]#cat /proc/sys/vm/swappiness60
(مقدار پیش فرض این مقدار 60 است)
- swappiness=0 به معنای حداکثر استفاده از حافظه فیزیکی و سپس فضای تبادل SWAP است.
- swappiness=100 نشان می دهد که فضای swap به طور فعال استفاده می شود و داده های موجود در حافظه به موقع به فضای swap منتقل می شوند.
چگونه پارامتر swappiness را تنظیم کنیم؟
اصلاح موقت:
[root@~]#sysctl vm.swappiness=10vm.swappiness = 10
[root@~]#
cat /proc/sys/vm/swappiness10
(این تغییر موقت اعمال شده است، اما در صورت راه اندازی مجدد سیستم، به مقدار پیش فرض 60 باز می گردد)
اصلاح دائمی:
پارامترهای زیر را به فایل /etc/sysctl.conf اضافه کنید:
vm.swappiness=10
(ذخیره، پس از راه اندازی مجدد اعمال می شود)
یا دستور را مستقیم وارد کنید:
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
فایل swap SWAP را حذف کنید
1. ابتدا پارتیشن swap را متوقف کنید
/sbin/swapoff /home/swap
2. فایل پارتیشن swap را حذف کنید
rm -rf /home/swap
3. دستور پیکربندی خودکار mount را حذف کنید
vi /etc/fstab
این خط را حذف کنید:
/home/swap swap swap default 0 0
(با این کار فایل تعویض دستی اضافه شده حذف می شود)
توجه:
- 1. فقط کاربر root می تواند برای افزودن یا حذف عملیات مبادله استفاده شود.
- 2. به نظر می رسد پارتیشن swap اختصاص داده شده در هنگام نصب سیستم VPS قابل حذف نیست.
- 3. پارتیشن swap به طور کلی دو برابر اندازه حافظه است.
وبلاگ امید چن ویلیانگ ( https://www.chenweiliang.com/ ) به اشتراک گذاشته شده "CentOS چگونه به صورت دستی فایل ها و پارتیشن های تعویض حافظه مجازی SWAP را اضافه یا حذف کنیم؟ ، برای کمک به شما
به اشتراک گذاری لینک این مقاله خوش آمدید:https://www.chenweiliang.com/cwl-158.html
