Docker运行时间统计(基准)

我知道周围有很多docker专家,但是我花了相当多的时间来找出一些事实,并且了解了Docker的运行时间性能,但不幸的是我没有得到任何具体的答案。 让我开始告诉你我的系统的configuration:

(a)在具有48GB内存,1TB光盘和12核心CPU的机器上运行CentOS 6.5。 (b)我build立了一个大小差不多6.5GB的Docker镜像

下面是一些问题,如果有人可以为读者的利益回答:

(a)现在使用给定的configuration,问题是我可以并行运行多less个容器而不中断任何function?

(b)假设我有两张3.5GB大小的图像,那么是否build议运行多张小图像,或者大图像性能好?

(c)什么是与Docker一起使用的最佳文件系统选项?

编辑:更多信息

(d)其实我试图把许多编译器放在一个容器中,并试图让用户在线编译他们的语言。 这个工具正在开发中,将取代我现有的网站compileonlone.com。 事情进展良好,我build立了两个图像,每个编译器都很less。 我能够成功运行250个容器,之后我开始打开太多的文件。 在250个容器之后,我的RAM达到了40GB,CPU利用率约为50%。

我面临的主要问题是拆除旧的容器。 因为用户会来编译他的代码,然后会消失,所以我需要在一段时间后删除那些容器,但是当我试图通过使用docker rm -v来移除这些停止的容器时,它会减慢主docker进程,它几乎挂着。 我的意思是在/var/run/docker.sock中监听的docker -d守护进程。 不知道是否有任何其他的方式来清理这些容器或我有一个错误。 这里是Docker的细节:

# docker info Containers: 1016 Images: 41 Storage Driver: devicemapper Pool Name: docker-0:20-258-pool Pool Blocksize: 64 Kb Data file: /var/lib/docker/devicemapper/devicemapper/data Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata Data Space Used: 17820.7 Mb Data Space Total: 102400.0 Mb Metadata Space Used: 102.4 Mb Metadata Space Total: 2048.0 Mb Execution Driver: native-0.2 Kernel Version: 3.17.2-1.el6.elrepo.x86_64 Operating System: <unknown> WARNING: No swap limit support 

如果有人可以帮助我如何以最快的方式删除旧的容器,那么它会很好。 简单的shell脚本和所有不工作。 我已经尝试过了

  #docker rm -v $(docker ps -a |grep Exited | awk '{print $1}') 

但是它完全放慢了主docker进程,并且在移除进程运行的时候无法创build新的容器。

感谢您花时间回答这些问题,这将帮助我以及其他许多人继续与Docker进行交stream。

a):容器就像一个过程。 这个问题就像问“我可以并行运行多less个进程”。 如果不知道进程在做什么,它是不能回答的。 请将这些信息添加到您的问题。

b)3.5GB和6.5GB对于Docker镜像都非常大。 最好的做法是把一个应用程序放在一个容器中:如果你有一个大小适中的应用程序,那么很好。 如果没有,也许你已经把你的应用程序的数据放入图像中。 这不是一个好主意,因为分层文件系统比普通的文件系统慢,而且你也不需要在事务数据上使用分层或快照的function。

有关pipe理数据的文档说明如何挂载常规磁盘,以便从容器中访问它。

编辑后,提供更多的信息

d)使用RAM意味着容器仍在运行。 如果你的站点逻辑中有某种方式来知道什么时候不再需要容器,你可以通过docker kill它,然后docker rm移除磁盘存储。 或者docker rm -f将这两个操作合为一体。

经过大量的研发和与众多专家的讨论,我find了一个解决scheme,以减轻速度删除容器。 它很简单,你已经运行你的docker守护进程dm.blkdiscard = false选项如下。

docker -d –storage-opt dm.blkdiscard = false

顺便说一下,这是我所开发的。 在这里,我需要高速创build和删除容器

http://codingground.tutorialspoint.com

希望这会帮助许多人。