我正在使用ApacheBench(ab)来测量两个nginx在Linux上的性能。它们有相同的配置文件。唯一的区别是nginx运行在docker容器中。
Running: ab -n 50000 -c 1000 http://172.17.0.2:7082/
Concurrency Level: 1000
Time taken for tests: 9.376 seconds
Complete requests: 50000
Failed requests: 0
Total transferred: 8050000 bytes
HTML transferred: 250000 bytes
Requests per second: 5332.94 [#/sec] (mean)
Time per request: 187.514 [ms] (mean)
Time per request: 0.188 [ms] (mean, across all concurrent requests)
Transfer rate: 838.48 [Kbytes/sec] received
Running: ab -n 50000 -c 1000 http://172.17.0.2:6066/
Concurrency Level: 1000
Time taken for tests: 31.274 seconds
Complete requests: 50000
Failed requests: 0
Total transferred: 8050000 bytes
HTML transferred: 250000 bytes
Requests per second: 1598.76 [#/sec] (mean)
Time per request: 625.484 [ms] (mean)
Time per request: 0.625 [ms] (mean, across all concurrent requests)
Transfer rate: 251.37 [Kbytes/sec] received
只是想知道为什么容器一有这么差的性能
nginx.conf:
worker_processes auto;
worker_rlimit_nofile 10240;
events {
use epoll;
multi_accept on;
worker_connections 4096;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 10;
client_header_timeout 10;
client_body_timeout 10;
send_timeout 10;
tcp_nopush on;
tcp_nodelay on;
server {
listen 80;
server_name localhost;
location / {
return 200 'hello';
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
我想补充一下@Andrian Mouat的答案,我刚刚在文档中发现了一些东西。
它是在Docker运行引用中编写的:
与默认的桥
模式相比,主机
模式提供了更好的网络性能,因为它使用主机的本机网络堆栈,而桥必须通过docker后台进程进行一级虚拟化。
sudo perf record-f 99-a-g--sleep 30
ab-n 50000-c 1000 http://my-host-ip/
(捕获时发生)欲了解更多关于火焰图的信息,请访问Brendan Gregg的网站:www.brengregg.com/
此处为全貌
此处为全貌
缩放到nginx
部分:
本文向大家介绍Docker容器中运行nginx,包括了Docker容器中运行nginx的使用技巧和注意事项,需要的朋友参考一下 nginx简介 Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能
Debug.DockerFile 运行命令 正在连接RabbitMQ
问题内容: 我已经创建了一个Docker映像来测试Angular应用程序,但是无法从主机连接到Docker容器中正在运行的应用程序。 该映像是使用具有以下内容的Dockerfile创建的:EXPOSE 4200 8080 80 我使用以下命令运行docker容器:docker run -ti -p 4200:4200 angulardev / bin / bash 在容器内,我创建Angular应
我想全面了解一个Docker容器的运行时性能成本。我发现网络的参考文献要慢大约100µs。 我还发现对运行时成本的引用“可以忽略不计”和“接近于零”,但我想更准确地了解这些成本是什么。理想情况下,我想知道Docker抽象的是什么,但需要付出性能代价,以及抽象出来的东西不需要付出性能代价。联网、CPU、内存等。 此外,如果存在抽象成本,是否有方法绕过抽象成本。例如,也许我可以直接挂载磁盘,而不是在D
正如文档中所说,如果我想在docker中运行测试容器,我必须考虑以下几点: null
问题内容: 我正在尝试在Alpine 3.10 docker容器中专门运行GeckoDriver v0.26.0 。 在弄清楚一些事情之后,我碰壁了: 我想念什么? 我怎么到这里 首先启动docker容器: 然后尝试安装GeckoDriver 真?但我只是提取了它…嗯…好 提取正确吗?是对的吗 是。好吧,让我们用谷歌搜索。好吧,也许我应该检查一下信息。默认情况下,Alpine没有。 对于同一问题的