跳转到主要内容

PostgreSQL活动查看工具

项目描述

pg_view:Postgres实时活动查看工具
=======

.. image:: https://travis-ci.org/zalando/pg_view.svg?branch=master
:target: https://travis-ci.org/zalando/pg_view
:alt: 构建状态
.. image:: https://img.shields.io/pypi/dw/pg-view.svg
目标::target: https://pypi.python.org/pypi/pg-view
替代文本:PyPI 下载
.. 图像:: https://img.shields.io/pypi/l/pg-view.svg
目标::target: https://pypi.python.org/pypi/pg-view
替代文本:许可证


简介
--------

**pg_view** 是一款强大的命令行工具,可以提供您 PostgreSQL 数据库和系统指标的详细、实时视图。它将 sar 或 iostat 常见显示的指标与 PostgreSQL 的进程活动视图的输出相结合,并以易于理解的方式呈现全局和每个进程的统计数据。

pg_view 显示以下类型的数据

- 每个进程的统计数据,结合后端和 autovacuum 进程的 ``pg_stat_activity`` 视图输出
- 全局系统统计信息
- 每个分区信息
- 内存统计信息

在监控系统负载、查询锁定和 I/O 利用率进行长时间数据迁移时,pg_view 特别有用。如果您全天候运行服务器并希望实现零停机时间,它也非常有用。更多信息请访问 `tech.zalando.com <https://tech.zalando.com/blog/getting-a-quick-view-of-your-postgresql-stats/>`_。

目录
--------

.. 目录:
:local
:深度: 1
:反向链接: 无

==============
安装和配置
==============

要运行 pg_view,您需要

- Linux 2.6
- Python >= 2.6
- psycopg2
- curses

默认情况下,pg_view 假设它可以连接到本地 PostgreSQL 实例(用户为 postgres,无密码)。某些系统可能需要您更改您的 pg_hba.conf 文件或将密码设置在 .pgpass 中。您可以使用 -U 命令行选项或在配置文件中设置用户键来覆盖默认用户名(见下文)。

==============
pg_view 的工作原理
==============

pg_view 每秒查询一次系统/进程信息文件。它还会查询文件系统以获取 postgres 数据目录和 xlog 使用统计信息。请注意,后者功能可能会给您的磁盘子系统增加额外负载。

.. 图像:: https://raw.github.com/zalando/pg_view/master/images/pg_view_screenshot_new.png
替代文本:pg_view 截图

==============
连接参数
==============

默认情况下,pg_view 通过执行以下步骤(按顺序)尝试自动检测同一主机上运行的 PostgreSQL 集群:

- 读取 /proc/ 文件系统并检测 postmaster 进程的 pid 文件
- 从 /proc/pid/cwd 中的符号链接获取工作目录
- 读取 PostgreSQL 版本的 PG_VERSION(如果不存在,则假设它不是 PostgreSQL 目录,并跳过)
- 尝试从 /proc/net/unix、/proc/net/tcp 和 /proc/net/tcp6 收集进程正在监听的套接字。如果失败,并且您使用的是 9.1 或更高版本,则从 postmaster.pid 读取连接参数
- 检查所有参数,选择第一个允许其建立连接的参数
- 如果 pg_view 无法获取端口/主机或端口/套接字目录对,则退出

如果程序无法使用上述算法检测您的连接参数,则可以使用 -c 选项提供的配置文件手动指定这些参数。该文件应包含一个或多个部分,每个部分包含一个键 = 值对。

每个部分的标题代表数据库集群名称(此名称仅用于显示目的)。dbname 参数默认为 `postgres`,指定要连接的实际数据库名称。键值对应包含连接参数。

**有效的键有:**

- **host**:数据库服务器的主机名或 IP 地址,或 unix_socket_directory 的路径
- **port**:数据库服务器监听的端口
- **user**:数据库角色名称

特殊的 'DEFAULT' 部分包含适用于所有数据库集群的参数,如果数据库特定的部分中缺少相应的参数。例如:

[DEFAULT]
port=5435

[testdb]
host=localhost

[testdb2]
host=/tmp/test

[testdb3]
host=192.168.1.0
port=5433
dbname=test

读取此文件后,应用程序将尝试使用端口 5435(数据库 postgres)连接到 testdb 和 testdb2 集群,并使用数据库名称 `test` 端口 5433 连接到 testdb3。

如果自动检测代码对您有效,您可以通过指定数据库名实例(在大多数情况下,它将匹配$PGDATA的最后部分)并使用``-i``命令行选项来选择单个数据库。如果有多个具有相同名称的实例,您还可以使用``-V``指定所需的PG版本。

==============
使用方法
==============

您可以使用``pg_view --help``获取可用配置选项的简短描述

pg_view支持三种输出方法

- ncurses(默认)
- 控制台(``-o console``)
- JSON(``-o json``)

一些选项的描述

- **内存**
- **as**(CommittedAs):在最坏情况下存储工作负载所需的内存总量(即,如果所有应用程序在启动时实际分配了它们请求的所有内存)。
- **dirty**:等待写入磁盘的总内存量。值越高,在刷新时需要等待的时间越长。
- **limit**:可以物理分配的最大内存量。如果内存超过限制,您将开始看到“内存不足”错误,这将导致PostgreSQL关闭。
- 对于其他参数的解释,请参阅`Linux内核文档 <http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/proc.txt>`_。
- **分区**
- **fill**:向相应目录(``/data``或``/pg_xlog``)添加新数据的速率。
- **path_size**:相应PostgreSQL目录的大小。
- **total, left, read, write**:可用和分配的磁盘空间量,以及给定分区上的读取和写入速率(MB/s)。写入速率与填充速率不同,因为它考虑整个分区,而不仅仅是Postgres目录。它还显示数据修改。以10MB/s速率删除文件将显示为正写入速率。
- **type**:包含数据库数据(数据)或WAL(xlog)。
- **until_full**:当前分区耗尽空间前剩余的时间,*如果*我们只考虑对相应数据目录(``/data``或``/pg_xlog``)的写入。此列仅在警告(3小时)或关键(1小时)条件下显示,并且只考虑瞬时写入。如果单个进程在100GB剩余空间中以100MB/s的速率写入两个秒,在这两个秒内将显示关键状态。
- **postgres进程**
- **age**:进程启动以来的时间长度。
- **db**:进程运行的数据库。
- **query**:进程执行的查询。
- **read, write**:从分区读取或写入的数据量(MB/s)。
- **s**:进程状态。``R`` - '运行',``S`` - '睡眠',``D`` - '不可中断睡眠';有关详细信息,请参阅``man ps``。
- **type**:系统进程(自动清理启动器、记录器、归档器等)或执行查询的进程(后端或自动清理)。默认情况下,仅显示curses输出模式中的用户进程(按's'添加系统进程)。控制台模式中显示系统进程和用户进程。
- **utime, stime, guest**:进程对CPU资源的消耗。PostgreSQL后端无法使用超过一个CPU,因此这里显示单个CPU时间的百分比。
- **系统**
- **ctxt**:系统中的上下文切换次数。
- **iowait**:等待I/O的CPU资源百分比。
- **run, block**:运行和等待的进程数量。
- 对于其他参数,请参阅man 5 proc并查找/proc/stat。

==============
热键
==============

- **a**:自动隐藏来自PostgreSQL输出的字段。启用此选项将隐藏以下字段:``type``、``s``、``utime``、``stime``、``guest``。
- **f**: 立即冻结输出。再次按“f”键恢复。
- **h**: 显示帮助屏幕。
- **u**: 切换显示测量单位。

==============
释放
==============

$ ./release.sh <新版本号>

==============
贡献
==============

pg_view 欢迎贡献;只需发起一个pull request。

==============
许可证
==============

`Apache 2.0 <https://apache.ac.cn/licenses/LICENSE-2.0>`_

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

pg-view-1.4.1.tar.gz (43.8 kB 查看散列值)

上传时间

支持