مقارنة

تحديد حجم VPS لموقع عميل: الذاكرة والمعالج

مقارنات10 دقائق للقراءةعدد الخطوات: 8

اختيار خادم VPS بلا قياس يعني إما فوترة هامش ميت وإما تحمّل انقطاع عند أول ذروة. يبيّن هذا الدليل كيف تقرؤون الاستهلاك الفعلي للذاكرة والمعالج والقرص لموقع عميل بأدوات موجودة في كل مكان، مع اعتماد الذروة لا المتوسط. ثم يستخلص قاعدة حساب صريحة، ويكشف إشارات ضيق الحجم قبل العميل، ويحدد الخطة المناسبة. والاختيار الأول ليس نهائيًا لأن حجم VPS قابل للتغيير.

المحتويات· لماذا نقيس قبل اختيار الخطة1/12
  1. 01لماذا نقيس قبل اختيار الخطة
  2. 02ما الذي يمنحكم القياس
  3. 03المتطلبات: ما يجب تجهيزه قبل القياس
  4. 04قراءة الاستهلاك الفعلي خطوة بخطوة
  5. 05ما الذي يهيمن على الحمل بحسب نوع الموقع
  6. 06قيسوا الذروة لا المتوسط
  7. 07قاعدة حساب بسيطة، معلنة كفرضية
  8. 08اكتبوا الهامش في عرض السعر
  9. 09اكتشاف VPS صغير الحجم قبل العميل
  10. 10الإشارات مع رسائلها الدقيقة
  11. 11ما لا تحله ذاكرة أكبر
  12. 12اختيار الخطة ثم التوسع

لماذا نقيس قبل اختيار الخطة

يسأل العميل: «أي خادم VPS يحتاجه موقعي؟» وغالبًا ما يكون الجواب مجرد حدس. ومن هذا الحدس يخرج خطآن. الأول أخذ الخطة الأعلى «احتياطًا»: ففي محفظة من عشرين عميلًا يُدفع هذا الهامش الميت كل شهر ويأكل من هامش الوكالة. والثاني التضييق الزائد: أول ذروة زيارات أو نسخة احتياطية أو استيراد للكتالوج يُسقط الموقع، فيعلم العميل قبلكم.

الاعتراض المعتاد هو «ليس لدي وقت للقياس». لكن القياس لا يتجاوز ساعة من المراقبة الفعلية بأدوات موجودة أصلًا في كل توزيعة لينكس. ثم إن الاختيار الأول ليس نهائيًا: يمكن تغيير حجم خادم VPS عموديًا، أي الانتقال إلى خطة أكبر دون إعادة بناء البنية. فالمطلوب ليس إصابة الهدف من المحاولة الأولى، بل الاختيار بأرقام وهامش مكتوب يمكن الدفاع عنه أمام العميل.

وينطبق المنطق نفسه على المهني الذي يدير موقعه بنفسه، كمتجر إلكتروني مثلًا: كلفة الخطة الأكبر من اللازم تظهر في الفاتورة الشهرية، وكلفة الخطة الضيقة تظهر في المبيعات الضائعة أثناء ذروة الطلبات. وتتيح القراءات نفسها القرار عن بينة ودون وسيط.

يعالج هذا الدليل القياس قبل الشراء واختيار الخطة. وللمفاضلة بين VPS والاستضافة المشتركة، اقرؤوا أولًا VPS أم استضافة مشتركة لموقع عميل. وللتنبيه المستمر بعد دخول الخادم في الإنتاج، انظروا تنبيهات القرص والذاكرة على VPS.

ما الذي يمنحكم القياس

  • عرض سعر يمكن الدفاع عنه — تحددون الخطة بقراءات مؤرخة لا بانطباع.
  • لا هامش ميت — تتوقفون عن فوترة أو تحمّل خطة أكبر من اللازم عند كل عميل.
  • انقطاعات أقل عند أول ذروة — ترون امتلاء الذاكرة قبل أن يقتل عملية.
  • أساس للمقارنة — قراءة اليوم تتيح الحكم على النمو بعد ستة أشهر.
  • تشخيص صادق — تميّزون الموقع الذي تنقصه الموارد من الموقع سيئ الإعداد.
  • ترحيل أهدأ — تصلون إلى الخادم الجديد بخطة جُرّبت على الحمل الفعلي.

المتطلبات: ما يجب تجهيزه قبل القياس

يجري القياس على خادم العميل الحالي الذي يحمل الحمل الحقيقي، لا على نسخة فارغة. تحتاجون إلى وصول SSH للقراءة، وصلاحية تشغيل ps وfree وdf، وإن أمكن تثبيت الحزمة sysstat التي توفر sar وتحفظ سجلًا للحمل.

من حيث المدة، احسبوا أسبوعًا على الأقل من السجل إن كانت sysstat تعمل أصلًا، وإلا نافذة مراقبة لا تقل عن ساعة تشمل عمدًا لحظة ازدحام: ذروة زيارات معروفة أو النسخة الليلية أو مهمة مجدولة أو استيرادًا. القياس يوم الثلاثاء في الثالثة فجرًا لا يقول شيئًا عن يوم التخفيضات. وأخيرًا دوّنوا السياق: التطبيق (ووردبريس أو متجر أو تطبيق مخصص)، ووجود حاويات، وقاعدة البيانات على الجهاز نفسه أم لا.

قراءة الاستهلاك الفعلي خطوة بخطوة

  1. عدّ الأنوية

    شغّلوا nproc. هذا الرقم هو مرجع قراءة الحمل: متوسط حمل 4 سليم على 8 vCPU وحرج على 2.

  2. قراءة الذاكرة من العمود الصحيح

    شغّلوا free -h وانظروا إلى العمود available لا free. يملأ لينكس الذاكرة الحرة عمدًا بذاكرة تخزين مؤقت للقرص يمكن استرجاعها عند الطلب، فيبدو free منخفضًا دائمًا، بينما يُظهر available ما تبقى فعلًا للتطبيقات الجديدة دون اللجوء إلى swap.

  3. مراقبة المعالج والذاكرة والإدخال والإخراج

    شغّلوا vmstat 1 10. راقبوا si وso (التبادل مع swap، ويجب أن يبقيا صفرًا) وwa (انتظار الإدخال والإخراج) وr (العمليات المنتظرة للمعالج).

  4. قراءة متوسط الحمل

    شغّلوا uptime. القيم الثلاث هي المتوسطات على 1 و5 و15 دقيقة. قارنوها بـnproc: حمل يفوق عدد الأنوية باستمرار يدل على انتظار.

  5. تحديد كبار المستهلكين

    شغّلوا ps aux --sort=-%mem | head -15. مع الحاويات أضيفوا docker stats --no-stream، ومع systemd يرتب systemd-cgtop الخدمات حسب الاستهلاك.

  6. قياس القرص والـ inodes

    شغّلوا df -h للمساحة وdf -i للـ inodes. قد يرفض القرص الكتابة رغم بقاء مساحة بالبايت إذا نفدت الـ inodes. دوّنوا أيضًا حجم المجلدات التي تكبر: الوسائط وقاعدة البيانات والسجلات والنسخ المحلية.

  7. تسجيل سجل تاريخي بـ sar

    ثبّتوا sysstat وفعّلوا الجمع بحسب توزيعتكم، ثم اقرؤوا الذاكرة بـsar -r والمعالج بـsar -u والحمل بـsar -q. وبلا سجل، خذوا العينات بأنفسكم: يعطي vmstat 60 120 قراءة كل دقيقة طوال ساعتين.

  8. تدوين القيم القصوى

    ضعوا في جدول ذروة الذاكرة المستعملة وذروة الحمل ونمو القرص. هذا الجدول، لا المتوسط، هو ما يُحسب به الحجم.

ما الذي يهيمن على الحمل بحسب نوع الموقع

مرّر الجدول أفقيًا

نوع الموقعالمورد الذي يمتلئ أولًاما يجب تدوينه
موقع تعريفي أو ووردبريس قليل الزياراتالذاكرة، عبر PHP وقاعدة البيانات`free -h` عند الذروة، ذاكرة كل عملية PHP
متجر إلكترونيالذاكرة والمعالج عند ذروة الطلباتالحمل أثناء عرض ترويجي، عدد عمليات PHP المتزامنة
تطبيق أعمال بقاعدة بياناتإدخال وإخراج القرص والذاكرة`wa` في `vmstat`، حجم القاعدة، الاستعلامات البطيئة
موقع وسائط أو كتالوج صورالقرص وعرض النطاق`df -h`، النمو الشهري لمجلد الوسائط
موقع باستيراد أو مهمة مجدولة ثقيلةالمعالج والذاكرة بصورة مؤقتةالحمل والذاكرة أثناء المهمة، مدة المهمة
تطبيق في حاوياتمجموع ذاكرة الحاويات`docker stats --no-stream`، حدود الذاكرة المعلنة

قيسوا الذروة لا المتوسط

قد يعرض خادم متوسط معالج 25 % على مدى 24 ساعة وهو ممتلئ عشر دقائق كل مساء. المتوسط يمحو بالضبط ما يُسقط الموقع. وللتحديد، احتفظوا بالقيمة القصوى المرصودة في النافذة، وتأكدوا أنها تشمل أسوأ لحظة معروفة: ذروة الزيارات أو النسخة الاحتياطية أو مهمة cron ثقيلة أو استيراد.

إن لم يعرف العميل متى تقع ذرواته، فقارنوا مع سجلات الوصول لخادم الويب ومع تواريخ الحملات البريدية أو العروض. أسبوع من سجل sar يغطي دورة كاملة بما فيها نهاية الأسبوع. وحين يكون الموقع بطيئًا أصلًا، فقراءة واحدة أثناء البطء تساوي عشر قراءات في الهدوء.

قاعدة حساب بسيطة، معلنة كفرضية

القاعدة التالية تحريرية، لا معيار ولا وعد من الكتالوج: الذاكرة اللازمة = الاستهلاك عند الذروة، زائد هامش 30 %. رقم 30 % فرضية هذا المقال؛ وهو يغطي النمو القريب والذرى التي لم تلتقطها نافذتكم. أما القرص فاحسبوا المساحة المستعملة، زائد النمو المتوقع خلال ستة أشهر، زائد 20 % حرة على الأقل.

ولموقع يعمل بـ PHP-FPM، احسبوا ذاكرة العمليات بدل قراءتها إجمالًا: ذاكرة PHP = الذاكرة المقيسة لكل عملية مضروبة في ‎pm.max_children. قيسوا ذاكرة العملية بـps -eo rss,args | awk '/[p]hp-fpm: pool/ {s+=$1; n++} END {print s/n/1024 " MB"}'. النتيجة تبالغ قليلًا لأن جزءًا من الذاكرة مشترك بين العمليات.

مثال رقمي افتراضي: 600 ميغابايت للنظام وخادم الويب وقاعدة البيانات، زائد 20 عملية بحجم 60 ميغابايت، أي 1200 ميغابايت، يعطي 1800 ميغابايت عند الذروة. مع هامش 30 % نحتاج نحو 2.4 غيغابايت: نختار الخطة التي ذاكرتها تعلو ذلك مباشرة.

اكتبوا الهامش في عرض السعر

دوّنوا في عرض السعر الذروة المقيسة والهامش المعتمد وتاريخ القراءة. وحين يسأل العميل لماذا هذه الخطة لا التي تليها، يكون الجواب مكتوبًا. كرروا القراءة كل ستة أشهر: الموقع النامي يغيّر خطته قبل أن يسقط لا بعده.

اكتشاف VPS صغير الحجم قبل العميل

بعد دخول الموقع الإنتاج، تدل إشارات قليلة على ضيق الخطة. وكل إشارة تترك أثرًا دقيقًا يمكنكم البحث عنه دون انتظار شكوى العميل.

الإشارات مع رسائلها الدقيقة

  • عملية قُتلت لنفاد الذاكرة — ابحثوا بـjournalctl -k | grep -i "out of memory" أو dmesg -T | grep -i "killed process" عن سطر من نوع Out of memory: Killed process. لقد ضحّت النواة بعملية، وغالبًا قاعدة البيانات.
  • swap نشط — قيمتان غير صفريتين لـsi وso في vmstat 1: الخادم يبدّل الذاكرة مع القرص فيتباطأ كل شيء.
  • انتظار إدخال وإخراج مرتفع — wa مرتفع باستمرار في top: القرص أو قاعدة البيانات هي الكابح، أحيانًا لنقص التخزين المؤقت في الذاكرة.
  • حمل يفوق عدد الأنوية — متوسط حمل أعلى من nproc باستمرار يعني أن العمليات تنتظر دورها.
  • PHP-FPM ممتلئ — السطر server reached pm.max_children setting (N), consider raising it في سجل الأخطاء يعني أن كل العمليات مشغولة وأن الطلبات تنتظر.
  • أخطاء 502 و504 من nginx — استجابات 502 أو 504 مع upstream timed out (110: Connection timed out) ترافق غالبًا امتلاء PHP-FPM.
  • قرص ممتلئ أو inodes منتهية — يقترب df -h وdf -i من 100 % وتفشل الكتابة.

ما لا تحله ذاكرة أكبر

قبل الانتقال إلى خطة أعلى، تأكدوا أن المشكلة مسألة موارد فعلًا. استعلام SQL بطيء يُشبع المعالج أيًّا كانت الخطة: الفهرس الناقص يُصلح ولا يُعوَّض. وغياب ذاكرة الكائنات المؤقتة يجبر PHP على إعادة حساب الصفحات نفسها في كل زيارة. وصورة بحجم 8 ميغابايت تُقدَّم كما هي تستهلك عرض النطاق ووقت المعالجة. وأخيرًا رفع ‎pm.max_children دون رفع الذاكرة يسبب بالضبط قتل النواة للعمليات الذي أردتم تجنبه.

النهج السليم إصلاح هذه النقاط أولًا ثم قراءة جديدة ثم التحديد على النتيجة. وهكذا تتفادون فوترة العميل بخطة أكبر لا تخفي سوى عيب في الإعداد.

اختيار الخطة ثم التوسع

بعد تحديد الحاجة بالأرقام، قابلوها بالمجموعة. تقدّم خطة VPS Start ‏2 vCPU و4 GB من الذاكرة و50 GB SSD من التخزين؛ وتقدّم خطة VPS Power ‏4 vCPU و8 GB و100 GB SSD؛ وتقدّم خطة VPS Business ‏8 vCPU و16 GB و200 GB SSD. سعر الدخول إلى المجموعة: 99 درهم/شهر.

اختاروا أصغر خطة تغطي حاجتكم بالهامش المكتوب، ثم دعوا التوسع العمودي يتكفل بالباقي: إن أظهرت القراءة التالية أن الهامش يذوب، انتقلتم إلى الخطة الأعلى دون تغيير البنية. ولكي لا تنتظروا تلك القراءة، فعّلوا تنبيهات مستمرة، ولمعرفة هل يستجيب الموقع من الخارج استعينوا بمجس توافر: انظروا متابعة توافر مواقع العملاء.

خطة VPS تتبع القياس

تُدار النطاقات والاستضافات وخوادم VPS على منصة واحدة هي ServOrbit.com، بخطط VPS يتغير حجمها عموديًا حين يبرر القياس ذلك.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة