-
Notifications
You must be signed in to change notification settings - Fork 125
Description
Hey, so we're extensively using the framework to create our GCF and Cloud Run services and it is very easy to use which is great.
But, when it comes to fine-tuning your performance things go rogue. E.g. we have a need for ~5 GB RAM in Cloud Run for some services, so effectively are 2 vCPUs already while the hard-coded gunicorn configs force only a single worker
functions-framework-python/src/functions_framework/_http/gunicorn.py
Lines 20 to 27 in 586cc4e
| self.options = { | |
| "bind": "%s:%s" % (host, port), | |
| "workers": 1, | |
| "threads": 1024, | |
| "timeout": 0, | |
| "loglevel": "error", | |
| "limit_request_line": 0, | |
| } |
And this is gonna be the same issue with GCF gen2 where you can use bigger instances in terms of memory but they also come with more vCPU for which you are paying but not using.
I suggest we either keep the default and let people configure/adjust Gunicorn params or implement a smart solution for picking appropriate defaults ( 617C at least based on the number of vCPU available).