Docker消耗更多高清内存

时间:2016-09-26 10:52:29

标签: docker playframework docker-compose boot2docker docker-machine

我有一个播放应用程序并在docker 1.10.3中运行。我们以每秒1000个请求进行此应用程序来进行负载测试。应用程序正常。我们看到Docker消耗了大量的高清内存。在3天内,码头消耗了2.2gb至39gb。这让我们感到担忧。

Docker INFO和突出显示的消耗空间 enter image description here

是否有任何配置码头不是消耗高清内存? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

Docker捕获应用程序的标准输出(STDOUT)并将其(默认情况下)存储在内部日志文件中。您可以在/var/lib/docker/containers/$CONTAINER_ID/$CONTAINER_ID-json.log找到此文件。默认情况下,此文件不会旋转,如果您的应用程序详细打印到STDOUT,则该文件可能会变大。

两种可能的解决方案:

  1. 配置Docker日志文件的日志轮换。我找到了一个good article here,它通过创建包含以下内容的文件/etc/logrotate.d/docker-container来描述如何为Docker启用日志轮换:

    /var/lib/docker/containers/*/*.log {
      rotate 7
      daily
      compress
      size=1M
      missingok
      delaycompress
      copytruncate
    }
    

    您可以使用这些选项。它们都记录在logrotate's man page

  2. 在创建容器时指定--log-driver选项,为容器使用备用日志记录:

    $ docker run --log-driver=syslog your_image
    

    可用的驱动程序记录在the official documentation中。例如,您可以使用--log-driver=syslog来使用系统的syslog守护程序,定位各种云服务或使用--log-driver=none完全禁用日志记录。