docker tmpfs 似乎对 postgresql 没有影响

Posted

技术标签:

【中文标题】docker tmpfs 似乎对 postgresql 没有影响【英文标题】:docker tmpfs seems to have no effect on postgresql 【发布时间】:2019-02-16 01:48:13 【问题描述】:

我在一个 docker 容器中有一个 Postgres 数据库,我对它运行 django 测试。我想提高测试的速度。最简单的方法(在我看来)是将 postgres 数据移动到 tmpfs 卷中。

这就是我所做的:

docker run --name my_tfmps_test -d -p 5432:5432 \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=my_database \
-e PGDATA=/var/lib/postgresql/data \
--tmpfs /var/lib/postgresql/data \
library/postgres

因为我指定了--tmpfs,所以我希望测试运行得更快。不幸的是,这种情况并非如此。测试的速度完全保持在同一水平(给或取 5%)。

我的问题是:为什么测试的速度没有改变?我能做些什么呢?

额外信息:

MacOS 10.13.6 参考https://docs.docker.com/storage/tmpfs/

【问题讨论】:

【参考方案1】:

我的问题是:为什么测试的速度没有改变?我能做些什么呢?

如果表太小以至于它已经适合 ram,那么 tmpfs 不会为您带来太多好处,除了几次刷新到磁盘。而且,如果该磁盘是 SSD,那么它根本就不多。通常,您可以通过关闭 Durability Options 来加快测试套件的运行速度。

【讨论】:

以上是关于docker tmpfs 似乎对 postgresql 没有影响的主要内容,如果未能解决你的问题,请参考以下文章

Docker的数据管理(volume/bind mount/tmpfs)

Docker-Compose Postgres 5432 绑定:地址已在使用错误

如何在 docker-compose 中访问 Postgres 数据库

批量插入在 docker 容器中运行的 Postgres 数据库挂起

docker 数据管理

docker数据卷挂载使用