Moi*_*vin 60 python google-app-engine
如果我threadsafe: true
在我的app.yaml
文件中设置了什么规则来管理何时创建新实例来提供请求,而不是在现有实例上创建新线程?
如果我有一个应用程序在每个请求上执行一些计算密集的东西,那么多线程会给我带来什么吗?换句话说,实例是多核实例还是单核?
或者,当现有线程在IO上等待时,新线程是否只会启动?
pro*_*ppy 36
目前使用以下规则集来确定给定实例是否可以接受新请求:
if processing more than N concurrent requests (today N=10): false
elif exceeding the soft memory limit: false
elif exceeding the instance class CPU limit: false
elif warming up: false
else true
Run Code Online (Sandbox Code Playgroud)
以下总CPU /核心限制当前适用于每个实例类:
CLASS 1: 600MHz 1 core
CLASS 2: 1.2GHz 1 core
CLASS 4: 2.4GHz 1 core
CLASS 8: 4.8GHz 2 core
Run Code Online (Sandbox Code Playgroud)
因此,只有一个B8
实例可以并行处理多达2个完全CPU绑定的请求.
实例类<8的设置threadsafe: true
(Python)或<threadsafe>true</threadsafe>
(Java)不允许在单个实例上并行处理多个CPU绑定请求.
如果您没有完全受CPU限制或执行I/O,则Python和Java运行时将生成新线程以处理最多10个并发请求的新请求 threadsafe: true
另请注意,尽管Go运行时是单线程的,但它确实支持并发请求:它将为每个请求生成1个goroutine,并在执行I/O时在goroutine之间产生控制权.
归档时间: |
|
查看次数: |
2424 次 |
最近记录: |