2

我有一个游戏应用程序,并在docker 1.10.3中运行。我们正以每秒1000次请求的速度实施负载测试。应用程序正常工作我们看到Docker消耗了大量的高清内存。码头工人在3天内消耗了2.2gb到39gb。这使我们担心负荷。Docker消耗更多的高清内存

泊坞窗信息和所占用的空间突出 enter image description here

有什么是configre码头工人不consumen硬盘存储? 任何帮助将不胜感激。

+1

你知道哪些文件需要这个空间?我的猜测会是一个日志文件,随着请求的数量不断增长。 – vdebergue

+0

它是码头的内部。它与应用程序无关。我只是想知道在Docket中是否有这样的配置来摆脱这个问题。 – Prakash

回答

4

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

两个可能的解决方案:

  1. 配置日志旋转的泊坞日志文件。我发现一个good article here介绍如何通过使用以下内容创建文件/etc/logrotate.d/docker-container启用多克尔日志轮换:

    /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来定位各种云服务或完全禁用日志记录。

+0

谢谢你会尝试这些选项 – Prakash