دیسک و Swap در VPS و بهینه سازی آن

اگر یک VPS با رم محدود دارید، سرعت واقعی تان را پیکربندی دیسک و Swap در VPS تعیین می کند؛ همان جایی که برنامه ها در ترافیک I/O گیر می کنند یا نرم و روان می دوند. در این مقاله اسپاد سرور، از تصمیم های کوچک اما اثرگذار می گوییم: از فایل سیستم و گزینه های mount تا اندازه ی Swap، zram، و ریزتنظیمات کرنل. نتیجه؟ تاخیر کمتر، پایداری بیشتر، و مصرف هوشمندانه ی منابع.
۱) انتخاب فایل سیستم و گزینه های Mount برای دیسک و Swap در VPS
برای اکثر سرور مجازی ها، ext4 انتخابی امن و کاربردی است؛ XFS برای حجم های بزرگ و فایل های درشت (بکاپ/مدیا) عالی عمل میکند. صرفا انتخاب FS کافی نیست؛ گزینههای mount هم مهم اند:
noatime
را فعال کنید تا هر خواندن، زمان دسترسی فایل را به روز نکند.- روی SSD/NVMe از TRIM استفاده کنید؛ بهجای
discard
همیشگی، زمان بندی دوره ای بهتر است:systemctl enable --now fstrim.timer
- نمونه ی fstab برای روت ext4:
UUID=... / ext4 defaults,noatime 0 1
- اگر بار کاریتان بیشتر ترتیبی است تا تصادفی (streaming/backup)، اندازهی readahead را کمی بالا ببرید:
blockdev --getra /dev/vda blockdev --setra 256 /dev/vda
نکته: در VPS ها حتی در سرور مجازی پیشرفته ، کنترل مستقیم scheduler همیشه ممکن نیست، اما اگر NVMe واقعی دارید، بررسی کنید:
cat /sys/block/nvme0n1/queue/scheduler
برای NVMe معمولا 'none' مناسب است.
۲) طرح پارتیشن و LVM؛ انعطاف + امنیت دیسک و Swap در VPS
اگر ارائه دهنده اجازه می دهد، از LVM استفاده کنید تا بعدا بتوانید منطقی و بی دردسر حجم ها را بزرگ/کوچک کنید. برای سرویس هایی مثل دیتابیس یا لاگ های حجیم:
/var/log
را جدا کنید تا پر شدن لاگ، سیستم را از کار نیندازد.- دیتای دیتابیس را روی یک LV مجزا بگذارید تا مانیتورینگ و رشد حجم ساده تر شود.
در بسیاری از ایمیج های ابری فقط یک پارتیشن روت دارید؛ همان هم خوب است، اما با LVM و جداسازی مسیرهای حساس، ریسک های عملیاتی کاهش می یابد.
اگر نیاز به راهنمایی برای خرید هاست اقتصادی و دامنه و سرور مجازی دارید، متخصصان با تجربه اسپاد سرور آماده خدمت به شما هستند. برای تماس با ما، روی “تماس با اسپاد سرور” کلیک کنید.
۳) Swap: چقدر، کجا و چگونه؟
Swap دشمن شما نیست؛ کمربند ایمنی است. اندازهی RAM×۲ دیگر نسخه ی عمومی خوبی نیست. راهنمای عملی سواپ در بهینه سازی دیسک و Swap در VPS:
- RAM ≤ 2GB: حداقل ۱–2GB Swap (برای امنیت در اوج مصرف).
- RAM 4–8GB: حدود ۱–2GB کافی است.
- RAM ≥ 16GB: ۲–4GB برای خطاهای لبه ای و نگه داشتن کش ها.
روی SSD/NVMe، swapfile انعطاف پذیرتر از پارتیشن است و روی ext4/XFS به خوبی کار می کند.
ایجاد swapfile پیشنهادی 2GB:
fallocate -l 2G /swapfile || dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile swap swap defaults,pri=10 0 0' >> /etc/fstab
نکته: در بعضی محیط های container یا OpenVZ، Swap را هاست کنترل می کند و داخل VPS قادر به افزودن آن نیستید.
۴) zram: هوشمندانه تر از دیسک
اگر در دیسک و Swap در VPS رم کم است و I/O دیسک گلوگاه می شود، zram (فشرده سازی حافظه ی در حال استفاده بهعنوان swap) معمولا بهتر از ضربه زدن به SSD است؛ تاخیر کمتر، نوشتن کمتر روی دیسک. روی توزیع های Debian/Ubuntu لینوکس:
apt update && apt install -y zram-tools
# سپس /etc/default/zramswap را تنظیم کنید، مثلا:
# ALGO=zstd
# PERCENT=50
systemctl enable --now zramswap
ترکیب مقدار کم swapfile + zram غالبا تعادل خوبی بین کارایی و پایداری ایجاد میکند.

دیسک و Swap در VPS
۵) ریزتنظیمات کرنل برای Swap و کش | بهینه سازی دیسک و Swap در VPS
دو کلید پرکاربرد:
- swappiness: تمایل کرنل به swap کردن. برای سرورهای وب/اپ با SSD: ۱۰ تا ۲۰.
sysctl -w vm.swappiness=15 echo 'vm.swappiness=15' > /etc/sysctl.d/99-swap-tuning.conf
- vfs_cache_pressure: تعادل بین نگهداری کش inode/dentry و آزادسازی آن. مقدار ۵۰–۱۰۰ را تست کنید؛ ۵۰ کش بیشتر نگه می دارد (به نفع سرعت فایل سیستم)، ۱۰۰ حالت پیش فرض است.
sysctl -w vm.vfs_cache_pressure=80 echo 'vm.vfs_cache_pressure=80' > /etc/sysctl.d/99-fs-cache.conf
اگر بار نوشتن سنگینی دارید، پارامترهای dirty (مثل vm.dirty_background_ratio
) هم قابل تنظیم اند، اما بدون مانیتورینگ دقیق، تغییرشان را توصیه نمی کنیم.
۶) مانیتورینگ دیسک و Swap در VPS : حدس نزنید، اندازه بگیرید
قبل از هر تغییر و بعد از آن، شاخص ها را بسنجید:
- iostat -xz 1: درصد اشغال دیسک و زمان انتظار.
- iotop: کدام پردازش ها I/O می خورند.
- vmstat 1: swap in/out و صف های اجرا.
- sar / dstat: روندهای تاریخی.
اگر می بینید si/so
در vmstat بالا می رود یا await در iostat جهش دارد، رم/Swap/دیسک یا الگوی دسترسیتان نیاز به بازنگری دارد.
۷) چند الگوی عملی برای سناریوهای رایج دیسک و Swap در VPS
- VPS وردپرسی ۲–۴GB RAM روی SSD
ext4 +noatime
، swapfile ۱–2GB، zram 25–۵۰% رم،vm.swappiness=15
،fstrim.timer
فعال. اگر php-fpm و mysqld کنار هم اند، مانیتورینگ iostat/iotop ضروری است. - سرویس دانلود/بکاپ
XFS، readahead بالاتر (مثلا ۲۵۶–۵۱۲)، جدا کردن مسیر دیتا با LVM، و فضای Swap حداقلی (۱–۲GB) کافی است. - VPS دیتابیس سبک
ext4 یا XFS، جداسازی دیتای DB روی LV،noatime
، Swap 2GB برای شرایط خاص، swappiness پایین (۱۰–۱۵)، و توجه ویژه به مانیتورینگ latency دیسک.
۸) چک لیست بهینه سازی دیسک و Swap در VPS
- فایل سیستم مناسب (ext4/XFS) +
noatime
- فعال سازی
fstrim.timer
برای SSD/NVMe - طراحی منطقی پارتیشن/LVM برای مسیرهای حساس
- swapfile کوچک اما کافی + اولویت مناسب (
pri
) - zram برای رم های کم یا بار burst
-
vm.swappiness
حدود ۱۰–۲۰ وvfs_cache_pressure
بهینه - سنجش قبل/بعد با iostat، iotop، vmstat
این تغییرات کوچک، مثل پیچ گوشتی های دقیق در جعبه ابزار شما هستند: شاید ساده به نظر برسند، اما یک به یک که درست تنظیم شوند، VPS شما در شلوغ ترین ساعات هم خونسرد و قابل اعتماد می ماند.