انتقل إلى الدليل

الوثائق 9.6.24

الإعدادات والأداء

قس الأداء على خادمك. اللاعبون والموارد والتسجيل والفهارس تؤثر في الحمل؛ لا يوجد ضمان بانعدام التأخير.

راقب أولًا#

قارن الاكتشافات باللعب الطبيعي قبل الطرد أو الحظر. اختبر الانتقال والعودة للحياة ومنح الأسلحة المشروع. إشارات العميل لا تمنح سلطة على المال أو الأسلحة أو الإدارة.

تحكم في العمل المكلف#

اترك الفحص العميق والحجر التلقائي معطلين حتى اختبارهما. حدّ التسجيلات المتزامنة. لا يقرأ الجسر قاعدة اللعبة في الخمول، لكن HTTPS والوحدات الأخرى تستهلك موارد. استخدم profiler الخاص بـFiveM للمقارنة.

قياس مرجع قابل للتكرار#

سجّل ملف أداء لجلسة ممثلة قبل التعديل. دوّن اللاعبين وartifact والإصدارات والنشاط. اللعب الهادئ والمرآب المزدحم والقتال تختلف أحمالها. قارن نفس السيناريو بعد تعديل واحد. CPU وتحذيرات hitch والاستعلامات أنفع من وعد FPS ثابت.

تسجل الأوامر عينة محدودة. انتظر اكتمالها وحدد المورد والخيط المسؤول عن القمة. لا تنسب كل تعثر للـAC. احتفظ بالقيم والمقارنة بشكل خاص؛ العينة القصيرة لا تغطي كل الذروة.

profiler record 500
profiler status
profiler view

tosunac_doctor

تقليل الكلفة مع الحفاظ على الحماية#

اختبر الفحص العميق والحجر التلقائي بشكل مضبوط. حدّد التسجيلات المتزامنة وأوقف debug في الإنتاج. تقليل الفترات يزيد العمل المتكرر.

  1. قس الخمول والقراءة منفصلين. لا يقرأ الجسر SQL اللعبة في الخمول، لكن HTTPS وبقية الوحدات تستخدم موارد.
  2. قسّم القوائم الكبيرة لصفحات وافحص رفض الفهرس مع مسؤول القاعدة.
  3. قس تسجيلاً اختبارياً واحداً قبل المشاهدة المتزامنة للموظفين.
  4. إذا زادت الحمولة أعد القيمة السابقة وكرر السيناريو قبل تعديل وحدات أخرى.

اختيار العقوبة حسب السياق#

راقب الفحوص الحساسة واختبر اللعب الطبيعي. السجل ليس أمراً بحظر الجميع. تحقق من الشخصية والإنعاش والنقل والشرطة والأسلحة الممنوحة بالسكربت. فضّل تكاملاً محدداً على إعفاء دائم.

يبلغ tosunac_doctor عن القيم الفعلية الخطرة دون تعديلها. راجع العقوبات الشديدة وتعطيل الحماية وdebug وfail-open. قد تتجاوز اللوحة الإعداد المحلي؛ افحص القيم الفعالة.

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

  • غيّر قيمة واحدة وسجّل السبب والمراجع والقيمة السابقة.
  • قارن التكرار بالأفعال الشرعية وأوقاتها.
  • أعد الاختبار بعد تغيير عقوبة أو core أو مخزون.
  • عند ظهور كشف خاطئ جديد استعد القيمة وحل السبب قبل التشديد.

قارن عبئاً متشابهاً قبل التغيير وبعده#

سجّل عدد اللاعبين وإصدارات artifact وAC والإطار والمخزون وعمليات اللوحة النشطة. قس أولاً جلسة هادئة بلا طلبات لوحة، ثم اختيار الشخصية والمرآب والقتال المعتاد. استخدم profiler record 500 لعينة محدودة وانتظر اكتمالها كما يبين profiler status.

حدّد في profiler view المورد والخيط المسؤولين عن قفزة CPU. افحص التنفيذ الطويل المتكرر وتحذيرات hitch المتزامنة مع المتوسط. غيّر إعداداً واحداً وكرر السيناريو مع عبء مشابه. المشكلات وقت الذروة تحتاج جلسة ممثلة لها؛ تغيير عدة إعدادات معاً يمنع نسبة النتيجة إلى سبب واضح.

قس عمل جسر البيانات بشكل مستقل#

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

افحص الحالة المحلية عبر tosunac_db_status في وحدة الخادم. قارن قراءة صفحة لاعبين واحدة بعينة الخمول. تستخدم القوائم صفحات من 25 سجلاً وحجم استجابة محدوداً بدلاً من نقل القاعدة كلها. عند unsupported_index أو schema_unavailable راجع البنية والفهارس المدعومة مع مسؤول مخول بدلاً من فرض استعلامات أوسع.

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

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

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

ميّز قفزة واحدة من عمل متكرر#

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

دوّن المدة والتكرار والإجراء معاً. أعمال قصيرة كثيرة تجمع وقتاً، وعمل طويل قد يوافق hitch. وقت profiler الخادم ليس FPS العميل. قارن توقف العميل بفترة الخادم نفسها؛ التأخير والـassets قد يحتاجان فحصاً منفصلاً. اطلب مساعدة بمقطع منقح وسيناريو بدلاً من تقصير جميع الفواصل عند الشك.

قس تكلفة أدوات المراقبة نفسها#

المراقبة والتشخيص ينتجان عملاً أيضاً. تسجيل طويل وقراءات كثيرة وأدلة وdebug دائم معاً يصعب تحديد السبب. قلّل الأدوات ثم قارن أداة واحدة مفعلة. تحديث عدة تبويبات لا يقيس إجراءً أفضل؛ اختلاف أوقات الطلب ونتائج قديمة يربك الملاحظة. كتابة المال ليست أداة حمل.

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

احتفظ بسجل يومي مختصر لحالة النظام#

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

لا تعِد حفظ الإعدادات كلها يومياً إذا لم تتغير. قارن تحذيراً جديداً من أداة doctor بالسجل السابق ودوّن سببه؛ فالأداة لا تصلحه تلقائياً. راجع الاستثناء المؤقت مع المسؤول عنه عند حلول تاريخ مراجعته، ولا تفترض انتهاءه آلياً. عند عدم وجود أعراض جديدة، اختتم السجل بالحالة الطبيعية المرصودة. إذا ظهر hitch أو خطأ جديد، فاجمع قياساً إضافياً يقتصر على وقته والإجراء المرتبط به. هذه عادة عملية للمسؤول، وليست مهمة تلقائية جديدة أو ميزة مضافة إلى اللوحة.

قس نمو الأرشيف بصورة مستقلة عن حمل اللاعبين#

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

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

تسجيل أحداث مخصصة مع تحقق الخادم#

تعديل إعفاء العميل لا ينشئ إعفاء عاما صادرا من الخادم. تسهيلات القائمة والتكامل المحلية محدودة بالحركة والرؤية؛ وتظل صلاحيات المال والأسلحة والأحداث منفصلة. امنح الإعفاءات الأوسع من موارد الخادم الموثوقة فقط.

تحقق من الصلاحيات ومن سحبها#

يتم التحقق من ACE ومعرفات المديرين وصلاحيات اللوحة على الخادم. all ليست معرفاً أو منحاً للصلاحية. يتطلب allowedIds قيماً كاملة مثل license:... أو discord:... أو fivem:... من قائمة معرفات اللاعب على الخادم.

  1. امنح مديراً تجريبياً الصلاحيات المطلوبة فقط وافحص القائمة وإجراء مسموحاً.
  2. اسحب صلاحية اللوحة واختبر اللاعب نفسه؛ الفحص الافتراضي الجديد كل خمس ثوانٍ تقريباً، مع مراقبة تأخير الشبكة.
  3. افحص أيضاً منح ACE/admins.lua المستقلة؛ بيانات اللاعبين المتصلين ليست مصدراً للصلاحية.
  4. يجب أن يبقى اللاعب العادي دون وصول؛ اختبر الإجراءات الحساسة ببيانات تجريبية.
ts.AdminMenu.allowedIds = {
    "license:YOUR_EXACT_PLAYER_IDENTIFIER",
    "discord:YOUR_DISCORD_USER_ID"
}
# Examples are placeholders, not grants.

تجنب تكرار التحليل المكلف بعد إعادة التشغيل#

يتم فحص بصمات SHA256 لمحتوى الموارد عند كل تشغيل. تعيد الملفات وقواعد الفحص غير المتغيرة استخدام نتائج موثقة في KVP الخادم بدلاً من تكرار تحليل التواقيع والأحداث المكلف. تغييرات الملفات أو الاستثناءات أو القواعد تستدعي تحليلاً جديداً. ما زالت البصمات تقرأ الملفات؛ لا نضمن قيمة resmon ثابتة.

  1. احتفظ بذاكرة KVP في التحديث العادي؛ تُحلل السجلات التالفة أو غير القابلة للتحقق مجدداً.
  2. يجمع كتالوج البداية أسماء الأحداث المكتوبة صراحة في Lua/JS. الأسماء الديناميكية والملفات غير المقروءة أو escrow وDLL لا تُعتمد كفحص كامل.
  3. تنتظر التهيئة التلقائية اليدوية اكتمال التحليل. الموارد الناقصة أو المشبوهة أو المتغيرة أو المنتهية المهلة لا تُعتمد تلقائياً.
  4. اختبر دخول اللاعبين واللعب العادي وإجراءات المدير على خادم تجريبي، وقيّم resmon مع عدد اللاعبين وحمل الإطار.