Rserve 的内置 HTTP 服务器中的速率限制?
Rate limiting in the built-in HTTP server of Rserve?
我正在查看 Rserve (1.8.5) 的内置 HTTP 服务器,从 [=32= 修改 .http.request()
后]FastRWeb。更新后的请求函数没问题,但问题是,每当 # 并发请求很高时,some/most 其中的请求会抛出以下错误。
WARNING: fork() failed in fork_http(): Cannot allocate memory
WARNING: fork() failed in Rserve_prepare_child(): Cannot allocate memory
这是因为剩余的可用内存不足,因此有必要以某种方式限制 # 个请求。
我尝试了几个客户端层 (1) Python 的 requests + hug 库,(2) Python 的 pyRserve + hug 库,其中 # 工作进程由 # CPUs。我还尝试在 single/multiple 容器设置 (3) (4).
中使用 Nginx 进行反向代理
在所有情况下,与仅使用内置 HTTP 服务器的 Rserve 的设置相比,我观察到一些开销(~ 300 - 450 毫秒)。
我想按原样使用它是最有效的选择,但我担心它一直在尝试分叉并且 returns 出错。 (除了会很快抛出错误外,使用 CPU 利用率或平均响应时间等典型指标进行自动缩放也不容易。)
任何人都可以告知是否有一种方法可以强制执行速率限制 with/without 依赖于另一种不会牺牲性能的工具?
我的Rserve配置大致如下
http.port 8000
socket /var/rserve/socket
sockmod 0666
control disable
还有一个简化的nginx.conf.
worker_processes auto;
events {
worker_connections 1024;
}
http {
upstream backend {
server 127.0.0.1:8000;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
我被 Locust(负载测试工具)误导了,它显示了使用内置 HTTP 服务器设置 Rserve 的缓存输出。
手动调查显示 Rserve + Nginx returns 略有改进的结果。
我正在查看 Rserve (1.8.5) 的内置 HTTP 服务器,从 [=32= 修改 .http.request()
后]FastRWeb。更新后的请求函数没问题,但问题是,每当 # 并发请求很高时,some/most 其中的请求会抛出以下错误。
WARNING: fork() failed in fork_http(): Cannot allocate memory
WARNING: fork() failed in Rserve_prepare_child(): Cannot allocate memory
这是因为剩余的可用内存不足,因此有必要以某种方式限制 # 个请求。
我尝试了几个客户端层 (1) Python 的 requests + hug 库,(2) Python 的 pyRserve + hug 库,其中 # 工作进程由 # CPUs。我还尝试在 single/multiple 容器设置 (3) (4).
中使用 Nginx 进行反向代理在所有情况下,与仅使用内置 HTTP 服务器的 Rserve 的设置相比,我观察到一些开销(~ 300 - 450 毫秒)。
我想按原样使用它是最有效的选择,但我担心它一直在尝试分叉并且 returns 出错。 (除了会很快抛出错误外,使用 CPU 利用率或平均响应时间等典型指标进行自动缩放也不容易。)
任何人都可以告知是否有一种方法可以强制执行速率限制 with/without 依赖于另一种不会牺牲性能的工具?
我的Rserve配置大致如下
http.port 8000
socket /var/rserve/socket
sockmod 0666
control disable
还有一个简化的nginx.conf.
worker_processes auto;
events {
worker_connections 1024;
}
http {
upstream backend {
server 127.0.0.1:8000;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
我被 Locust(负载测试工具)误导了,它显示了使用内置 HTTP 服务器设置 Rserve 的缓存输出。
手动调查显示 Rserve + Nginx returns 略有改进的结果。