暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

不会PostgreSQL调优?这款开源工具送给你

alitrack 2021-04-02
716


数据库调优,需要专业知识,对于非DBA人士,有没有比较好的办法呢?有了PGTune,您只需要提供有关硬件配置的基本信息,PostgreSQL数据库在哪里运行。单击“生成”按钮后将计算结果。


那我们都需要提供哪些信息呢?

DB Version:PostgreSQL的版本

你不知道?那查下吧,

SELECT version();

OS Type:操作系统

Windows,Linux还是Mac OS?

DB Type:数据库类型

就是打算做什么用,有以下5种选择

  • Web application:网页程序

  • Online transaction processing systems,联机事务处理(OLTP)系统

  • Data warehouses,数据仓库

  • Desktop applications,桌面程序

  • Mixed type of applications:混合类型(以上两种或以上的组合)

Total Memory:总内存数


Number of CPUs,总CPU数

计算公式,

    CPUs = threads per core * cores per socket * sockets

    • threads per core:每核线程数

    • cores per socket:每个插座的核数,就是我们平时说几核CPU

    • sockets:CPU插座数

    Number of Connections, 总连接数

    这个比较难说,看具体业务场景,PostgreSQL默认100(实际可用97),一般web应用调高些,如果是数据仓库,则可以调低些

    Data Storage, 数据存储

    • SSD Storage:固态硬盘

    • Network(SAN)Storage:网络硬盘

    • HDD(Storage):机械硬盘


    生成结果,可以通过修改postgresql.conf,或者alter system命令来修改配置

    如果不是很熟悉的话,建议第二种方式,不用自己手工修改postgresql.conf而造成不必要的麻烦,毕竟执行命令要简单多了。

    PGTune基于给定硬件配置的最高性能来计算PostgreSQL的配置。它不是PostgreSQL优化设置的灵丹妙药(银弹)。许多设置不仅取决于硬件配置,还取决于数据库的大小,客户端的数量和查询的复杂性。

    如果要用于生产环境,系统也需要优化,建议听取专业DBA的意见。


    看看我的配置吧(2014年买的老苹果)

      # DB Version: 12
      # OS Type: mac
      # DB Type: dw
      # Total Memory (RAM): 16 GB
      # CPUs num: 4
      # Connections num: 100
      # Data Storage: ssd


      max_connections = 100
      shared_buffers = 4GB
      effective_cache_size = 12GB
      maintenance_work_mem = 2GB
      checkpoint_completion_target = 0.9
      wal_buffers = 16MB
      default_statistics_target = 500
      random_page_cost = 1.1
      work_mem = 10485kB
      min_wal_size = 4GB
      max_wal_size = 16GB
      max_worker_processes = 4
      max_parallel_workers_per_gather = 2
      max_parallel_workers = 4
      max_parallel_maintenance_workers = 2


        # DB Version: 12
        # OS Type: mac
        # DB Type: dw
        # Total Memory (RAM): 16 GB
        # CPUs num: 4
        # Connections num: 100
        # Data Storage: ssd


        ALTER SYSTEM SET
        max_connections = '100';
        ALTER SYSTEM SET
        shared_buffers = '4GB';
        ALTER SYSTEM SET
        effective_cache_size = '12GB';
        ALTER SYSTEM SET
        maintenance_work_mem = '2GB';
        ALTER SYSTEM SET
        checkpoint_completion_target = '0.9';
        ALTER SYSTEM SET
        wal_buffers = '16MB';
        ALTER SYSTEM SET
        default_statistics_target = '500';
        ALTER SYSTEM SET
        random_page_cost = '1.1';
        ALTER SYSTEM SET
        work_mem = '10485kB';
        ALTER SYSTEM SET
        min_wal_size = '4GB';
        ALTER SYSTEM SET
        max_wal_size = '16GB';
        ALTER SYSTEM SET
        max_worker_processes = '4';
        ALTER SYSTEM SET
        max_parallel_workers_per_gather = '2';
        ALTER SYSTEM SET
        max_parallel_workers = '4';
        ALTER SYSTEM SET
        max_parallel_maintenance_workers = '2';



        参考

        • https://pgtune.leopard.in.ua/#/

        • https://github.com/le0pard/pgtune


        如果有什么建议和意见,也欢迎留言,或者加我个人微信,



        麻烦点亮[看],🙏🙏🙏


        文章转载自alitrack,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论