我有一个播放应用程序并在docker 1.10.3中运行。我们以每秒1000个请求进行此应用程序来进行负载测试。应用程序正常。我们看到Docker消耗了大量的高清内存。在3天内,码头消耗了2.2gb至39gb。这让我们感到担忧。
是否有任何配置码头不是消耗高清内存? 任何帮助将不胜感激。
答案 0 :(得分:4)
Docker捕获应用程序的标准输出(STDOUT)并将其(默认情况下)存储在内部日志文件中。您可以在/var/lib/docker/containers/$CONTAINER_ID/$CONTAINER_ID-json.log
找到此文件。默认情况下,此文件不会旋转,如果您的应用程序详细打印到STDOUT,则该文件可能会变大。
两种可能的解决方案:
配置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。
在创建容器时指定--log-driver
选项,为容器使用备用日志记录:
$ docker run --log-driver=syslog your_image
可用的驱动程序记录在the official documentation中。例如,您可以使用--log-driver=syslog
来使用系统的syslog守护程序,定位各种云服务或使用--log-driver=none
完全禁用日志记录。