相关疑难解决方法(0)

如何优化docker容器的性能?

我测试了基于的redis容器. https://index.docker.io/u/dockerfile/redis/

使用相同的redis-benchmark,redis-server在容器内运行要比在托管操作系统上运行慢得多,实际统计数据如下所示.(第一个基准是Docker容器)

那么,有没有办法优化docker容器的性能?

vagrant@precise64:/tmp$ redis-benchmark -p 49153 -q -n 100000
PING (inline): 5607.27 requests per second
PING: 6721.79 requests per second
MSET (10 keys): 6085.69 requests per second
SET: 6288.91 requests per second
GET: 6627.78 requests per second
INCR: 6454.11 requests per second
LPUSH: 6449.12 requests per second
LPOP: 5355.90 requests per second
SADD: 6237.91 requests per second
SPOP: 6794.40 requests per second
LPUSH (again, in order to bench LRANGE): 6089.76 requests per second
LRANGE (first 100 elements): 6000.24 …
Run Code Online (Sandbox Code Playgroud)

performance docker linux-containers

13
推荐指数
1
解决办法
8484
查看次数

是否有计算Docker容器开销的公式?

假设我想同时运行几个Docker容器.

是否有任何公式可以提前了解一个Docker主机可以同时运行多少个容器?即,多少CPU,内存和合作.我是否必须考虑容器本身?

docker

11
推荐指数
1
解决办法
8009
查看次数

使用Ubuntu(Linux)主机进行Docker守护进程/容器实时调度

在开始之前,我有两个想法是否应该在SuperUser或Stackoverflow中提出这个问题 - 如果它位于错误的位置,请提前道歉.

我有一个docker容器(包含C/C++可执行代码),它执行音频/视频处理.因此,我想测试使用RT调度约束运行容器的好处.在网上搜索,我遇到了各种各样的信息,但我很难将所有部分放在一起.

系统环境:

  • 主持人:Ubuntu(股票)Zesty 17.04( RT内核补丁,内核:4.10.0-35-genric)
  • Docker版本:17.05.0-ce
  • Docker Images操作系统:Ubuntu Zesty 17.04.

在嵌套在docker镜像/容器中的可执行文件中,执行以下代码以将调度程序从"SCHED_OTHER"更改为"SCHED_FIFO"(请参阅文档):

    struct sched_param sched = {};

    const int nMin = sched_get_priority_min(SCHED_FIFO);
    const int nMax = sched_get_priority_max(SCHED_FIFO);

    const int nHlf = (nMax - nMin) / 2;
    const int nPriority = nMin + nHlf + 1;

    sched.sched_priority = boost::algorithm::clamp(nPriority, nMin, nMax);

    if (sched_setscheduler(0, SCHED_FIFO, &sched) < 0)
        std::cerr << "SETSCHEDULER failed - err = " << strerror(errno) << std::endl;
    else
        std::cout << "Priority set to \"" …
Run Code Online (Sandbox Code Playgroud)

c++ linux ubuntu real-time docker

6
推荐指数
1
解决办法
4498
查看次数

为什么在 Docker 容器中启动 jar 比在本地计算机上启动更快?

目前我正在使用微服务和 Docker 容器进行测试。在我上次尝试使用 Micronaut-Server 期间,我发现本地启动 (cmd) 和使用 Docker 启动的启动时间之间存在差异。但令我好奇的是,Container 的速度要快得多。

我正在使用 Gradle 创建一个可运行的 jar(更准确地说是 Shadowjar - 不确定确切的区别是什么)。然后我使用该 jar 文件构建一个 Docker 映像。两者的启动命令是相同的(参见下面的 Dockerfile): java -jar micronaut.jar

在我寻找原因的过程中,我发现这个问题也与 Docker-Container 的性能有关,但结论更多的是,容器应该稍微慢一点,而不是更快。

我的 Dockerfile:

FROM adoptopenjdk/openjdk11-openj9:jdk-11.0.1.13-alpine-slim
COPY build/libs/*.jar micronaut.jar
EXPOSE 8080
CMD java -jar micronaut.jar
Run Code Online (Sandbox Code Playgroud)

和泊坞窗命令: docker run -p 9999:9999 -it --name dokuserver pge/dokuserver:0.1

我预计容器的启动时间会相同,但速度会慢一些,但实际上时间是这样的。

  • 本地:4000-5000ms
  • Docker:~2500ms

我尝试了好几次,但结果总是几乎相同。

我正在使用 DockerDesktop (Docker 19.03.1)、IntelliJ 和 Gradle (5.5.1) 的 Win10 PC 工作,并使用 IntelliJ-Terminal 和 windows-cmd 进行本地启动。

我不是 Docker 或更接近硬件的事情方面的专家,所以我找不到这种速度差异的答案。所以我问你:

什么可能导致这种情况?

java performance executable-jar docker

3
推荐指数
1
解决办法
1996
查看次数

容器与主机(本机)性能

  • 既然容器是轻量级的操作系统虚拟化,那么我们能否获得与原生(主机)相同的性能呢?

  • 性能上会有什么差异?

任何线索都将受到高度赞赏,或者如果您有任何分析报告或任何有关主机与容器性能比较的参考将会有所帮助。

IA

containers amazon-ecs docker kubernetes google-kubernetes-engine

2
推荐指数
1
解决办法
9032
查看次数