2026-06-11 · 8 دقائق قراءة

تحسين أداء Odoo: سرّع خادمك

كيفية تحسين أداء Odoo في 2026 — إعدادات العامل، فهرسة قاعدة البيانات، تخزين Redis مؤقتاً، وضبط Nginx لخفض وقت الاستجابة بنسبة 70٪ أو أكثر.

كيف تعرف إذا كان خادم Odoo بطيئاً

"Odoo بطيء" ذاتي. قِس أولاً:

معايير وقت الاستجابة:

  • تحميل الصفحة الرئيسية: < ثانيتين
  • إنشاء أمر مبيعات: < 3 ثوانٍ
  • إنشاء PDF للفاتورة: < 5 ثوانٍ

إذا تجاوز Odoo هذه الأوقات باستمرار، فأنت بحاجة إلى ضبط الأداء.

1. اضبط عمليات العمال

يستخدم Odoo عمليات متعددة للعمال لمعالجة الطلبات المتزامنة.

صيغة العمال (للإنتاج):
workers = (CPU_cores * 2) + 1

لخادم 4 نوى: workers = 9

في odoo.conf:
workers = 9
max_cron_threads = 2

2. مكّن تخزين استعلامات PostgreSQL المؤقت

ذاكرة التخزين المؤقت shared_buffers لـ PostgreSQL تخزن البيانات المُستخدمة بشكل متكرر في RAM.

حرّر /etc/postgresql/*/main/postgresql.conf:
shared_buffers = 4GB
effective_cache_size = 12GB

أعد تشغيل PostgreSQL:
sudo systemctl restart postgresql

3. أضف فهارس قاعدة البيانات

الفهارس المفقودة هي السبب الأول لاستعلامات Odoo البطيئة.

فهارس شائعة لإضافتها:
CREATE INDEX idx_sale_order_partner ON sale_order(partner_id);
CREATE INDEX idx_account_move_date ON account_move(date);

4. مكّن تخزين HTTP المؤقت للأصول الثابتة

يقدم Odoo CSS وJS والصور في كل طلب. بدون التخزين المؤقت، تقوم المتصفحات بإعادة تنزيل هذه الملفات دون داعٍ.

تكوين تخزين Nginx المؤقت:
location ~* \.(css|js|png|jpg|jpeg|gif|ico|woff|woff2|ttf)$ {
expires 30d;
add_header Cache-Control "public, immutable";
proxy_pass http://127.0.0.1:8069;
}

أعد تحميل Nginx:
sudo systemctl reload nginx

ستقوم المتصفحات بتخزين هذه الملفات مؤقتاً لمدة 30 يوماً، مما يقلل وقت تحميل الصفحة من 3 ثوانٍ إلى أقل من ثانية واحدة.

5. استخدم CDN للأصول الثابتة

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

Cloudflare (مستوى مجاني):
1. سجّل في cloudflare.com
2. أضف نطاقك وحدّث خوادم الأسماء
3. مكّن "Cache Level: Standard" في لوحة Cloudflare
4. اضبط Browser Cache TTL على "شهر واحد"

يقوم Cloudflare تلقائياً بتخزين /web/static/* مؤقتاً ويقدمه من أقرب موقع حافة.

6. أرشف السجلات القديمة

الجداول الكبيرة تبطئ الاستعلامات حتى مع الفهارس. جدول sale_order به 500,000 صف يستغرق وقتاً أطول للبحث من واحد به 50,000.

حدد الجداول الكبيرة:
sudo -u postgres psql odoo_production
SELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) AS size
FROM pg_tables
ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC
LIMIT 10;

أرشف البيانات القديمة:
للسجلات الأقدم من عامين:

  • صدّرها إلى قاعدة بيانات "أرشيف" منفصلة
  • احذفها من الإنتاج
  • احتفظ بقاعدة بيانات الأرشيف غير متصلة بالإنترنت

هذا يحافظ على قاعدة بيانات الإنتاج صغيرة وسريعة.

7. جدولة العمليات الثقيلة خارج أوقات الذروة

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

انقل وظائف cron الثقيلة إلى الليل:
في Odoo، اذهب إلى الإعدادات → التقنية → الأتمتة → الإجراءات المجدولة
اضبط "تاريخ التنفيذ التالي" على 2:00 صباحاً لـ:

  • تقييم المخزون
  • تقرير المستحقات القديمة
  • تنظيف البيانات

صيانة قاعدة البيانات:
جدول VACUUM و ANALYZE في وظيفة cron الساعة 3 صباحاً:
0 3 * * * /usr/bin/sudo -u postgres psql odoo_production -c "VACUUM ANALYZE;"

هذا يستعيد مساحة القرص ويحدّث إحصائيات مخطط الاستعلام دون تأثير المستخدم.

أتمت إدارة خادم Odoo اليوم

اتصل بخادم Odoo الخاص بك في 5 دقائق. مجاني للبدء.

ابدأ مجانًا — بدون بطاقة