CentOS中运行PostgreSQL需要修改的内核参数及配置脚本分享

PostgreSQL在CentOS上部署的时候,需要设置一些操作系统的参数,官方文档上列举了一些(传送门)。除了这些,还有一些其他的设置,如单个用户允许的最大进程数,单个进程的最大句柄数等,这些一般也需要调整,否则系统会在一些条件下出现问题,或者性能下降。下面从系统资源限制类和内存参数优化类来进行说明.

系统资源限制类

1.单个用户允许的最大进程数:linux系统默认是1024,如果PG的最大连接数超过1024,则实际的连接数会小于1024(PG的postmaster进程,checkpointer进程,bgwriter进程,WAL发送进程,日志进程等会占用几个进程数,所以给客户段的连接数会小于1024),超过的连接请求会报资源不够的错误信息.所以为了避免这种情况,需要调整PG的linux用户的可以使用的进程数,一般通过limit.conf进行配置.

2.单个进程可以打开的最大文件数:linux默认是1024,在SQL很复杂,打开很多表,或者访问很多分区时,会出现句柄数不够的错误.

内存参数优化类

1.vm.dirty_background_ratio:这个参数控制当系统内存写脏的比例达到多少时,会启动后台进程将buffer刷到磁盘.默认是10%,对于大内存的机器,如超过64G,10%的内存为6.4,一次把6.4G数据写入磁盘,会瞬间产生大量磁盘IO,使系统失去响应,影响其他进程.所以一般8G以上内存的机器,推荐设置为1%.

2.vm.dirty_background_types:这个参数与上面的类似,只不过这个参数可以设置内存脏掉的绝对值.着两个参数其中一个为0,则另外一个会起作用.

下面是配置这几个参数的脚本,在CentOS 6.x上测试OK.

代码如下:

#limit process to 4096 instead 1024,for we may have 1024+ connections
echo "postgres        soft    nproc           4096" >> /etc/security/lmits.conf
 
#for big query,pg may open more than 1024 files per session
echo "postgres        hard    nofile          65535" >> /etc/security/limits.conf
echo "postgres        soft    nofile          65535" >> /etc/security/limits.conf
 
#default is 10% of memory,to smooth the io peek value,
#set this to tune background process flush buffer more frequently
echo "vm.dirty_background_ratio=0" >> /etc/sysctl.conf
echo "vm.dirty_background_bytes=1024000000" >> /etc/sysctl.conf
 
#make the sysctl.conf setting take effect
sysctl -p
 
#make limit to take effect
/etc/init.d/sshd restart

(0)

相关推荐

  • CentOS 7下安装PostgreSQL 9.6的教程分享

    前言 PostgreSQL是一个强大开源的对象关系类型数据库系统,它能运行于几乎所有主要的操作系统,包括Linux.Unix(AIX.BSD.HP-UX.SGI IRIX.Mac OS.Solaris.Tru64).Windows OS.对于新的项目我是非常建议使用PostgreSQL.这里就简单的整理下CentOS下的安装过程. CentOS的源中自带有PostgreSQL,可以通过 yum list | grep postgresql 查看系统自带的版本,我这边看到的是9.2版本,个人还是比

  • CentOS7 PostgreSQL安装、配置、使用详解

    CentOS7 PostgreSQL安装 Install 安装 使用yum安装 yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm yum install postgresql94-server postgresql94-contrib 设置开机启动 systemctl enable postgresql-9.4.service systemctl start

  • Linux CentOS 7安装PostgreSQL9.3图文教程

    如题,本篇blog记录一下在Linux CentOS 7中安装PostgresSQL的整个过程以及数据库配置等,在Linux系统中,PostgreSQL的安装方式分两种,分别是: 1.二进制安装包安装 2.源码编译安装 由于我们没有什么特殊需求所在在此选择较为简单的方式--二进制安装包安装,二进制包安装的方法一般都是通过不同发行版本的Linux下的包管理器进行的,例如Debian和Ubuntu下是使用apt-get命令或aptitude命令来安装,命令如下: sudo apt-get insta

  • Linux CentOS 7源码编译安装PostgreSQL9.5

    之前的博客记录了通过rpm包的形式安装PostgreSQL 9.3(Linux CentOS 7 安装PostgreSQL 9.3(发行版本) ),本篇blog将记录一下通过源码编译的形式安装PostgreSQL 9.5. 下载 在postgresql的官方即可找到源码文件目录,地址如下:https://www.postgresql.org/ftp/source/,在下载列表中根据需求选择版本,如下图: 进入子目录后,可以看到文件列表: 如上图,可以看到提供了两种压缩格式,此处我们选择postg

  • CentOS中运行PostgreSQL需要修改的内核参数及配置脚本分享

    PostgreSQL在CentOS上部署的时候,需要设置一些操作系统的参数,官方文档上列举了一些(传送门).除了这些,还有一些其他的设置,如单个用户允许的最大进程数,单个进程的最大句柄数等,这些一般也需要调整,否则系统会在一些条件下出现问题,或者性能下降.下面从系统资源限制类和内存参数优化类来进行说明. 系统资源限制类 1.单个用户允许的最大进程数:linux系统默认是1024,如果PG的最大连接数超过1024,则实际的连接数会小于1024(PG的postmaster进程,checkpointe

  • Docker中运行PostgreSQL并推荐几款连接工具

    1 前言 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统.POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中.PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询.外键.触发器.视图.事务完整性.多版本并发控制等.同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型.函数.操作符.聚集函数.索引

  • 如何修改Linux内核参数vm.swappiness

    目录 修改Linux内核参数vm.swappiness 调整vm.swappiness的方法 了解vm.swappiness 使用交换 vm.swappiness 小结一下吧 总结 修改Linux内核参数vm.swappiness 内核参数vm.swappiness控制换出运行时内存的相对权重,参数值大小对如何使用swap分区有很大联系. 值越大,表示越积极使用swap分区,越小表示越积极使用物理内存. 默认值swappiness=60,表示内存使用率超过100-60=40%时开始使用交换分区.

  • java实现Linux(centos) 中docker容器下命令交互的代码(配置向导)

    开发需求: 因系统程序部署时,经常是拆分部署(多台机器) ,手工部署费时费力,且每次都要手工配置系统参数(系统提供配置向导). 如下图所示: 1)进行main容器 -> 2)执行系统配置向导 -> 3)选择服务器模式 -> 4) 选择web控制台....然后进行具体的服务器IP设置. 为了解放双手,用java实现了Linux(centos) 下docker 应用程序的命令交互. 具体代码如下: import java.io.*; /** * @author by dujiajun * @

  • CentOS 6.x系统升级Python到2.7版本的Shell脚本分享

    在CentOS 6.x上,默认自带的Python是2.6.x版本,这个版本的Python有点老了,比如"collections.OrderedDict"就是2.7才有的,而且著名的Python Web框架Django的新版(如:1.7)就不支持Python2.6,最低要求是2.7了.而一些公司或者共有云上的服务器就是使用CentOS6.x,所以也就有了升级Python到2.7的需求. 升级Python之前,需要先安装一些工具和软件库,否则后面安装Python或pip时可能出错. Pyt

  • 一个监控Squid运行进程数并自动重启的简洁Shell脚本分享

    复制代码 代码如下: #!/bin/sh while sleep 30 do SquidNum=`ps -ef|grep squid|grep -v grep|wc -l` #HttpNum=`netstat -an|grep 0.0.0.0:80|grep -v grep|wc -l` #80状态 if [ $SquidNum != 3 ] ; then /etc/rc3.duid start adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S` e

  • Centos中VNC远程桌面程序的安装与使用教程

    本文实例讲述了Centos中VNC远程桌面程序的安装与使用方法.分享给大家供大家参考,具体如下: 这里以centos 6.5为例 安装GNOME桌面环境 yum groupinstall "X Window System" "Desktop" CentOS安装Xfce桌面环境,可选 yum groupinstall Xfce 安装tigervnc yum install tigervnc-server tigervnc 设置远程登陆到gnome桌面的配置,再最后面加

  • 在CentOS中部署多节点Citus集群的详细步骤

    前言 本文主要介绍了关于CentOS中部署多节点Citus集群的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1.在所有节点执行以下步骤 Step 01 添加Citus Repostory # Add Citus repository for package manager curl https://install.citusdata.com/community/rpm.sh | sudo bash Step 02 安装Citus并且初始化DB # install

  • 在cmd中运行.py文件: python的操作步骤

    1 打开cmd, 不改变运行的目录: 输入python 空格  调试好的python文件路径 或者python 空格  将python文件拖入cmd中 2 打开cmd 输入要改变的路径盘 比如:E: (回车键) 输入路径languang\sublime\pythonTest.py 回车运行 以上这篇在cmd中运行.py文件: python的操作步骤就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 在CMD命令行中运行python脚本的方法

  • Pytorch中的VGG实现修改最后一层FC

    https://discuss.pytorch.org/t/how-to-modify-the-final-fc-layer-based-on-the-torch-model/766/12 That's because vgg19 doesn't have a fc member variable. Instead, it has a (classifier): Sequential ( (0): Dropout (p = 0.5) (1): Linear (25088 -> 4096) (2)

随机推荐