【问题标题】:Postgres cant vacuum despite enough space left (could not resize shared memory segment bytes)尽管有足够的空间,但 Postgres 无法清理(无法调整共享内存段字节的大小)
【发布时间】:2020-12-22 12:03:18
【问题描述】:

我有一个 docker-compose 文件

postgres:
    container_name: second_postgres_container
    image: postgres:latest
    shm_size: 1g

我想用吸尘器吸尘,但得到了 ERROR: could not resize shared memory segment "/PostgreSQL.301371499" to 1073795648 bytes: No space left on device

第一个数字比右边的小,而且我的服务器上确实有足够的空间(只占用了 32%)

我想知道它是否认为 docker 容器不够大(因为它会根据需要调整大小 (?))或者还有什么问题?

注意

docker ps  -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
95c689aa4d38        redis:latest        "docker-entrypoint.s…"   10 days ago         Up 10 days          0.0.0.0:6379->6379/tcp   second_redis_container
f9efc8fad63a        postgres:latest     "docker-entrypoint.s…"   2 weeks ago         Up 2 weeks          0.0.0.0:5433->5432/tcp   second_postgres_container

docker exec -it f9efc8fad63a df -h /dev/shm
Filesystem      Size  Used Avail Use% Mounted on
shm             1.0G  2.4M 1022M   1% /dev/shm

df -m
Filesystem     1M-blocks   Used Available Use% Mounted on
udev               16019      0     16019   0% /dev
tmpfs               3207    321      2887  11% /run
/dev/md1          450041 132951    294207  32% /
tmpfs              16035      0     16035   0% /dev/shm
tmpfs                  5      0         5   0% /run/lock
tmpfs              16035      0     16035   0% /sys/fs/cgroup
tmpfs               3207      0      3207   0% /run/user/1000
overlay           450041 132951    294207  32% /var/lib/docker/overlay2/0abe6aee8caba5096bd53904c5d47628b281f5d12f0a9205ad41923215cf9c6f/merged
overlay           450041 132951    294207  32% /var/lib/docker/overlay2/6ab0dde3640b8f2108d545979ef0710ccf020e6b122abd372b6e37d3ced272cb/merged

谢谢

【问题讨论】:

    标签: postgresql docker docker-compose vacuum


    【解决方案1】:

    这表明并行查询内存不足。原因可能是容器上共享内存的限制性设置。

    您可以通过将max_parallel_maintenance_workers 设置为 0 来解决此问题。然后VACUUM 将不会使用并行工作器。

    【讨论】:

      【解决方案2】:

      我想通了(朋友帮忙:))

      我想我数不清 1073795648 比我需要的真空稍多,所以 shm 尺寸 10g 而不是 1g 确实有帮助

      【讨论】:

        猜你喜欢
        • 2019-11-07
        • 2019-11-29
        • 2015-02-12
        • 1970-01-01
        • 2022-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-10
        相关资源
        最近更新 更多