postgresql设置max_connections太大无法启动 (转载)
本篇随笔转载自https://my.oschina.net/u/2381678/blog/552346。
在生产环境postgresql中,需要调整最大链接数,但是调整后无法启动
错误的意思就是内核中信号量集和信号量的配置太小了。信号量在内核中,主要解决进程间同步、异步的锁问题,因为PostgreSQL的每个链接是一个进程,所以需要更多的锁来使用。查看方法:

这四个数字分别是:SEMMSL,SEMMNS,SEMOPM,SEMMNI
SEMMSL:内核参数,控制每个信号量集合的最大信号数。
SEMMNS:内核参数,控制系统范围内能使用的最大信号量数。
SEMOPM:semop()函数(内核函数,用来操作信号量)每次调用锁能操作的一个信号量集中的最大信号量。
SEMMNI:内核中信号量集的最大数量。
SEMMNS=SEMMSL*SEMMNI
SEMOPM=SEMMSL,这两个参数一般设置为相同。
对于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=SEMMNI*MSMMSL=88*250=22000
在/etc/sysctl.conf文件中添加:
kernel.sem=250 22000 250 88
运行:sysctl -p
使配置生效
设置完成之后,如果启动数据库还是报同样的错误,那么可以重启操作系统。(具体什么原因,我也不知道,如果有哪位明白的大神,请赐教)
postgresql设置max_connections太大无法启动 (转载)的更多相关文章
- -Xms 和 -Xmx 不能设置的太大
之前我一直有一个疑问,就是-Xms 和 -Xmx不是设置的越大越好吗?现在才明白怎么回事. 通过在命令行中执行 java 或者启动某种基于 Java 的中间件来运行 Java 应用程序时,Java 运 ...
- 项目太大tomcat启动不起来
双击server,Open launch configuration Arguments VM arguments增加参数: -Xms512m -Xmx1024m -Xss4m -XX:PermSiz ...
- TCP/IP详解学习笔记 这位仁兄写得太好了.(转载)
TCP/IP详解学习笔记 这位仁兄写得太好了 TCP/IP详解学习笔记 这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/20444 ...
- oracle 11g 导入表时 提示 ***值太大错误
导入数据库时,总是提示**值太大,实际值是**的错误. 具体忘了错误代码是什么了 ——! 经查询,这个是由于字符集设置的不是gbk的,导致导入时遇到中文字符出现的问题, 解决方法: 如果可以的话就把数 ...
- Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作
最近 PostgreSQL 15 版本正式发布了,新版本的各种特性和好处本文就不展开介绍了,主要介绍一下 Windows 环境下 PostgreSQL 大版本升级的方法,我们现在的几个数据库都是运行在 ...
- 分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据
分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 今天开发找我,说数据库insert不进数据,叫我看一下 他发了一个截图给我 然后我登录上服务器,发现了可疑的地方,而且这个数据库之前 ...
- Sqlserver2005日志文件太大,使其减小的方法
Sqlserver2005日志文件太大,使其减小的方法: 运行下面的三行 dbName为数据库名: backup log dbNamewith NO_LOG backup log dbNamewith ...
- Unity3D占用内存太大的解决方法
原地址:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大 ...
- 设置U盘为第一启动顺序
本文转载:http://u.diannaodian.com/Article/1004.html 盘安装系统的首要步骤就是设置U盘为第一启动顺序.下面电脑店官网就来说说到底如何来设置U盘启动顺序吧. ...
随机推荐
- String的拼接
1.直接定义字符串变量的时候赋值,如果表达式右边只有字符串常量,那么就是把变量存放在常量池里面. 2.new出来的字符串是存放在堆里面. 3.对字符串进行拼接操作,也就是做"+"运 ...
- win/zabbix_agent.conf
# This is a configuration file for Zabbix agent service (Windows) # To get more information about Za ...
- requests--重定向,序列化
重定向 默认情况下,除了 HEAD, Requests 会自动处理所有重定向.可以使用响应对象的 history 方法来追踪重定向. Response.history 是一个 Response 对象的 ...
- CSS3中的px,em,rem,vh,vw
1.px:像素,精确显示 2.em:继承父类字体的大小,相当于“倍”,如:浏览器默认字体大小为16px=1em,始终按照div继承来的字体大小显示,进场用于移动端 em换算工具:http://www. ...
- 微信小程序之页面打开数量限制
无论是在小程序还是APP中,打开一个页面其实就是创建了一个新的View对象,一层层叠加的.当点击页面的回退按钮就是把当前页面关闭. 这个过程中会涉及到一个问题,就是打开页面的数量.在某些设计下,比如一 ...
- 面试官:”准备用HashMap存1w条数据,构造时传10000会触发扩容吗?“
通常在初始化 HashMap 时,初始容量都是根据业务来的,而不会是一个固定值,为此我们需要有一个特殊处理的方式,就是将预期的初始容量,再除以 HashMap 的装载因子,默认时就是除以 0.75. ...
- CSS3做动物走路效果
CSS3做动物走路效果 采用的CSS3切换序列帧做 核心代码如下<pre>.game .role { width: 60px; height: 86px; position: absolu ...
- ng 引入query
ng 引入jquery 1.在项目中 npm install --save jquery 在对应组件中加入 import * as $ from "jquery"; 在angu ...
- CentOS升级Python2.6到Python2.7并安装pip[转载]
貌似CentOS 6.X系统默认安装的Python都是2.6版本的?平时使用以及很多的库都是要求用到2.7版本或以上,所以新系统要做的第一件事必不可少就是升级Python啦!在这里做个简单的升级操作记 ...
- 很好的OpenCV入门资料
https://files.cnblogs.com/files/mqingqing123/OpenCV%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B.rar