场景 #1 - “桥接”网络

场景 #1 - “桥接”网络

我注意到 dockerd 和 docker-proxy 进程占用的 CPU 比预期的多,分别为 15% 和 24%,所以我决定使用“主机”网络来避免开销。但是,我得到的结果要差得多。如何解释这一点?

nginx 容器不会发生同样的情况(使用“主机”网络时性能从 43k req/sec 提高到 48k req/sec)。

场景 #1 - “桥接”网络

启动 CouchDB 容器:docker run -d -p 5984:5984 couchdb

$ wrk -d 60 http://localhost:5984/mydb/mydoc
Running 1m test @ http://localhost:5984/mydb/mydoc
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.51ms  197.54us   7.81ms   75.74%
    Req/Sec     3.32k   111.59     3.60k    71.58%
  396492 requests in 1.00m, 698.02MB read
Requests/sec:   6608.12
Transfer/sec:     11.63MB

场景 #2 - “主机”网络

启动 CouchDB 容器:docker run --net=host -d -p 5984:5984 couchdb

$ wrk -d 60 http://localhost:5984/mydb/mydoc
Running 1m test @ http://localhost:5984/mydb/mydoc
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    42.98ms    1.17ms  54.99ms   96.96%
    Req/Sec   116.79     13.73   151.00     56.00%
  13966 requests in 1.00m, 24.59MB read
Requests/sec:    232.57
Transfer/sec:    419.29KB

环境

  • 硬件:i7-6700K、16GB、SSD
  • 操作系统:Fedora 25(内核 4.10.13)
  • 数据库:CouchDB 1.6.1

相关内容