جرّب خدماتنا مجانًا - سنقوم بإصلاح أصعب مشكلة في متجرك خلال 24 ساعة!

دراسة حالة: كيف خفضنا تكاليف استضافة ماجنتو بأكثر من ‎52٪

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

في دراسة الحالة هذه سنوضح كيف ساعدنا عميلاً في تحسين أداء متجر ماجنتو عبر ضبط إعدادات Elasticsearch وMySQL/MariaDB، مما أدى إلى تقليل استهلاك موارد السيرفر وتخفيض التكاليف بأكثر من 52%.

التحديات التي واجهناها

1. أعطال متكررة في Elasticsearch

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

2. استنزاف الموارد

المتجر كان يستهلك 3.9GB من أصل 4GB RAM، مع استخدام CPU بنسبة 85٪ تقريباً، وهو ما جعل الاستضافة غير مستقرة وظهور متكرر لرسائل خطأ مثل 524 و 500 internal server error.

3. الخدمات مثبتة بدون إعداد صحيح

الفريق التقني السابق ثبّت Elasticsearch وRedis وMariaDB بدون ضبط يتناسب مع متطلبات Magento 2، مما تسبب في مشاكل الأداء.

4. مقترح مكلف بدون فائدة أو حلول جذرية

الاقتراح الوحيد من الفريق التقني السابق الذي عمل معه العميل كان ترقية السيرفر إلى t3.large أو t3.xlarge مما يعني زيادة التكلفة الشهرية للضعف دون ضمان حل المشاكل.

صورة من مشكلة Elasticsearch قبل الإعداد (توقف لمدة أكثر من 12 ساعة)

الحل الجذري لخفض تكاليف استضافة ماجنتو

  1. ضبط Elasticsearch وفق قاعدة “50 ٪ Heap” + تنظيف الموديولات الغير مطلوبة لـ Magento.
    • خفّضنا ‎Xms/Xmx إلى ‎1.8 GB (بدلاً من ‎4 GB) تماشياً مع توصية Elastic بألا يتجاوز حجم الـHeap نصف الذاكرة المتاحة.
    • أزلنا الموديولات الافتراضية غير الضرورية لمتجر ماجنتو، مثل: (ingest-geoip، ingest-user-agent، rollup، transform، ml، monitoring…) باستخدام elasticsearch-plugin remove <plugin>؛ ما قلّل بصمة JVM بنحو ‎250 MB وقلّص زمن الـ Compiling -المعالجة-.
    • حدّدنا ‎indices.query.bool.max_clause_count‎ لتقييد الاستعلامات المكلفة، وأغلقنا الفهارس الغير مستخدمة.
  2. تهيئة MySQL/MariaDB بشكل صحيح
    • قمنا بضبط ‎innodb_buffer_pool_size‎ على ‎≈ 2.2 GB (نحو ‎55 ٪ من RAM) استناداً إلى توصيات Percona Community Forum بجعلها بين ‎50-70 ٪ من الذاكرة الفعلية.
    • قمنا بتعطيل ‎query_cache‎ لتقليل إستهلاك الذاكرة، وفعلنا ‎slow_query_log‎ بحدّ 2 ثانية من أجل فحص إستعلامات SQL للعمل على تحسينها.
    • قمنا بتحسين كتابة الإستعلامات الموجودة في بعض الموديولات المستخدمة في المتجر مثل Webkul_Marketplace.
  3. تحسينات إضافية
    • أوقفنا ‎Transparent Huge Pages‎ وخفّضنا ‎vm.swappiness‎ إلى ‎10‎ للحدّ من التبديل (swapping).
    • دمجنا مراقبة New Relic لتنبيه فوري لفريقنا التقني عندما يتم إستهلاك ‎70 ٪ أو أكثر من أي Resource تابع للسيرفر.
  4. خطة عمل مرنة (Quick Fix + Flex Hours)
    • خلال أول ‎24 ساعة أصلحنا الأعطال العاجلة وضبطنا JVM عبر دعم تذاكر من نوع Quick Fix.
    • استخدمنا ‎8 ساعات من نوع Flex Hours لمراجعة الفهارس وضبط قاعدة البيانات.

بتنفيذ هذه الحلول فقط قمنا بخفض تكاليف استضافة ماجنتو وتوفير قدره 52% من الفاتورة التي يدفعها العميل شهرياً.

النتيجة بالأرقام

المؤشرقبل الضبطبعد الضبط
حجم السيرفر‌t3.larget3.medium
متوسط CPU (ذروة)‎85 ٪41 ٪
استهلاك RAM‎3.9 GB1.8 GB
تكلفة الساعة على AWS‎0.0832 $0.0416 $
توقّف Elasticsearch أسبوعياً‎14 مرة0

النتيجة النهائية: خفض تكاليف استضافة ماجنتو بأكثر من 52٪ مع تحسين استقرار المتجر وزيادة سرعته.

تحسين أداء Elasticsearch لخفض تكاليف استضافة ماجنتو
صورة من حالة Elasticsearch بعد الضبط من طرفنا (لم يتوقف لمرة واحدة من تاريخ الإعداد إلى الآن)

ما هو المكسب التجاري لك؟

  • توفير فوري في الميزانية: تخفيض إستهلاك الموارد إلى النصف يعني توفير تكلفة السيرفر إلى النصف وتجنب زيادة حجم السيرفر بدون سبب منطقي!
  • استقرار أعلى = مبيعات أكثر: عدم توقف المتجر وعمليات الشراء يعني عدم فقدان عملاءك!
  • جاهزية للتوسّع الموسمي: بفضل البنية السليمة «Infrastructure as Code» يمكن رفع الموارد بشكل مؤقت في المواسم ثم العودة تلقائياً إلى حجم السيرفر المعتمد.

خطوات قابلة للتطبيق في متجرك

  1. اضبط ‎Heap‎ عند ‎≤ 50 ٪ من RAM وثبّت ‎Xms = Xmx.
  2. قم بحذف الموديولات الافتراضية غير المستخدمة في Elasticsearch قبل التفكير بترقية السيرفر.
  3. اضبط ‎innodb_buffer_pool_size‎ بين ‎50-60 ٪ من RAM واترك نظام التشغيل يحتفظ بالباقي للـFile System Cache.
  4. راقب ‎Slow Queries‎ بانتظام وحسنها، خصوصاً عند إضافة موديولات جديدة لمتجر ماجنتو الخاص بك.

الأسئلة الشائعة (FAQ)

كيف يمكن خفض تكاليف استضافة ماجنتو بدون ترقية السيرفر؟

يمكن ذلك عبر تحسين إعدادات الخدمات الأساسية مثل Elasticsearch وMySQL/MariaDB، وضبط الذاكرة والمعالج بما يتناسب مع موارد السيرفر المتاحة بدلاً من شراء موارد إضافية.

ما هي أفضل إعدادات Elasticsearch لمتاجر ماجنتو؟

القاعدة الذهبية هي أن يكون حجم Heap ≤ 50% من RAM مع إزالة الموديولات الافتراضية غير الضرورية وضبط الاستعلامات المكلفة.

هل يؤثر ضبط MySQL/MariaDB على سرعة متجر ماجنتو؟

نعم، تحسين إعدادات MySQL مثل innodb_buffer_pool_size وتفعيل slow_query_log يقلل من استهلاك الموارد ويزيد سرعة معالجة الطلبات.

ما الفرق بين ترقية السيرفر وتحسين إعداداته؟

ترقية السيرفر تزيد التكلفة مباشرة دون ضمان حل المشاكل. بينما تحسين الإعدادات يوفر المال ويحل السبب الجذري لمشاكل الأداء.

كيف أعرف أن متجري يستهلك موارد أكثر من اللازم؟

يمكن ملاحظة ذلك من خلال: بطء في تحميل الصفحات، توقف Elasticsearch، أو استهلاك RAM وCPU بشكل مستمر فوق 80%.

والآن… هل ترغب أن تجعل متجر الماجنتو الخاص بك يعمل بلا توقف أو مشكلات تقنية؟
جرب خدمات الدعم الفني الاستثنائية التي نقدمها في قروسيرا. [تصفح أسعار وباقات الدعم الفني]