• lightdb性能分析之ltcenter


    • 查看整体情况
    ltcenter top -h 1.2.3.4 -U postgres production_db

       如果内存、activity这些信息缺失,则需要检查plperlu依赖已经安装,它会执行一些初始配置。

      create extension plperlu;

      pgcenter config -i -d postgres -U postgres

     参考:https://github.com/lesovsky/pgcenter/blob/master/doc/examples.md

    https://github.com/lesovsky/pgcenter/blob/master/doc/pgcenter-top-readme.md

    • profile某个特定backend(LightDB PSH提供类似功能,可以分析过去的运行情况)
    ltcenter profile -h 127.0.0.1 -p 5432 -P 99846 postgres
    ltcenter profile -h 127.0.0.1 -p 5432 -P 99846 -F 50(指定频率,1/50,表示每隔20秒采用) postgres

      看起来不直接,ltcenter profile一个很重要的作用是如果某个SQL执行慢,执行计划各种优化后还没有足够的思路,就可以通过它分析SQL的主要瓶颈,例如:

    ------ ------------ -----------------------------
    % time      seconds wait_event                     query: update pgbench_accounts set abalance = abalance + 100;
    ------ ------------ -----------------------------
    72.15     30.205671 IO.DataFileRead
    20.10      8.415921 Running
    5.50       2.303926 LWLock.WALWriteLock
    1.28       0.535915 IO.DataFileWrite
    0.54       0.225117 IO.WALWrite
    0.36       0.152407 IO.WALInitSync
    0.03       0.011429 IO.WALInitWrite
    0.03       0.011355 LWLock.WALBufMappingLock
    ------ ------------ -----------------------------
    99.99     41.861741
    这样就可以知道语句主要花时间在哪里。
    • 采集数据库负载情况,保存到特定文件。和tshark和tcpdump一样。
    [lightdb@lightdb1 ~]$ ltcenter record -f ltcenter_stats.tar -h 127.0.0.1 -p 5432 postgres
    INFO: some statistics is not supported by the current version of Postgres and will be skipped
    INFO: recording to ltcenter_stats.tar
    ^Cgot interrupt
    [lightdb@lightdb1 ~]$ ll | grep ltcenter_stats.tar 
    -rw-------  1 lightdb lightdb    17950208 Jan 16 16:51 ltcenter_stats.tar

      收集完成后,可以通过pgcenter report -f /tmp/stats.tar --options进行分析,具体选项如下:

    [lightdb@lightdb1 ~]$ ltcenter report --help
    'ltcenter report' reads statistics from file and prints reports.
    
    Usage:
     ltcenter report [OPTIONS]...
    
    Options:
     -f, --file FILE        read stats from file (default: ltcenter.stat.tar)
     -s, --start TIMESTAMP        starting time of the report (format: [YYYY-MM-DD] HH:MM:SS)
     -e, --end TIMESTAMP        ending time of the report (format: [YYYY-MM-DD] HH:MM:SS)
     -o, --order COLNAME        order values by column
         --desc            use descendant order (default)
         --asc            use ascendant order
     -g, --grep COLNAME:PATTERN    filter values in specfied column (format: colname:filtertext)
     -l, --limit INT        print only limited number of rows per sample (default: unlimited)
     -t, --strlimit INT        maximum string size to print (default: 32, 0 disables)
    
    Report options:
     -A, --activity            show pg_stat_activity statistics
     -R, --replication        show pg_stat_replication statistics
    
     -T, --tables            show pg_stat_user_tables statistics
     -I, --indexes            show pg_stat_user_indexes and pg_statio_user_indexes statistics
     -S, --sizes            show statistics about tables sizes
     -F, --functions        show pg_stat_user_functions statistics
     -W, --wal                show pg_stat_wal statistics
     -D, --databases SELECTOR    show pg_stat_database statistics, use additional selector to choose stats:
                    'g' - general; 's' - sessions
     -X, --statements SELECTOR    show pg_stat_statements statistics, use additional selector to choose stats:
                    'm' - timings; 'g' - general; 'i' - io; 't' - temp files io; 'l' - local files io; 'w' - wal statistics
     -P, --progress SELECTOR    show pg_stat_progress_* statistics, use additional selector to choose stats:
                    'v' - vacuum; 'c' - cluster; 'i' - create index; 'a' - analyze; 'b' - basebackup; 'y' - copy
    
     -d, --describe            show statistics description, combined with one of the report options
    
    General options:
     -?, --help        show this help and exit

      除非分析很具体已知问题,针对性收集,否则不如PWR那么事半功倍。

  • 相关阅读:
    P2910 [USACO08OPEN]寻宝之路Clear And Present Danger 洛谷
    P2212 [USACO14MAR]浇地Watering the Fields 洛谷
    Python字体颜色设置
    Python小游戏 -- 猜数字
    数据结构 -- 链表&双向链表
    数据结构 -- 队列 & 循环队列 -- 数组实现
    数据结构 -- 栈的数组实现法
    洛谷P1036 选数
    如何让c语言使用结构体近似模拟c++中的类
    对c语言回调函数的理解
  • 原文地址:https://www.cnblogs.com/zhjh256/p/15810713.html
Copyright © 2020-2023  润新知