首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rserve内置HTTP服务器中的速率限制?

Rserve内置HTTP服务器中的速率限制?
EN

Stack Overflow用户
提问于 2017-10-30 09:57:48
回答 1查看 213关注 0票数 0

我正在研究Rserve (1.8.5)的内置HTTP服务器,在从FastRWeb修改.http.request()之后。更新后的请求函数没有问题,但问题是,每当#并发请求很高时,一些/大多数请求就会抛出以下错误。

警告:fork_http()中的叉()失败:无法分配内存 警告:Rserve_prepare_child()中的叉()失败:无法分配内存

这是因为没有足够的空闲内存,因此有必要以某种方式限制#请求。

我尝试了几个客户层(1) Python的请求+拥抱库,(2) Python的pyRserve + hug库,其中# worker进程由#CPU调整。另外,我还在一个/多个容器设置(3) (4)中尝试了Nginx的反向代理。

在所有这些情况下,我观察到一些开销(~ 300到450 ms),与仅使用内置HTTP服务器的Rserve的设置相比。

我想使用它将是最有效的选择,但我担心它只是不断尝试分叉和返回一个错误。(除了快速抛出错误外,使用一些典型的度量标准(如CPU利用率或平均响应时间)也不容易自动缩放。)

有谁能告诉我们,是否有一种方法可以使用/不依赖另一个不牺牲性能的工具来执行速率限制?

我的Rserve配置大致如下所示。

代码语言:javascript
复制
http.port 8000
socket /var/rserve/socket
sockmod 0666
control disable

这里还有一个简化的nginx.conf。

代码语言:javascript
复制
worker_processes auto;

events {
    worker_connections 1024;
}

http {
    upstream backend {
        server 127.0.0.1:8000;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://backend;
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-31 07:05:17

我被Locust (负载测试工具)误导,它显示了内置HTTP服务器设置Rserve的缓存输出。

手动调查显示,Rserve + Nginx返回的结果略有改进。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47012411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档