docker SHM_SIZE /dev/shm:调整共享内存大小

2023-12-26

我想调整大小postgres容器默认的共享内存64M。所以我补充一下:

build:
      context: .
      shm_size: '2gb'

我正在使用 3.6 版本的 compose 文件,postgres服务定义。

version: "3.6"

services:

 #other services go here..
 postgres:
    restart: always
    image: postgres:10
    hostname: postgres
    container_name: fiware-postgres
    expose:
      - "5432"
    ports:
      - "5432:5432"
    networks:
      - default
    environment:
      - "POSTGRES_PASSWORD=password"
      - "POSTGRES_USER=postgres"
      - "POSTGRES_DB=postgres"
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    build:
      context: .
      shm_size: '2gb'

但是,即使我重新启动服务,此更改也不会生效docker-compose down then up。因此,我立即开始与 postgres 交互以在仪表板上显示一些数据,我遇到了共享内存问题。

启动仪表板之前:

$docker exec -it fiware-postgres df -h
Filesystem                                                                                        Size  Used Avail Use% Mounted on
/dev/mapper/docker-253:1-107615-1541c55e4c3d5e03a7716d5418eea4c520b6556a6fd179c6ab769afd0ce64d9f   10G  266M  9.8G   3% /
tmpfs                                                                                              64M     0   64M   0% /dev
tmpfs                                                                                             1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/vda1                                                                                         197G   52G  136G  28% /etc/hosts
shm                                                                                                64M  8.0K   64M   1% /dev/shm
tmpfs                                                                                             1.4G     0  1.4G   0% /proc/acpi
tmpfs                                                                                             1.4G     0  1.4G   0% /proc/scsi
tmpfs                                                                                             1.4G     0  1.4G   0% /sys/firmware

启动仪表板后:

$docker exec -it fiware-postgres df -h
Filesystem                                                                                        Size  Used Avail Use% Mounted on
/dev/mapper/docker-253:1-107615-1541c55e4c3d5e03a7716d5418eea4c520b6556a6fd179c6ab769afd0ce64d9f   10G  266M  9.8G   3% /
tmpfs                                                                                              64M     0   64M   0% /dev
tmpfs                                                                                             1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/vda1                                                                                         197G   52G  136G  28% /etc/hosts
shm                                                                                                64M   50M   15M  78% /dev/shm
tmpfs                                                                                             1.4G     0  1.4G   0% /proc/acpi
tmpfs                                                                                             1.4G     0  1.4G   0% /proc/scsi
tmpfs                                                                                             1.4G     0  1.4G   0% /sys/firmware

postgres错误日志:

2019-07-01 17:27:58.802 UTC [47] ERROR:  could not resize shared memory segment "/PostgreSQL.1145887853" to 12615680 bytes: No space left on device

这里发生了什么?


You set shm_size in build,这只会影响构建,您需要在服务级别中设置它,如下所示:

docker-compose.yaml:

version: "3.6"

services:

 #other services go here..
 postgres:
    restart: always
    image: postgres:10
    hostname: postgres
    container_name: fiware-postgres
    expose:
      - "5432"
    ports:
      - "5432:5432"
    networks:
      - default
    environment:
      - "POSTGRES_PASSWORD=password"
      - "POSTGRES_USER=postgres"
      - "POSTGRES_DB=postgres"
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    build:
      context: .
      shm_size: 256mb
    shm_size: 512mb

Dockerfile:

FROM postgres:10

RUN df -h | grep shm

Then, docker-compose up -d --build启动它并检查:

shubuntu1@shubuntu1:~/66$ docker-compose --version
docker-compose version 1.24.0, build 0aa59064
shubuntu1@shubuntu1:~/66$ docker-compose up -d --build
Building postgres
Step 1/2 : FROM postgres:10
 ---> 0959974989f8
Step 2/2 : RUN df -h | grep shm
 ---> Running in 25d341cfde9c
shm             256M     0  256M   0% /dev/shm
Removing intermediate container 25d341cfde9c
 ---> 1637f1afcb81

Successfully built 1637f1afcb81
Successfully tagged postgres:10
Recreating fiware-postgres ... done
shubuntu1@shubuntu1:~/66$ docker exec -it fiware-postgres df -h | grep shm
shm             512M  8.0K  512M   1% /dev/shm

你可以在构建时间看到它显示256m,但它显示的运行时容器512m.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker SHM_SIZE /dev/shm:调整共享内存大小 的相关文章

随机推荐

  • 如何从 Eclipse 项目中排除某些文件夹?

    我正在向我们现有的代码库添加一个 eclipse 项目 我想知道是否有办法完全排除某些目录被 eclipse 拾取 原因是我们的存储库中有一个巨大的 第三方 目录 该目录无法出现在项目中结对编程 https stackoverflow co
  • 锚标记 与 Shadow dom 内的哈希值

    我想在使用 Shadow DOM 的自定义元素内使用带有哈希 URL 的锚元素 我希望浏览器向下滚动到该锚点 但它没有这样做 至少 Chrome 是这样 Detail 我有一个像这样的index html a href destinatio
  • “浮动”的最大值是多少? [复制]

    这个问题在这里已经有答案了 当我检查 float MaxValue 的值时 我得到 3 402823E 38 这是 340 282 300 000 000 000 000 000 000 000 000 000 000 那么为什么当我尝试为
  • 如何调用 shell 脚本并从另一个 shell 脚本传递参数

    我正在从另一个 shell 脚本调用 shell 脚本 并且被调用的脚本需要一些输入 命令行 参数 我有下面提到的代码 但那不起作用 我不知道为什么参数值没有传递给被调用的脚本 script1 sh bin bash ARG1 val1 A
  • 如何通过网络在两个 VB.NET 应用程序之间进行通信

    我正在使用 VB NET 进行编程 我想将一个字符串或一个整数从一个 VB NET 应用程序发送到不同计算机上的另一个 VB NET 应用程序 我看了一些教程 但所有教程都只能在本地网络上运行 我希望它可以在互联网上运行 这是我的本地连接代
  • 远程服务器返回意外响应:(400) 错误请求

    我收到异常 远程服务器返回意外响应 400 错误请求 我不知道原因 web config 看起来不错 但也许我没有看到问题
  • firebase 如何检测“app_remove”

    在 Android 应用程序的 Firebase 分析中 我可以看到 app remove 事件 但 Android 操作系统不提供任何回调来检测应用程序是否被卸载 那么 firebase 是否真的知道 app remove 事件是否发生了
  • Google Java 风格的 Checkstyle 规则

    是否有一个 Checkstyle 规则文件谷歌Java风格 http google styleguide googlecode com svn trunk javaguide html checkstyle 团队几天前添加了它 这里是 ht
  • 是什么让 Smalltalk 能够进行图像持久化,为什么像 Ruby/Python 这样的语言不能自我序列化?

    在smalltalk中 您可以将世界状态保存到图像文件中 我认为这与 Smalltalk 的 序列化 自身能力有关 也就是说 对象可以生成自己的源代码 1 这是一个准确的理解吗 2 将这种能力添加到现代语言 显然是非 Lisp 中面临的挑战
  • 使用 Cython 生成的可执行文件真的没有源代码吗?

    我读过了在 Cython 中制作可执行文件 https stackoverflow com questions 22507592 making an executable in cython和 BuvinJ 的回答如何有效混淆Python代
  • 以编程方式选择 Kendo 网格行

    我找到了类似标题的帖子 但仍然无法解决我的问题 我肯定做错了什么 在 Kendo 网格配置中 有一些函数可以获取上下文 网格 并读取所选行 change function e refresh this 这就是我配置 更改 事件的方式 在函数
  • Pygame.movi​​e 丢失[重复]

    这个问题在这里已经有答案了 我目前正在使用 RPi 3B 最新的 Raspbian Jessie 进行一个小项目 其中涉及播放短的 mp4 文件 由于 Pygame 似乎支持播放 mpg 文件 因此我将视频转换为该格式 然而 当我尝试导入电
  • 代码合同 - Visual Studio Team Service 脚本化构建服务器单元测试失败

    我最近将代码契约添加到我的解决方案中 经过一些修改后 我们的构建运行没有任何问题 但我们的单元测试由于代码契约而失败 环境 源代码控制和构建服务器托管在Visual Studio 团队服务 https www visualstudio co
  • 从 Tinymce 获取 HTML 值

    有没有办法使用 jQuery 从 TinyMCE 编辑器获取 HTML 内容 以便我可以将其复制到另一个 div 我在内容上尝试了几种方法 例如 val 但它似乎不起作用 如果您正在使用 jquery 适配器进行初始化 selector t
  • Codeigniter 图片上传只会上传到一个目录

    function upload path config overwrite TRUE config allowed types jpg jpeg gif png config max size 2000 if path profile co
  • EJB 3.1 异步方法和线程池

    我每天需要使用 EJB 3 1 异步方法处理大约 250 000 个文档 才能应对整体的长时间任务 我这样做是为了使用更多线程并同时处理更多文档 这是伪代码的示例 this returns about 250 000 documents p
  • 如何在opencpu中链接两个函数调用

    据说 OpenCPU 支持链接函数调用来计算 例如f g x h y 有关参数格式的文档 https public opencpu org api html api arguments https public opencpu org ap
  • Web 开发人员 - 在本地计算机上还是在远程主机上进行开发更好?

    在本地计算机上而不是在集中式开发服务器上进行 Web 开发有哪些优点 缺点 对于那些在本地计算机上进行开发的人来说 当涉及多个开发人员时 如何为本地开发保留更新的数据库架构 特别是 我目前正在试验适用于 PHP 的 XAMPP 并且很好奇当
  • 有问题的 System.Diagnostics.Contracts 的有用性

    我一直在使用新的 System Diagnostics Contracts 类 因为它一开始看起来非常有用 用于检查入站参数 返回值等的静态方法 它是一个干净的接口 可以替换大量 if then 语句和内部构建的库工具 然而 它在大多数运行
  • docker SHM_SIZE /dev/shm:调整共享内存大小

    我想调整大小postgres容器默认的共享内存64M 所以我补充一下 build context shm size 2gb 我正在使用 3 6 版本的 compose 文件 postgres服务定义 version 3 6 services