PostgreSQL活动视图实用程序

pg-view的Python项目详细描述


pg_view:postgres实时活动视图实用工具图片::https://travis-ci.org/zalando/pg嫒u view.svg?branch=master
:target:https://travis ci.org/zalando/pg嫒view
:alt:build status
。图片::https://img.shields.io/pypi/dw/pg view.svg
:目标:https://pypi.python.org/pypi/pg view
:alt:pypi downloads
…图片::https://img.shields.io/pypi/l/pg view.svg
:目标:https://pypi.python.org/pypi/pg view
:alt:license



intro
--

**pg view**是一个强大的命令行工具,它提供了PostgreSQL数据库和系统Metri的详细实时视图。反恐精英。它将sar或iostat通常显示的指标与postgresql进程活动视图中的输出相结合,以易于解释的方式显示全局和每个进程的统计信息。

pg-u视图显示这些类型的数据:

-per-process统计信息,并结合"pg-stat"活动。vity``查看后端进程和自动真空进程的输出
-全局系统状态
-每个分区的信息
-内存状态

pg\u视图在监视长时间数据迁移期间的系统负载、查询锁和I/O利用率时特别有用。当您全天候运行服务器并以零停机时间为目标时,它也很有用。请访问"tech.zalando.com<;https://tech.zalando.com/blog/getting-a-quick-view-of-your-postgresql-stats/>;` `.


目录
--


。内容:
:本地:
:深度:1
:反向链接:无









安装和配置的安装和配置的安装和配置的安装和配置的安装和配置的安装和配置的安装和配置的安装和配置的安装和配置的安装和配置的安装和配置的安装和配置的安装和配置


:Linux 2.6
-python>;=2.6
-psycopg2
-psycopg2.6
-psycopg2
>

:本地:
:默认情况下,pg pg u视图默认情况下,假设它可以用用户postgres连接到本地postgresql实例,而不需要密码。有些系统可能要求您更改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
:alt:pg_view screenshot

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

-读取/proc/filesystem并检测postmaster进程的pid文件
-从/proc/pid/cwd的symlink获取工作目录
-读取postgresql版本的pg_版本(如果不存在,假设它不是postgresql目录,并跳过)
-尝试从/proc/net/unix、/proc/net/tcp和/proc/net/tcp6收集进程正在侦听的所有套接字。如果失败,并且您使用的是9.1或更高版本,则从postmaster.pid中读取连接参数
-检查所有参数,选择第一个允许它建立连接的参数
-如果pg_view无法获取port/host或port/socket_目录对,则在program无法使用上面的算法检测您的连接参数,您可以使用-c选项提供的配置文件手动指定这些参数。此文件应包含一个或多个节,每个节都包含一个key=value对。

dbname参数默认为"postgres",并指定要连接到的数据库的实际名称。关键值pairs应包含连接参数。

**有效键为:*

-**主机**:主机名或IP地址,或数据库服务器的Unix套接字目录路径
-**端口**:数据库服务器侦听的端口
-**用户**:数据库角色名


如果数据库特定部分缺少相应的参数,则节包含应用于每个数据库群集的参数。例如:

[默认值]
端口=5435

[testdb]
host=localhost

[testdb2]
host=/tmp/test

[testdb3]
host=192.168.1.0
端口=5433
dbname=test

rt 5435(database postgres)连接到testdb和testdb2集群,并使用数据库名称"test"端口5433连接到testdb3。

$pgdata的最后一个组件),带有`-i``命令行选项。如果有多个具有相同名称的实例,您还可以使用`-v```指定所需的pg版本。


==
用法
==


端口三种输出方法:

-ncurses(默认值)
-console(``-o console``)
-json(``-o json``)

某些选项的说明:

-**内存**
-**为**(committedas):在最坏情况下存储工作负载所需的内存总量(也就是说,如果所有的应用程序都实际分配了它们在启动过程中要求的所有内存)。
-**脏**:等待写入磁盘的内存总量。值越高,刷新期间等待的时间就越多。
-**limit**:可以物理分配的最大内存量。如果内存超过限制,您将看到"内存不足"错误,这将导致PostgreSQL关闭。
-有关其他参数的说明,请参阅"Linux内核文档"lt;http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/documentation/filesystems/proc.txt>;`.
-**分区**
-**填充**:将新数据添加到相应目录的速率(``/data``或`/pg\u xlog```)。
-**路径大小**:对应postgresql目录的大小。
-**总计、左、读、写**:磁盘空间容量e可用和已分配,以及给定分区上的读写速率(MB/s)。写速率不同于填充速率,因为它考虑的是整个分区,而不仅仅是postgres目录。此外,它还显示了数据修改。以10MB/s的速率删除文件将显示为正写入速率。
-**类型**:包含数据库数据(data)或wal(xlog)。
-**直到"已满"为止**:当前分区将耗尽空间之前的剩余时间,*如果*我们只考虑写入相应的DAta目录(``/data``或``/pg\u xlog``)。此列仅在警告(3h)或严重(1h)情况下显示,并且仅考虑瞬时写入。如果一个进程在剩余100GB的分区上写入100MB/s的时间只有两秒,那么它将在这两秒内显示一个临界状态。
-**postgres进程**
-**age**:进程启动后的时间长度。
-**db**:进程运行的数据库。
-**查询**:进程执行的查询。
-**读、写**:从分区读取或写入的数据量(MB/s)。
-**s**:进程状态。`` r`-'运行'、``s`-'睡眠'、``d`-'不间断睡眠';有关详细信息,请参阅``man ps`'。
-**类型**:系统进程(自动真空发射器、记录器、存档器等)或进程执行查询(后端或自动真空)。默认情况下,只有用户进程以curses输出模式显示(按"s"添加系统进程)。系统进程和用户进程都以控制台模式显示。
-**utime、stime、guest**:进程的CPU资源消耗。PostgreSQL后端不能使用多个CPU,因此此处显示单个CPU时间的百分比。
-**系统**
-**CTXT**:系统中上下文开关的数量。
-**IOWAIT**:等待I/O的CPU资源的百分比。
-**运行,块**:RU的数量nning和waiting进程。
-有关其他参数,请参阅man 5 proc并查找/proc/stat.


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

-**a**:从PostgreSQL输出中自动隐藏字段。打开此选项将隐藏以下字段:``type``、``s`、``utime`、``stime`、``guest`。
-**f**:立即冻结输出。第二次按``f```键继续。
-**h**:显示帮助屏幕。
-**u**:切换显示测量单位。


=========
=====
======
===
==
=
=>
=>$./release.sh<;new-version>;
>
=========
===============
==============================================

pg_ View欢迎您的贡献;只需发出请求即可。


====
许可证
==
=

标签:

  • 实用程序
  • 目录
  • view
  • 视图
  • 数据库
  • 参数
  • 进程
  • postgresql
  • 系统
  • pg
  • 欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    java中不同http客户端超时时间单位的重要性   java数据[i++]=data[i++]*2结果令我惊讶   java Quartz在使用spring的hibernate中执行事务时发生异常   java如何将我的对象传递给另一个类   java嵌套布局奇怪的问题   当使用javax时,有一种方法可以通过策略定义自定义订单。坚持不懈OrderBy注释?   xml Java DOM getElementByID   java使用intent将视图列表传递给另一个片段   带构造函数的Java枚举。通过构造函数参数获取值的最佳方法   java为什么不在单线程中执行此通量?   如何将JavaScript字符串传递给Nashorn引擎而不是Java字符串?   java二进制XML文件行#17:膨胀类片段时出错   java如何使用Seekbar值作为int变量?   java我想从数据存储中进行选择,但它不起作用   java如何处理幻灯片中的多分辨率图像?   java这意味着什么?类型不匹配:无法从列表<对象和可比<?>&可序列化>以列出<对象>“   java我如何让这个猜谜游戏发挥作用?   java将ZipInputStream传递给DocumentBuilder。parse()   java后添加maven依赖项,org。阿帕奇。卡塔琳娜。过滤器。当前错误消息   java有没有一种方法可以使用安卓通过按下便利键触发方法?