我有 PostgreSQL 数据库管理系统。我想检查数据库管理系统的实时吞吐量。
我想建立一个每 10 秒更新一次的吞吐量图表。
我该怎么做?任何有关 MySQL 的建议也将有所帮助。
答案1
查看 postgres 统计表。
要获取提交总数,请使用类似查询SELECT SUM(xact_commit) FROM pg_stat_database
- 此查询将返回自服务器启动以来所有数据库上的成功提交总数。每 N 分钟/秒运行一次此查询将允许您绘制漂亮的图表(从当前值中减去先前的值将得到 N 分钟内完成的提交数)。
我还建议您为此使用一些监控系统,它可能对其他目的有用。就我个人而言,我使用 zabbix 并维护一些模板和自定义脚本,这使我能够看到类似以下内容:
答案2
mysql 命令show status like 'Queries'
提供查询总数。您可以定期运行脚本来获取此值,并使用差值计算特定时间间隔内的查询率。
即,如果您每分钟运行一次脚本并获取每次运行的总查询数的变化并除以 60,您将对每秒的查询率有一个粗略的估计。
举例来说,这个 shell 命令将只提供“查询”字段的值。
mysql -e "show status like 'Queries'\G" | sed 1,2d | cut -d: -f2
答案3
Munin 或 Nagios 等监控应用程序可能适合您的需要。
Munin 使用 RRDTool,可以从各种来源“开箱即用”地收集和绘制统计数据,其中包括 MySQL(大概还有 Postgresql)统计数据,例如吞吐量。
Nagios 是一款功能齐全的网络监控应用程序,但也可以通过一些配置收集性能数据。