Skip to content
تم إنشاء هذه الصفحة وترجمتها بمساعدة الذكاء الاصطناعي. إذا لاحظت أي أخطاء، لا تتردد في المساهمة في تحسينها. تعديل على GitHub

عامل الجلسة

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

الدافع

يوفر عزل العمليات عدة فوائد:

  • احتواء الأعطال -- تعطل جلسة واحدة لا يؤثر في الجلسات الأخرى
  • حدود الموارد -- فرض حدود ذاكرة وCPU لكل جلسة عبر cgroups أو آليات نظام التشغيل
  • حد أمني -- الجلسات ذات مستويات الثقة المختلفة تعمل في مساحات عناوين منفصلة
  • تدهور سلس -- يمكن للعملية الرئيسية إعادة تشغيل العمال المتعطلين

البنية

┌──────────────┐
│  Main Process │
│  (Supervisor) │
│               │
│  ┌──────────┐ │    ┌─────────────┐
│  │ Session A ├─┼───►│ Worker Proc │
│  └──────────┘ │    └─────────────┘
│  ┌──────────┐ │    ┌─────────────┐
│  │ Session B ├─┼───►│ Worker Proc │
│  └──────────┘ │    └─────────────┘
└──────────────┘

تعمل العملية الرئيسية كمشرف، وتتواصل مع العمال عبر IPC (مقابس Unix domain أو pipes).

بروتوكول الاتصال

يتواصل العمال مع المشرف باستخدام بروتوكول JSON مع بادئة طول عبر قناة IPC:

  1. Spawn -- يرسل المشرف إعدادات الجلسة إلى العامل
  2. Messages -- بث ثنائي الاتجاه لرسائل المستخدم/الوكيل
  3. Heartbeat -- فحوصات دورية للحالة الصحية
  4. Shutdown -- إشارة إنهاء سلس

الإعدادات

toml
[agent.worker]
enabled = false
ipc_socket_dir = "/tmp/prx-workers"
heartbeat_interval_secs = 10
max_restart_attempts = 3

حدود الموارد

عند التشغيل على Linux، يمكن لعامل الجلسة تطبيق حدود موارد تعتمد على cgroup:

toml
[agent.worker.limits]
memory_limit_mb = 256
cpu_shares = 512

صفحات ذات صلة

Released under the Apache-2.0 License.