Rserve(1.8.5)
修改后
.http.request()
从…起
FastRWeb
. 使用更新的请求函数没问题,但问题是,每当#并发请求很高时,其中一些/大多数会抛出以下错误。
警告:fork()在fork\u http()中失败:无法分配内存
警告:Rserve\u prepare\u child()中的fork()失败:无法分配内存
这是因为剩余的可用内存不足,有必要以某种方式限制#请求。
我尝试了几个客户端层(1)Python的requests+hug库,(2)Python的pyRserve+hug库,其中#worker进程由#CPU调整。此外,我还尝试了在单/多容器设置中使用Nginx的反向代理(3)(4)。
我想按原样使用它将是最有效的选择,但我担心它只是不断尝试分叉并返回错误。(除了快速抛出错误外,使用一些典型指标(如CPU利用率或平均响应时间)自动缩放也不容易。)
有没有人能告诉我们,是否有一种方法可以在不影响性能的情况下,使用/不使用其他工具来实施速率限制?
我的Rserve配置大致如下。
http.port 8000
socket /var/rserve/socket
sockmod 0666
control disable
nginx。形态
worker_processes auto;
events {
worker_connections 1024;
}
http {
upstream backend {
server 127.0.0.1:8000;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}