PostgreSQL与操作系统(OS)内核相关的几个参数

本文主要探讨PostgreSQL数据库与操作系统内核参数的相互关系,重点关注shared_buffers、max_connections及其对应的内核参数shmget和semget。在调整这些参数时,需要注意设置过大可能导致数据库启动失败。解决方案包括减小max_connections或增加内核参数,如semmni和semmns。同时,文章详细介绍了共享内存的使用情况,包括不同组件占用的内存估算。
摘要由CSDN通过智能技术生成

一、概述

PostgreSQL在postgresql.conf里面的配置参数有几个是和OS的内核参数紧密相关的,通常默认值是偏小的,但设置过大也会造成Postgres的启动失败。 

二、测试

1.测试环境

DB: postgres 9.1.3(之后版本这几个参数并未变动)
OS: CentOS 6.2 / Redhat(Ubuntu、Debian等linux系统也是一样)

2.内核参数文件位置

/proc/sys/kernel
/etc/sysctl.conf
[root@localhost ~]# sysctl -a|more
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.msgmax = 65536
kernel.msgmni = 2005
kernel.msgmnb = 65536
[postgres@localhost ~]$ cat /proc/sys/kernel/sem
250     32000   32      128
(semmsl  semmns  semopm  semmni)

2.1 shared_buffers VS shmget 

shared_buffers是共享内存的意思,如果该值超过系统的内存值(包括swap),会造成启动失败。

shmget是get share memory,它是创建一个共享内存的函数。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值