FPM pool manager
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 40.4k
- Forks
- 8.1k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 96
Description
Description
FPM allows creating multiple pools which except other things provides some sort of separation between processes. There is still however lots of shared resources because MINIT happens in master process which is common for all pools. That's problematic for extension like opcache that creates shared memory between all pools. This gets even more problematic if pools have different users / groups configured due to potential permission errors when accessing shared resources.
The proposed solution for this problem is to create extra layer between master and children processes. It would be a pool manager process that would handle creation of children, logs, MINIT and other things currently handled by master process. Master process would then become very thin and just supervise pool manager(s) as well as some other common things (e.g. loading configuration). This would be also beneficial for improving graceful reload and extending of status and access logging for resource information related to the whole pool like for example request for adding utime and stime.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named. Begin by tracing PHP-FPM’s current master and child process responsibilities, including pool creation, logging, and MINIT handling, then determine how a pool-manager layer could isolate shared resources. Done would require an agreed design and implementation covering the proposed process responsibilities and pool separation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, php
- Domain
- backend, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100