أداء الخادم
يؤثر أداء الخادم بشكل مباشر على سرعة واستجابة تطبيق WCPOS الخاص بك. يُجري نظام POS العديد من استدعاءات REST API، لذا فإن وقت استجابة الخادم هو عنق الزجاجة الأساسي — تعتمد سرعة POS بشكل كبير على جودة الاستضافة. يساعدك هذا الدليل في مراقبة وتشخيص وتحسين أداء الخادم باستخدام المقاييس المضمنة وتقنيات استكشاف الأخطاء.
الحد الأدنى لمتطلبات الخادم
للحصول على نظام POS سريع الاستجابة في الإنتاج، نوصي على الأقل بما يلي:
غالبًا ما تحتوي الاستضافة المشتركة على عدد قليل جدًا من عمال PHP وذاكرة قليلة جدًا لأحمال عمل POS، التي تُجري العديد من استدعاءات API المتزامنة. للاستخدام الإنتاجي لـ POS، يُوصى بشدة باستخدام VPS أو مضيف WordPress مُدار. من المعروف أيضًا أن الاستضافة المُدارة WordPress.com بها مشكلات توافق مع REST API (يرى بعض المستخدمين 9–10 منتجات فقط من الكتالوجات الكبيرة) — يُوصى باستخدام WordPress.org المُستضاف ذاتيًا للحصول على التوافق الكامل.
حزمة التحسين المعتمدة من المجتمع
يُبلّغ المستخدمون عن أفضل أداء لـ POS مع هذه التركيبة:
- MariaDB 11.4 (أسرع من MySQL لأحمال عمل WooCommerce)
- HPOS مُفعّل (انظر أدناه)
- التخزين المؤقت للكائنات عبر LiteSpeed أو Redis
- تخزين NVMe
- PHP OPcache مُفعّل
أخطاء 503
خطأ 503 Service Unavailable ليس عيبًا في POS — فهو يعني أن الخادم لم يتمكن من معالجة الطلب. تحقق مما يلي:
- حِمل الخادم والموارد المتاحة
- عمال PHP (قد يكونون مُستنفَدين)
- حد ذاكرة PHP — قم بزيادته إلى 256 ميجابايت أو أكثر
- سجلات خادم مزود الاستضافة لديك (تواصل مع مضيفك؛ يمكنهم رؤية ما لا يستطيع التطبيق رؤيته)
توافق إصدار WooCommerce
يمكن أن يؤدي تحديث WooCommerce أحيانًا إلى تعطيل POS. قم دائمًا بتحديث WooCommerce على موقع تجريبي أولًا، وحافظ على تحديث WCPOS حتى يتضمن أحدث إصلاحات التوافق.
المشكلات المعروفة:
- WooCommerce 10.5.0 — عطّل تحميل المنتجات في POS (العَرَض: ظهور ~10 منتجات فقط؛ توقف مسح الباركود والبحث عن العمل) وأدخل ذاكرة تخزين مؤقت تجريبية للمنتجات يمكن أن تسبب تضخم postmeta واستنفاد الذاكرة. الإصلاح: قم بتحديث WCPOS إلى أحدث إصدار (يتضمن الإصلاح وعملية ترحيل للتنظيف)، أو قم بالتراجع عن WooCommerce إلى 10.4.3.
إذا أدى تحديث WooCommerce إلى تعطيل POS، فقم بالتراجع عن WooCommerce إلى الإصدار السابق (عبر علامة التبويب Advanced في صفحة الإضافة على WordPress.org) وأبلِغ عن ذلك.
فهم مقاييس الخادم
يجمع WCPOS تلقائيًا مقاييس أداء الخادم مع كل عملية سحب بيانات (المنتجات، الطلبات، العملاء، إلخ). يمكنك عرض هذه المقاييس في شاشة السجلات.
مقاييس الخادم النموذجية
{
"total": "24692",
"execution_time": "76.64 ms",
"server_load": "[15.20605469,16.16357422,16.76806641]"
}
التفصيل:
total- عدد السجلات المعالجة (24692 معرف منتج)execution_time- الوقت المستغرق لإكمال العملية (76.64 مللي ثانية)server_load- متوسط تحميل الخادم لمدة 1 و 5 و 15 دقيقة
تفسير تحميل الخادم
يمثل تحميل الخادم متوسط تحميل النظام على مدى فترات زمنية مختلفة:
- القيمة الأولى - المتوسط لمدة دقيقة واحدة (15.21)
- القيمة الثانية - المتوسط لمدة 5 دقائق (16.16)
- القيمة الثالثة - المتوسط لمدة 15 دقيقة (16.77)
تفسير التحميل
يمكن أن تكون قيم تحميل الخادم مضللة ويجب تفسيرها بعناية:
متوسطات تحميل الخادم لا تتناسب دائمًا بشكل مباشر مع الأداء. يمكن لخادم ذو قيم تحميل عالية (15+) أن يكون سريع الاستجابة للغاية إذا كانت الموارد كافية ومهيأة بشكل جيد. ركز على أوقات التنفيذ بدلاً من قيم التحميل وحدها.
إرشادات عامة:
- التحميل بالنسبة لوحدات المعالج - تحميل 8.0 على خادم مكون من 8 نوى يعني الاستخدام الكامل
- التحميل المستمر مقابل الحمل المؤقت - الارتفاعات القصيرة طبيعية، قد يشير التحميل العالي المستمر إلى وجود مشاكل
- الأداء أكثر أهمية - خادم سريع الاستجابة مع تحميل عالي أفضل من خادم بطيء مع تحميل منخفض
ما يجب مراقبته:
- زيادة أوقات التنفيذ مع مرور الوقت
- زيادة التحميل باستمرار دون تفسير
- كل من التحميل العالي وأوقات التنفيذ البطيئة معًا
معايير الأداء
إرشادات أوقات التنفيذ
| العملية | جيدة | مقبولة | رديئة | حرجة |
|---|---|---|---|---|
| سحب المنتج | < 100ms | 100-500ms | 500ms-2s | > 2s |
| إنشاء الطلب | < 200ms | 200-800ms | 800ms-3s | > 3s |
اعتبارات عدد السجلات
يجب أن تتناسب أوقات التنفيذ بشكل معقول مع عدد السجلات:
// Good scaling examples
{"total": "100", "execution_time": "15.2 ms"} // 0.15ms per record
{"total": "1000", "execution_time": "89.4 ms"} // 0.09ms per record
{"total": "10000", "execution_time": "234.1 ms"} // 0.02ms per record
// Poor scaling examples
{"total": "100", "execution_time": "500.0 ms"} // 5.0ms per record
{"total": "1000", "execution_time": "8000.0 ms"} // 8.0ms per record
تشخيص مشاكل الأداء
الخطوة 1: مراقبة السجلات
- افتح السجلات من درج التنقل
- قم بإجراء العملية البطيئة (مزامنة المنتجات، إنشاء الطلب، إلخ.)
- ابحث عن إدخال السجل المقابل
- قم بتوسيع السياق لعرض المقاييس
الخطوة 2: تحليل المقاييس
أوقات التنفيذ العالية + تحميل الخادم العالي = مشكلة في موارد الخادم
{
"total": "5000",
"execution_time": "3500.0 ms",
"server_load": "[12.45, 11.23, 10.87]"
}
الحل: زيادة موارد الخادم أو تحسين تكوين الخادم
أوقات التنفيذ العالية + تحميل الخادم الطبيعي = مشكلة في الإضافات/قاعدة البيانات
{
"total": "1000",
"execution_time": "2800.0 ms",
"server_load": "[1.23, 1.45, 1.67]"
}
الحل: تحديد الإضافات البطيئة أو تحسين استعلامات قاعدة البيانات
أوقات التنفيذ الطبيعية + تحميل الخادم العالي = تحميل عام زائد على الخادم
{
"total": "2000",
"execution_time": "150.0 ms",
"server_load": "[8.90, 9.12, 8.45]"
}
الحل: تقليل تحميل الخادم من العمليات الأخرى أو ترقية الموارد
مشاكل الأداء الشائعة
1. موارد الخادم غير الكافية
الأعراض:
- تحميل خادم مرتفع باستمرار (> 4.0 على معظم الخوادم)
- أوقات تنفيذ طويلة عبر جميع العمليات
- انقطاعات متكررة
الحلول:
- ترقية المعالج - المزيد من الأنوية تعالج الطلبات المتزامنة بشكل أفضل
- زيادة الذاكرة العشوائية - تقلل من قراءة/كتابة القرص ويحسن التخزين المؤقت
- استخدام تخزين SSD - يحسن بشكل كبير من أداء قاعدة البيانات
- تحسين إعدادات PHP - زيادة memory_limit، max_execution_time
2. استعلامات قاعدة البيانات البطيئة
الأعراض:
- أوقات تنفيذ مرتفعة مع تحميل خادم طبيعي
- سحب المنتجات/الطلبات ببطء بشكل خاص
- أكواد أخطاء متعلقة بقاعدة البيانات في السجلات
الحلول:
- تفعيل WooCommerce HPOS - أكبر تحسين لأداء قاعدة البيانات
- استخدام التخزين المؤقت للكائنات - Redis أو Memcached إذا كانت متاحة من مضيفك
- الحفاظ على تحديث WordPress - غالبًا ما تتضمن تحديثات النواة تحسينات لقاعدة البيانات
- تحديد مراجعات المنشورات - إضافة
define('WP_POST_REVISIONS', 3);إلى wp-config.php
3. تدخل الإضافات
الأعراض:
- تدهور الأداء المفاجئ بعد تحديث الإضافات
- عمليات محددة أبطأ بكثير من الأخرى
- أوقات تنفيذ عالية مع تحميل خادم طبيعي
استكشاف الأخطاء:
- اختبار على الخادم التجريبي - تعطيل جميع الإضافات باستثناء WooCommerce و WCPOS
- قياس الأساس - تسجيل أوقات التنفيذ مع الحد الأدنى من الإضافات
- تفعيل تدريجي - إضافة الإضافات واحدة تلو الأخرى لتحديد المسبب
- فحص أشرطة الإضافات - البحث عن الإضافات التي تتعلق بإجراءات WooCommerce
الإضافات الشائعة المشكلة:
- إضافات SEO ثقيلة أثناء عمليات المنتج
- أنظمة إدارة المخزون المعقدة
- إضافات تحليلات/تتبع في الوقت الحقيقي
- إضافات مخصصة برمجة بشكل سيء
4. تكوين WordPress/WooCommerce
الأعراض:
- أداء غير متسق
- أخطاء متعلقة بالذاكرة في السجلات
- لوحة تحكم الإدارة بطيئة
قائمة فحص التحسين:
- إصدار PHP - استخدام PHP 8.0+ لأداء أفضل
- WooCommerce HPOS - تفعيل تخزين الطلبات عالي الأداء (انظر أدناه)
- تخزين WordPress المؤقت - تفعيل التخزين المؤقت للكائنات إذا كانت متاحة
- إعدادات WooCommerce - تحسين أحجام صور المنتجات
تخزين الطلبات عالي الأداء لـ WooCommerce (HPOS)
إن HPOS هي واحدة من أكبر تحسينات الأداء التي يمكنك القيام بها لـ WooCommerce. تخزن الطلبات في جداول قاعدة بيانات مخصصة بدلاً من جدول مشاركات WordPress، مما يحسن بشكل كبير من الأداء للمتاجر التي تحتوي على العديد من الطلبات.
الفوائد:
- استعلامات طلب أسرع - تخزين الطلبات في هيكل قاعدة بيانات مُحسن
- تحميل قاعدة بيانات أقل - فصل الطلبات عن المشاركات/الصفحات
- تحسين قابلية التوسع - التعامل بكفاءة مع أعداد كبيرة من الطلبات
- تحسين أداء الإدارة - شاشات إدارة الطلبات الأسرع
كيفية التفعيل:
- انتقل إلى
WooCommerce > Settings > Advanced > Features - تفعيل "High-performance order storage"
- اتبع عملية الترحيل
لمعرفة المزيد:
أفضل ممارسات مراقبة الخادم
1. عمليات فحص الأداء المنتظمة
- مراجعات أسبوعية - التحقق من السجلات لتوجهات الأداء
- قياسات الأساس - تسجيل أوقات التنفيذ العادية
- مراقبة أوقات الذروة - مراقبة خلال الفترات ذات الحركة العالية
2. تعيين تنبيهات الأداء
راقب هذه العلامات التحذيرية:
- أوقات التنفيذ > 1000ms باستمرار
- تحميل الخادم > 5.0 لفترات طويلة
- أخطاء التوقف المتكررة في السجلات
3. تخطيط السعة
تتبع اتجاهات النمو:
- نمو عدد السجلات - المنتجات، الطلبات، العملاء
- تدهور الأداء - كيفية تزايد أوقات التنفيذ
- استخدام الموارد - وحدة المعالجة المركزية، الذاكرة، استخدام القرص
استراتيجيات تحسين الخادم
1. أفضل ممارسات WordPress/WooCommerce
تفعيل HPOS:
- أكبر تحسين للأداء لـ WooCommerce
- راجع قسم HPOS أعلاه للحصول على التفاصيل
إعداد PHP (استشر مضيفك):
memory_limit = 512M
max_execution_time = 300
max_input_vars = 3000
إعداد WordPress:
// In wp-config.php - limit post revisions
define('WP_POST_REVISIONS', 3);
// Enable WordPress debug logging if needed
define('WP_DEBUG_LOG', true);
2. تحسينات على مستوى الاستضافة
التخزين المؤقت للكائنات:
- اسأل مضيفك عن توفر Redis أو Memcached
- يقدم العديد من مضيفي WordPress المدارة ذلك بشكل تلقائي
إصدار PHP:
- استخدام PHP 8.0+ لتحسينات أداء كبيرة
- يسمح معظم المضيفين بسهولة بتغيير إصدار PHP
موارد الخادم:
- تأكد من وجود ذاكرة كافية (حد أدنى 1 جيجابايت، يفضل 2 جيجابايت+)
- يوفر تخزين SSD أداء قاعدة بيانات أفضل بكثير من الأقراص التقليدية
ملاحظات خاصة بالاستضافة
تحتاج بعض المضيفين وشبكات CDN إلى تكوين للسماح لـ POS بالوصول إلى WooCommerce REST API:
| المضيف / الخدمة | المشكلة | الإصلاح |
|---|---|---|
| GoDaddy | يحظر جدار حماية الموقع استدعاءات REST API لـ /wp-json/ (أخطاء مثل "Received 'undefined'") | Website Security > Firewall > Settings > Access Control > Allow URL Paths ← أضف /wp-json/ |
| WP Engine | يجب تفعيل REST API بشكل صريح | فعّل REST API؛ أضف نقاط نهاية API إلى القائمة البيضاء في جدار الحماية الخاص بهم إذا لزم الأمر |
| Cloudflare | يمكن أن يحظر طلبات REST API، وقد يخزن استجابات API مؤقتًا | تحقق من قواعد جدار الحماية؛ أضف قاعدة صفحة لـ تجاوز التخزين المؤقت لـ /wp-json/* |
| WordPress.com | مشكلات توافق REST API / تحميل المنتجات (ظهور 9–10 منتجات فقط) | استخدم WordPress.org المُستضاف ذاتيًا للحصول على التوافق الكامل |
| الاستضافة المشتركة | عدد قليل جدًا من عمال PHP / ذاكرة منخفضة لاستدعاءات POS المتزامنة | انتقل إلى VPS أو مضيف WordPress مُدار |
يمكن لإضافات الأمان (Wordfence، إلخ) أن تحظر REST API بطرق مماثلة — راجع تعارضات الإضافات للحصول على القائمة الكاملة والإصلاحات.
HTTP 414 — عنوان URI طويل جدًا
يمكن أن تتجاوز السلال الكبيرة، أو رمز الوصول المضمَّن في عنوان URL الخاص بالسداد، حد طول عنوان URL في الخادم (يستخدم طلب السداد GET). يمكن أن يكون هذا خاصًا بالمتصفح ويزداد سوءًا بسبب ذاكرة التخزين المؤقت للمتصفح.
الحل البديل: امسح ذاكرة التخزين المؤقت للمتصفح أولًا، ثم ارفع حد طول عنوان URL في الخادم:
- Apache:
LimitRequestLine 65536فيhttpd.conf - Nginx:
large_client_header_buffers 4 65536;فيnginx.conf - إذا لم يكن لديك وصول إلى التكوين، فاطلب من مزود الاستضافة الخاص بك تعديله.
متى يجب طلب المساعدة
اتصل بمزود الاستضافة الخاص بك أو مطور WordPress إذا:
- كان تحميل الخادم باستمرار > 8.0 على الرغم من جهود تحسين الأداء
- كانت أوقات التنفيذ > 5000ms للعمليات البسيطة
- وجود أخطاء في الذاكرة تظهر بشكل متكرر في السجلات
- استعلامات قاعدة البيانات تستغرق > 2 ثانية باستمرار
قدم لهم:
- مقاييس الخادم من سجلاتك
- قائمة بالإضافات النشطة
- مواصفات الخادم (وحدة المعالجة المركزية، الذاكرة، نوع التخزين)
- إصدارات WordPress و WooCommerce