−25%

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

EQVPS
شروع کنید

کی واقعاً به ۶۴ گیگابایت رم نیاز دارید (و کی ۲ گیگابایت کافی است)

18 مهر 1405 · 5 دقیقه مطالعه · EQVPS Team

«سرور کند است، رم را دو برابر کنیم» پرهزینه‌ترین واکنش غریزی در دنیای میزبانی است. گاهی درست است. اما بیشتر وقت‌ها ماشین منتظر دیسک است یا CPU تا ته پر شده، و حافظهٔ تازه بیکار می‌ماند در حالی که صورت‌حساب دو برابر می‌شود.

پس پیش از اینکه دربارهٔ این حرف بزنیم که چه کسی به 64 GB نیاز دارد، بیایید ببینیم واقعاً چه چیزی کم دارید. اگر فقط عددهای معمول حافظه برای هر نوع بار را می‌خواهید، در راهنمای قبلی ما یک VPS چقدر رم لازم دارد آمده‌اند، همراه با فرمول مدل‌های زبانی. این نوشته دربارهٔ تشخیص است: رم، دیسک یا CPU.

سه فرمان، دو دقیقه

آن‌ها را روی سرور کند، همان وقتی که کند است اجرا کنید، نه ساعت چهار صبح که هیچ اتفاقی نمی‌افتد:

free -m
vmstat 1 10
cat /proc/pressure/cpu /proc/pressure/memory /proc/pressure/io

این‌طور بدون کتاب درسی بخوانیدشان.

فرمان free -m. ستون free را نادیده بگیرید؛ ‏Linux عمداً حافظهٔ آزاد را با کش دیسک پر می‌کند. به available نگاه کنید. اگر روی ماشینی با 2 GB فقط چند صد مگابایت نشان بدهد و used در swap مدام بالا برود، حافظه تنگ است.

فرمان vmstat 1 10. چهار ستون بیشتر ماجرا را می‌گویند:

ستونمعنینشانهٔ
si / soصفحه‌های واردشده به swap و خارج‌شده از آن در هر ثانیهرم
waدرصد زمانی که CPU منتظر دیسک استدیسک
us + syدرصد زمانی که CPU کار می‌کندCPU
stدرصد زمانی که هایپروایزر CPU شما را به دیگری دادهCPU (vCPU با دیگران تقسیم می‌شود)

چند مقدار غیرصفر در si/so گاه‌به‌گاه طبیعی است. نشانهٔ واقعی swap پیوسته است، ثانیه به ثانیه.

فایل‌های /proc/pressure/*. صادق‌ترین از میان این سه. هر فایل نشان می‌دهد چه سهمی از زمان، کارها در انتظار آن منبع متوقف بوده‌اند. ‏some avg60=25.00 در memory یعنی در دقیقهٔ گذشته چیزی یک‌چهارم وقت منتظر حافظه بوده است. هر فایلی که بزرگ‌ترین عددها را دارد، گلوگاه شماست.

اگر مشکل از دیسک است

‏wa بالا، فشار io بالا، swap کم. علت معمول، پایگاه‌داده یا برنامه‌ای پرلاگ است که بیش از ظرفیت کش می‌خواند.

و اینجا پیچ ماجراست: رم بیشتر می‌تواند این را حل کند، چون Linux بخش بزرگ‌تری از دیسک را کش می‌کند. اگر پایگاه‌دادهٔ شما 6 GB باشد و بخش داغش 3 GB، رفتن از 2 GB به 8 GB حافظه ممکن است مشکل دیسک را از بین ببرد. اما اگر پایگاه‌داده 300 GB باشد و هر کوئری بخش تازه‌ای را لمس کند، هیچ مقدار معقولی از رم نمی‌تواند آن را کش کند. آن وقت راه‌حل ایندکس‌های بهتر، کوئری‌های کوچک‌تر یا چیدمان دیگری برای داده است. همهٔ تعرفه‌های اینجا روی NVMe اجرا می‌شوند، پس بخش کند به‌ندرت خود دیسک است. معمولاً شیوهٔ دسترسی به آن است.

اگر مشکل از CPU است

‏us+sy بالا، فشار cpu، بدون swap، انتظار کم برای دیسک. فشرده‌سازی، build، کدگذاری ویدیو، پردازش تصویر، محاسبات رمزنگاری. حافظهٔ بیشتر اینجا هیچ کمکی نمی‌کند.

به st هم دقت کنید. در VPS، هر vCPU سهمی از زمان یک هستهٔ فیزیکی است، نه کل هسته: عدد تعرفه سقفی برای جهش‌های کوتاه است، و بار کامل طولانی ممکن است محدود شود تا برای همهٔ کسانی که روی ماشین‌اند منصفانه بماند. اگر کار شما ساعت‌ها همهٔ هسته‌ها را روی 100٪ می‌خواهد، این مسئلهٔ خود کار است، و ترجیح می‌دهیم همین حالا بگوییم، نه بعد از اینکه تعرفهٔ بزرگ‌تری خریدید.

اگر واقعاً رم است

‏swap پیوسته، فشار حافظهٔ رو به افزایش، OOM killer در dmesg. حالا سؤال این است: چقدر.

‏2 GB کافی است، اغلب برای سال‌ها، برای: یک یا چند ربات، یک API کوچک، یک VPN، یک سایت ایستا پشت Nginx، چند اسکرپر روی cron، یک ایجنت پایش. ‏Micro با 2 vCPU، 2 GB و 25 GB ماهانه 5 دلار روی NAT است، یا 10 دلار با IPv4 اختصاصی.

‏4–8 GB میانهٔ راحت است: یک اپ وب همراه پایگاه‌داده‌اش، یک ایندکس جست‌وجوی کوچک، خودکارسازی مرورگر بدون رابط، دو سه ایجنت کنار هم.

‏32–64 GB برای داده‌ای است که باید در حافظه زندگی کند:

  • پایگاه‌داده‌ای که مجموعهٔ کاری‌اش ده‌ها گیگابایت است، تا کش واقعاً دادهٔ داغ را نگه دارد؛
  • کش یا صف بزرگ درون حافظه که نمی‌تواند بدون کند کردن همه‌چیز به دیسک سرریز شود؛
  • ایندکس برداری برای جست‌وجو در میلیون‌ها قطعه (عددهای واقعی در RAG خودمیزبان در مقیاس بزرگ)؛
  • استنتاج یک مدل زبانی متوسط روی CPU، که وزن‌هایش باید در رم جا شوند؛
  • تجمیع: ده سرویسی که پیش‌تر روی ده سرور کوچک بودند.

‏Pro-64 برای همین است: 12 vCPU، 64 GB رم، 600 GB حافظهٔ NVMe و یک IPv4 اختصاصی با ماهانه 70 دلار. پله‌های میانی Pro-32 با 40 دلار و Pro-48 با 55 دلار هستند؛ بالاتر از آن Pro-80 با 90 دلار. در دسترس بودن موقعیت‌ها برای تعرفه‌های Pro هنگام سفارش نمایش داده می‌شود.

جایی که ماشین بزرگ مناسب نیست

سه حالت که 64 GB پاسخ اشتباه است، حتی اگر از عهده‌اش بربیایید.

کار با GPU. هیچ‌کدام از این تعرفه‌ها GPU ندارند. اگر مدل شما برای آموزش یا استنتاج سریع به GPU نیاز دارد، یک ماشین CPU با رم زیاد اجرایش می‌کند، اما آهسته، و شما بهای صبر را می‌پردازید.

کارهای طولانی با CPU کامل. همان‌طور که گفتیم: ‏vCPU ظرفیتی برای جهش‌هاست. دوازده‌تا از آن‌ها روی 100٪ شبانه‌روز، کاری نیست که VPS برایش ساخته شده.

و «محض احتیاط». اگر سه فرمان فشار حافظه نشان ندهند، 60 GB اضافه کش فایل‌هایی می‌شود که نمی‌خوانیدشان. کوچک‌تر شروع کنید. رفتن به تعرفهٔ بزرگ‌تر از همان نوع شبکه، vCPU و رم و دیسک را در جا و با یک ری‌استارت اضافه می‌کند، همان‌طور که در تغییر تعرفه آمده است. کوچک کردن در جا ممکن نیست، پس خرید بیش از اندازه هزینهٔ واقعی دارد: برای کوچک شدن باید به سرور تازه مهاجرت کنید، و انتقال VPS بدون قطعی کاری است که ترجیح می‌دهید لازمش نداشته باشید.

اگر تعرفه‌های ارائه‌دهندگان مختلف را مقایسه می‌کنید، چطور مشخصات VPS را بخوانیم توضیح می‌دهد عددهای vCPU، دیسک و پورت واقعاً چه وعده‌ای می‌دهند.

سؤالات متداول

از کجا بفهمم رم VPS من کم است؟

به فعالیت swap و فشار حافظه نگاه کنید، نه به کم بودن حافظهٔ آزاد. ‏Linux رم اضافه را برای کش دیسک به کار می‌برد، پس روی یک سرور سالم حافظهٔ آزاد همیشه پایین است. اگر در vmstat ستون‌های si/so مدت زیادی غیرصفر بمانند یا /proc/pressure/memory انتظار مداوم نشان دهد، رم کم دارید.

آیا رم بیشتر سروری را که گرفتار CPU است سریع‌تر می‌کند؟

نه. اگر CPU همیشه مشغول باشد و swap رخ ندهد، حافظهٔ اضافه بیکار می‌ماند. فشرده‌سازی، build، کدگذاری ویدیو و محاسبه به CPU نیاز دارند، نه رم.

آیا 2 GB رم برای یک VPS کافی است؟

برای یکی دو سرویس کوچک، بله: یک ربات، یک API کوچک، یک VPN، یک سایت ایستا، چند اسکریپت زمان‌بندی‌شده. بسیاری از این‌ها سال‌ها با کمتر از 1 GB کار می‌کنند. وقتی پایگاه‌داده‌ای با مجموعهٔ کاری رو به رشد، ابزار خودکارسازی مرورگر یا چند سرویس هم‌زمان اضافه کنید، دیگر کافی نیست.

چه چیزی واقعاً به 64 GB نیاز دارد؟

بارهایی که حجم زیادی داده را در حافظه نگه می‌دارند: پایگاه‌داده‌ای با ده‌ها گیگابایت دادهٔ داغ، کش بزرگ درون حافظه، ایندکس برداری برای جست‌وجو، استنتاج یک مدل زبانی متوسط روی CPU، یا سرویس‌های زیادی که روی یک ماشین جمع شده‌اند.

می‌توانم کوچک شروع کنم و بعداً بزرگ‌تر شوم؟

بله. رفتن به تعرفهٔ بزرگ‌تر از همان نوع شبکه، vCPU و رم و دیسک را در جا اضافه می‌کند، با یک بار ری‌استارت. اما تعرفه در جا فقط بزرگ می‌شود: برای کوچک کردن، سرور تازه سفارش می‌دهید و مهاجرت می‌کنید.

نظرات

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

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

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