iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >PostgreSQL--信号量和shmall 和 shmmax相关设置
  • 296
分享到

PostgreSQL--信号量和shmall 和 shmmax相关设置

2024-04-02 19:04:59 296人浏览 泡泡鱼
摘要

一、shared_buffers与shmmax,shmall,max_connections的关系 1.1、shared_buffers与max_connections的关系 shared_buffers

一、shared_buffers与shmmax,shmall,max_connections的关系

1.1、shared_buffers与max_connections的关系

shared_buffers 是查询缓存,设置比较大可以提高postgresql的效率,一般建议设置为系统内存的3/4,但是必须不少于128KB,并且不少于16KB乘以max_connections
 

1.2、shared_buffers与shmmax,shmall的关系

shared_buffers该参数不能超过由操作系统参数SHMMAX指定的值

内核的 shmall 和 shmmax 参数设置在/etc/sysctl.conf文件中,通过sysctl -p 可以生效

SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好。

SHMMIN= 最小的内存segment的大小

SHMMNI= 整个系统的内存segment的总个数

SHMSEG= 每个进程可以使用的内存segment的最大个数

shmall 是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。这两个可以设置为内存的 90%。例如 16G 内存,1610241024102490% = 15461882265,shmall 的大小为 15461882265/4k(getconf PAGESIZE可得到) = 3774873。
修改 /etc/sysctl.conf
kernel.shmmax=15461882265
kernel.shmall=3774873
kernel.msgmax=65535
kernel.msgmnb=65535
执行 sudo sysctl -p
可以使用 ipcs -l 看结果。ipcs -u 可以看到实际使用的情况

备注:shmmax & shmall 在Postgresql9.3开始,将共享内存从system V 修改为Posix和mmap方式,不再需要设置linux系统的shmmax参数

二、max_connections与信号量的关系

如果max_connections设置太大,信号量被消耗完毕,有可能会导致PostgreSQL无法启动

2.1、信号量设置

信号量控制设置在/etc/sysctl.conf文件中,通过sysctl -p 可以生效,该文件用于控制内核信号量,信号量是System VIPC用于进程间通讯的方法。

kernel.sem = 250 512000 100 2048

 

2.2、查询当前信号量使用情况

查看当前信号量使用情况
PostgreSQL--信号量和shmall 和 shmmax相关设置
 

2.3、查看当前的设置:

cat /proc/sys/kernel/sem
PostgreSQL--信号量和shmall 和 shmmax相关设置
这四个数字分别是:SEMMSL,SEMMNS,SEMOPM,SEMMNI
SEMMSL:内核参数,控制每个信号量集合的最大信号数。
SEMMNS:内核参数,控制系统范围内能使用的最大信号量数。
SEMOPM:semop()函数(内核函数,用来操作信号量)每次调用能操作的一个信号量集中的最大信号量。
SEMMNI:内核中信号量集的最大数量。
SEMMNS=SEMMSL*SEMMNI
SEMOPM=SEMMSL,这两个参数一般设置为相同。
 

2.4、信号量设置计算

对于PostgreSQL数据库来说:
SEMMNI >= ceil((max_connections + autovacuum_max_workers + 4) / 16)
SEMMSL >= 17
假设一个PG库如下设置:
max_connections=1000, autovacuum_max_workers =3,
则这几个参数的设置是:
SEMMNI = ceil((1000+3+4))/16)=63,因为考虑到其他进程使用,一般设置为63+25=88
SEMMSL要求大于17,保持默认250
SEMOPM=SEMSL=250
SEMMNS=SEMMNIMSMMSL=88250=22000
在/etc/sysctl.conf文件中添加:

kernel.sem=250  22000 250  88
运行:sysctl -p   生效 

使配置生效
设置完成之后,如果启动数据库还是报同样的错误,那么可以重启操作系统再试试。

您可能感兴趣的文档:

--结束END--

本文标题: PostgreSQL--信号量和shmall 和 shmmax相关设置

本文链接: https://www.lsjlt.com/news/40448.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android中绝对音量和相对音量设置
    目录前言:setStreamVolume调用这里插入个当音量设置到0时自动静音的处理:设置绝对音量: postSetAvrcpAbsoluteVolumeIndex蓝牙侧绝对音量处理...
    99+
    2024-04-02
  • Android中如何进行绝对音量和相对音量设置
    这篇文章给大家介绍Android中如何进行绝对音量和相对音量设置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言:绝对音量: 手机端不处理音量,只把当前音量告诉耳机,耳机端处理音量。相对音量: 手机端处理,耳机端不确...
    99+
    2023-06-28
  • 阿里云服务器登录账号是至关重要的如何设置和管理你的账号
    阿里云服务器是一个强大的云计算平台,提供了大量的服务器资源和各种服务。登录阿里云服务器是使用这些资源和服务的基础,因此,一个有效的阿里云服务器登录账号是至关重要的。本文将详细介绍如何设置和管理你的阿里云服务器登录账号。 阿里云服务器登录账号...
    99+
    2023-12-15
    账号 阿里 至关重要
  • 系统安装上驱动后怎么设置XP的桌面和安装相关应用程序
    这篇文章将为大家详细讲解有关系统安装上驱动后怎么设置XP的桌面和安装相关应用程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在Windows XP系统安装上驱动后,接下来要做的工作,是设置一下XP系统的...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作