• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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; 
    

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

    该表格来自网上大神整理的:

    选项 默认值 说明 是否优化 原因
    max_connections 100 允许客户端连接的最大数目 因为在测试的过程中,100个连接已经足够
    fsync on 强制把数据同步更新到磁盘 因为系统的IO压力很大,为了更好的测试其他配置的影响,把改参数改为off
    shared_buffers 24MB 决定有多少内存可以被PostgreSQL用于缓存数据(推荐内存的1/4,不超过内存的1/2) 在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;

    好的,那我们来

    cd /home/postgres/pgsql/data
    cat postgresql.conf
    

    superuser_reserved_connections = 3
    unix_socket_directory = '/var/lib/pgsql/current/data/unix_socket'
    unix_socket_permissions = 0700
    log_min_duration_statement = 10000ms
     
    deadlock_timeout = 5s
    track_activity_query_size = 10000
    stats_temp_directory = 'pg_stat_tmp'
     
    autovacuum = on
    log_autovacuum_min_duration = 0
    shared_preload_libraries = 'pg_stat_statements'
    pg_stat_statements.max = 10000
    pg_stat_statements.track = all
     
    track_activities = on
    track_counts = on
    track_io_timing = on 
     
    #log parameter
    log_destination = 'csvlog'
    logging_collector = on
    log_directory = 'pg_log'
    log_truncate_on_rotation = on
    log_rotation_age = 1d
    log_rotation_size = 10MB
    log_checkpoints = on
    log_lock_waits = on
     
    #性能参数调整
     
    shared_buffers = 16384MB 
    temp_buffers = 1024MB 
    work_mem = 2048MB 
    maintenance_work_mem = 4096MB

    保存和重启。因为我的是本地测试的机器并不是最后线上的,最后线上的一定会这么用的。

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • PostgreSQL 性能优化之服务器参数配置操作
    • PostgreSQL归档配置及自动清理归档日志的操作
    • postgresql安装及配置超详细教程
    • Postgresql的日志配置教程详解
    • PostgreSQL 逻辑复制 配置操作
    • 基于PostgreSQL pg_hba.conf 配置参数的使用说明
    • PostgreSQL 自动Vacuum配置方式
    上一篇:postgresql SQL语句变量的使用说明
    下一篇:postgresql 中的参数查看和修改方式
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    postgresql 性能参数配置方式 postgresql,性能,参数,配置,