如何验证查询命中的磁盘

Gow*_*mar 5 postgresql monitoring postgresql-9.4

我想知道如何通过selectCentOS 6.5 上的 PostgreSQL 9.4 中的查询来验证磁盘命中。另外请让我知道在多大程度上启用log_statement_statsinpostgresql.conf将帮助我。

当我将上述参数切换到on.

例如,请检查日志片段:

2016-02-03 14:12:45 PST LOG:  statement: select * from test_stats_collect ;
2016-02-03 14:12:45 PST LOG:  QUERY STATISTICS
2016-02-03 14:12:45 PST DETAIL:  ! system usage stats:
        !       0.069489 elapsed 0.027995 user 0.002999 system sec
        !       [0.131979 user 0.146977 sys total]
        !       0/0 [3280/26440] filesystem blocks in/out
        !       0/5 [19/4866] page faults/reclaims, 0 [0] swaps
        !       0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
        !       20/116 [125/174] voluntary/involuntary context switches
Run Code Online (Sandbox Code Playgroud)

jja*_*nes 3

log_statement_stats 报告的数字直接来自getrusage系统调用(假设您的操作系统有一个)。方括号中的数字是迄今为止会话的总数,其他数字是语句开始和停止之间的增量。

文件系统块大小标准化为与 PostgresSQL 块大小相同。它采用操作系统报告的任何块大小单位getrusage

  • 是的,这些是针对后端(您连接到的进程)的整个生命周期的,这与您的会话的生命周期相同。您的特定查询似乎没有读取或写入,“0/0”。它所需要的一切都已经在记忆中了。顺便说一句,在我的 Linux 机器上,一个块似乎是 512 字节。 (2认同)