如何解决数据库Docker容器性能问题

时间:2018-06-21 18:58:50

标签: docker docker-for-windows

我遇到了在Docker容器中运行的数据库进程的性能问题。

我们针对Sybase数据库运行集成测试。 我们希望集成测试每次都从新的数据库开始。

根据Docker文档,其架构设计会降低性能:

  

“写入容器的可写层需要存储驱动程序   管理文件系统。存储驱动程序提供了一个联合   文件系统,使用Linux内核。这种额外的抽象减少了   与使用数据量(直接写入数据量)相比   主机文件系统。”

https://docs.docker.com/storage/

我尝试遵循Docker文档的建议:

  1. 停止将数据库文件压缩为Docker映像。

  2. 将创建的容器映射到保存数据库文件的主机目录。

结果:映射数据库文件根本没有帮助提高性能。

是否可以提高性能?

请提供说明。

测试计划:

  1. 在测试过程中未更改Dockerfile 它是从 FROM microsoft / windowsservercore

  2. 创建的
  3. Docker容器 Powershell脚本在容器内部启动数据库进程
    Docker run –p 2638:2638 –name dp sybase12

  4. 在测试过程中仅更改了数据库文件的位置

    A)将文件压缩到图像中(测试2)。

    B)该文件已映射到Docker容器(测试3)。

  5. 在开始新测试之前,我删除了容器。

测试

  1. 在OS中启动数据库进程。

    运行集成测试。时间: 18分钟

  2. 创建了Docker容器。数据库文件已压缩到 Docker映像。启动的docker:Docker run –p 2638:2638 –name dp sybase12

    运行集成测试。时间: 58分钟

  3. 创建了Docker容器。数据库文件位于主机文件系统中:C:\ Data。启动的docker: Docker run –p 2638:2638 –v C:\Data:C:\Deploy\Db –name dp sybase12

    运行集成测试。时间: 58分钟

环境

Windows 10 x64

Sybase 12 64位数据库引擎

0 个答案:

没有答案