PG数据库部署linux参数调整

PG数据库部署linux参数调整

概述

为了使PostgreSQL数据库获得最佳性能,需要正确定义操作系统参数。如果操作系统内核参数配置不当,可能会导致数据库服务器性能下降。因此,必须根据数据库服务器及其工作负载配置这些参数。主要是指在Linux系统中针对业务服务应用而进行的系统内核参数调整。

1 配置方法

执行vim /etc/sysctl.conf,需要调整的参数添加

-a   显示所有的系统参数

-p   从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

2 数据库关心的OS内核参数

2.1 信号量 kernel.sem

PostgreSQL 每16个进程一组, 每组需要17个信号量。第一个参数必须大于等于17。最后一个参数是连接数除以16.

kernel.sem = 250 162500 250 650

第一个参数每个信息集中有多少信号量

第二个参数一共有多少个信号量,等于第一个*第四个

第四个参数有多少个信号集

第三个参数同一个操作,可以操作最多的信号量,可以和第一个参数。

2.2 大叶内存vm.nr_hugepages(疑问)

方法一

vm.nr_hugepages = shared buffer/2M 

建议shared buffer设置超过64GB时 使用大页,页大小 /proc/meminfo Hugepagesize。有多少个2M内存。

方法2

vm.nr_hugepages = 66536

2.3 关闭swap交换分区

vm.swappiness = 0           

#  关闭交换分区

2.4 疑问区(讲的都不一样)

vm.overcommit_memory=2          # 默认0,申请内存可以超过物理内存总数。oom-killer 杀进程。2不要超分配的策略。

vm.overcommit_ratio=50        # 分配内存不能超过,物理内存*百分比+swap   128G 16G  85%左右比较合适 最多分配124GB

vm.dirty_background_ratio=1  # 超过1% 在后台刷

vm.dirty_ratio=2              # 超过2%开始刷

3 资源限制

vim /etc/security/limits.conf 

  noproc 是代表最大进程数
        nofile 是代表最大文件打开数 

 memlock是代表锁定内存大小

core文件的作用:

  当程序崩溃时,内核有可能把该程序当前内存映射到core文件中,方便程序员找到程序出现问题的地方,最常出现的,几乎所有C程序员都出现过的“段错误”了。也是最难查出问题原因的一个错误

core文件是什么:

 核心文件(core file),也称为核心转存(core dump),是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。这种信息往往用于调试

* soft    nofile  1024000       #表示任何一个用户可以打开的最大的文件描述符数量      

* hard    nofile  1024000           

* soft    nproc   unlimited             #表示任何一个用户可以打开的最大的进程数

* hard    nproc   unlimited           

* soft    core    unlimited           

* hard    core    unlimited           

* soft    memlock  unlimited           

* hard    memlock  unlimited

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值