转载自:https://blog.csdn.net/huangwenyi1010/article/details/72853785

解决问题

前言

PostgreSQL的配置参数作为性能调优的一部分,起着重要的位置。有时候一个简单的配置参数就会觉得应用的性能。因此有必要简单了解下其相关的配置参数。

查询Linux服务器配置

在进行性能调优之前,需要清楚知道服务器的配置信息,比如说 CPU,内存,服务器版本等信息。

查询系统版本信息

root@ubuntu160:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty

Linux查看物理CPU个数、核数、逻辑CPU个数

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

查询内存信息

cat /proc/meminfo

PostgreSQL配置参数查看方式

--查看所有数据库参数的值
show all; --查询某一个具体参数
show 选项名;

PostgreSQL性能调优重要的配置参数

选项 默认值 说明 是否优化 原因
max_connections 100 允许客户端连接的最大数目 因为在测试的过程中,100个连接已经足够
fsync on 强制把数据同步更新到磁盘 因为系统的IO压力很大,为了更好的测试其他配置的影响,把改参数改为off
shared_buffers 24MB 决定有多少内存可以被PostgreSQL用于缓存数据(推荐内存的1/4) 在IO压力很大的情况下,提高该值可以减少IO
work_mem 1MB 使内部排序和一些复杂的查询都在这个buffer中完成 有助提高排序等操作的速度,并且减低IO
effective_cache_size 128MB 优化器假设一个查询可以用的最大内存,和shared_buffers无关(推荐内存的1/2) 设置稍大,优化器更倾向使用索引扫描而不是顺序扫描
maintenance_work_mem 16MB 这里定义的内存只是被VACUUM等耗费资源较多的命令调用时使用 把该值调大,能加快命令的执行
wal_buffer 768kB 日志缓存区的大小 可以降低IO,如果遇上比较多的并发短事务,应该和commit_delay一起用
checkpoint_segments 3 设置wal log的最大数量数(一个log的大小为16M) 默认的48M的缓存是一个严重的瓶颈,基本上都要设置为10以上
checkpoint_completion_target 0.5 表示checkpoint的完成时间要在两个checkpoint间隔时间的N%内完成 能降低平均写入的开销
commit_delay 0 事务提交后,日志写到wal log上到wal_buffer写入到磁盘的时间间隔。需要配合commit_sibling 能够一次写入多个事务,减少IO,提高性能
commit_siblings 5 设置触发commit_delay的并发事务数,根据并发事务多少来配置 减少IO,提高性能

PostgreSQL配置参数修改的方式

1.修改配置文件

在配置文件C:\PostgreSQL\data\pg96\postgresql.conf 中直接修改,修改前记得备份一下原文件,因为你不知道意外和明天不知道哪个会先来。修改完成之后,记得重启数据库哦。

2.命令行的修改方式

    ALTER SYSTEM SET configuration_parameter { TO | = } { value | 'value' | DEFAULT }

例如:我们现在要修改 maintenance_work_mem

--参数
show all; show maintenance_work_mem;
--注意这里的设置不会改变postgresql.conf,只会改变postgresql.conf
ALTER SYSTEM SET maintenance_work_mem= 1048576; --重启数据库
show maintenance_work_mem; --取消postgresql.auto.conf的参数设置
ALTER SYSTEM SET maintenance_work_mem= default;

PostgreSQL之性能优化(转)的更多相关文章

  1. [转帖]PostgreSQL 参数调整(性能优化)

    PostgreSQL 参数调整(性能优化) https://www.cnblogs.com/VicLiu/p/11854730.html 知道一个 shared_pool 文章写的挺好的 还没仔细看 ...

  2. PostgreSQL 参数调整(性能优化)

    昨天分别在外网和无外网环境下安装PostgreSQL,有外网环境下安装的相当顺利.但是在无外网环境下就是两个不同的概念了,可谓十有八折.感兴趣的同学可以搭建一下. PostgreSQL安装完成后第一件 ...

  3. 基于linux(CentOS7)数据库性能优化(Postgresql)

    基于CentOS7数据库性能优化(Postgresql) 1.  磁盘 a)         Barriers IO i.              通过查看linux是否加载libata,确定是否开 ...

  4. MongoDB 性能优化五个简单步骤

    MongoDB 一直是最流行的 NoSQL,而根据 DB-Engines Ranking 最新的排行,时下 MongoDB 已经击败 PostgreSQL 跃居数据库总排行的第四位,仅次于 Oracl ...

  5. MySQL性能优化的21个最佳实践

    http://www.searchdatabase.com.cn/showcontent_38045.htm MySQL性能优化的21个最佳实践 1. 为查询缓存优化你的查询 大多数的MySQL服务器 ...

  6. "HybridDB · 性能优化 · Count Distinct的几种实现方式” 读后感

    原文地址:HybridDB · 性能优化 · Count Distinct的几种实现方式 HybridDB是阿里基于GreenPlum开发的一款MPP分析性数据库,而GreenPlum本身基于Post ...

  7. 《MySQL性能优化篇》阅读笔记

    建表的时候,不要用null赋默认值,如:字符串的设置'',数据类型的设为0,不要将null设为默认值. 在MySQL中没有 full [outer] join,用union代替 各种 JOIN SQL ...

  8. PostgreSQL的参数优化

    硬件和软件信息 CPU: Intel(R) Xeon(R) CPU E5-2683 v3 @ 2.00GHz 2 sockets / 28 cores / 56 threads内存: 256GB of ...

  9. MySQL分页查询的性能优化

    MySQL limit分页查询的性能优化 Mysql的分页查询十分简单,但是当数据量大的时候一般的分页就吃不消了. 传统分页查询:SELECT c1,c2,cn… FROM table LIMIT n ...

随机推荐

  1. python3打包成exe---pyinstaller方法

    前言: 主要介绍python3的pyinstaller打包方法 pyinstaller安装参考地址:http://www.pyinstaller.org/ pywin32的下载地址:https://s ...

  2. nodeJS之Cookie和Session(一)

    nodeJS之Cookie和Session(一) 一:Cookie   HTTP是一个无状态协议,客户端每次发出请求时候,下一次请求得不到上一次请求的数据,那么如何将上一次请求和下一次请求的数据关联起 ...

  3. nginx-haproxy-lvs功能和性能对比 nginx - max-fail + 调度算法

    优点(性能和功能两方面分析) 缺点 lvs 工作在4层,可以对http,MySQL等服务负载均衡.负责流量的分发,对io,cpu,mem的消耗少 功能比较少,没有正则匹配的功能 nginx 工作在7层 ...

  4. 创建一个宽高成比例的弹性div盒子

    这里先提供一种,有更好的方法再补充. demo代码如下: <!DOCTYPE html> <html lang="en"> <head> < ...

  5. vue2.0中使用less

    第一部分:Less语言 与上一篇<vue2.0中使用sass>介绍的Sass语言一样,Less语言也是一种CSS的扩展语言,增加了变量.混合(minin).函数等功能,让CSS更易维护.方 ...

  6. 在平衡树的海洋中畅游(四)——FHQ Treap

    Preface 关于那些比较基础的平衡树我想我之前已经介绍的已经挺多了. 但是像Treap,Splay这样的旋转平衡树码亮太大,而像替罪羊树这样的重量平衡树却没有什么实际意义. 然而类似于SBT,AV ...

  7. Python代码转c#部分参考样例

    最近在做一部分Pyhton代码转c#代码的工作,以下案例亲自都测试过,现整理出来希望对有帮助的同学提供参考: Python | C# *:first-child{margin-top:0 !impor ...

  8. spring boot 实现密码连续输入错误5次,限制十分钟内不能进行登录

    我们要实现的就是,密码连续输入错误5次,就限制用户十分钟不能进行登录. 大致的流程图 数据库设计如下 DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ...

  9. Ionic 入门与实战之第二章第一节:Ionic 环境搭建之开发环境配置

    原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第一节,主要对 Ionic 的开发环境配置做了简要的介绍,本文介绍的开发环境为 Mac 系统,Windows 系统基本类似,少许 ...

  10. linux下向一个文件中的某行插入数据的做法

    sed -i 'ni\x' test.file        表示向test.file文件里的第n行的前面添加x内容sed -i 'na\x' test.file       表示向test.file ...