Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

სესიის მუშაკი

სესიის მუშაკი უზრუნველყოფს პროცესის დონის იზოლაციას აგენტის სესიებისთვის. ყველა სესიის ერთ პროცესში გაშვების ნაცვლად, PRX-ს შეუძლია გამოყოფილი მუშაკი პროცესების შექმნა, რომლებიც გაუმართაობებს იზოლირებულად ინარჩუნებს და რესურსების ლიმიტებს ოპერაციული სისტემის დონეზე აღასრულებს.

მოტივაცია

პროცესის იზოლაცია რამდენიმე უპირატესობას უზრუნველყოფს:

  • გაუმართაობის იზოლაცია -- ერთი სესიის ავარია სხვებზე არ მოქმედებს
  • რესურსების ლიმიტები -- სესიაზე მეხსიერებისა და CPU-ს ლიმიტების აღსრულება cgroups-ის ან ოპერაციული სისტემის მექანიზმებით
  • უსაფრთხოების საზღვარი -- სხვადასხვა ნდობის დონის სესიები ცალკე მისამართების სივრცეებში მუშაობს
  • გრაციოზული დეგრადაცია -- მთავარ პროცესს შეუძლია წარუმატებელი მუშაკების გადატვირთვა

არქიტექტურა

┌──────────────┐
│  მთავარი     │
│  პროცესი     │
│  (ზედამხედველი)│
│               │
│  ┌──────────┐ │    ┌─────────────┐
│  │ სესია A  ├─┼───►│ მუშაკი Proc │
│  └──────────┘ │    └─────────────┘
│  ┌──────────┐ │    ┌─────────────┐
│  │ სესია B  ├─┼───►│ მუშაკი Proc │
│  └──────────┘ │    └─────────────┘
└──────────────┘

მთავარი პროცესი ზედამხედველის როლს ასრულებს, მუშაკებთან IPC-ით (Unix დომენის სოკეტები ან ფაიფები) კომუნიცირებს.

კომუნიკაციის პროტოკოლი

მუშაკები ზედამხედველთან სიგრძით პრეფიქსირებული JSON პროტოკოლით კომუნიცირებენ IPC არხზე:

  1. შექმნა -- ზედამხედველი აგზავნის სესიის კონფიგურაციას მუშაკისთვის
  2. შეტყობინებები -- მომხმარებლის/აგენტის შეტყობინებების ორმხრივი სტრიმინგი
  3. ჰარტბითი -- პერიოდული ჯანმრთელობის შემოწმებები
  4. გამორთვა -- გრაციოზული შეწყვეტის სიგნალი

კონფიგურაცია

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.