[Enhancement]: Experiment with a different WSGI HTTP server
- Dominant language
- Python
- Stars
- 562
- Forks
- 410
- Avg merge
- 22h 15m
- Merged PRs (30d)
- 197
Description
### Affected Area
Performance
### Problem Statement
Experiment with a slightly better!? web server.
Some eyeballed/unreproduced tests on my production bench.
```bash
granian --host 0.0.0.0 --port 8000 --interface wsgi --workers 3 --respawn-failed-workers --workers-kill-timeout 30 --no-reload frappe.app:application
```
instead of
```bash
gunicorn --bind 0.0.0.0:8000 --workers 3 --timeout 120 --graceful-timeout 30 --worker-tmp-dir /dev/shm frappe.app:application --preload --statsd-host=10.25.9.108:9125 --statsd-prefix=bench-31400-000001-u8-nuremberg --worker-class=gthread --threads=4 --max-requests 5000 --max-requests-jitter 1000 --access-logfile /home/frappe/frappe-bench/logs/u8-nuremberg.frappe.cloud-gunicorn.access.log
```
https://github.com/frappe/agent/blob/522fdf00e4f61dc0d14aebec3f35ffe0feb2952f/agent/templates/bench/supervisor.conf#L8
Better RSS. Better SHR. Needs confirmation.
After
Before
### Proposed Solution
_No response_
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the referenced agent/templates/bench/supervisor.conf line 8 and compare its Gunicorn setup with the provided Granian command. Run reproducible benchmarks that measure RSS and SHR, then document whether the alternative is safe to adopt and what configuration changes are required.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devops, performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100