前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Postgresql 在数据库层如何获得底层操作系统与硬件信息

Postgresql 在数据库层如何获得底层操作系统与硬件信息

作者头像
AustinDatabases
发布2022-07-13 15:07:39
6450
发布2022-07-13 15:07:39
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

在数据库层获得底层系统的信息是一个对DBA,友好的功能,在数据库内部通过命令获得底层系统的性能信息,对于数据库监控也是一个好的获取数据库的方式,可以直接将这些信息插入到数据库表内等等。

EDB 公司针对POSTGRESQL 开发出一套system_stats 系统通过extension的方式与POSTGRESQL 结合,获取

1 系统信息

2 CPU 信息,CPU 使用率

3 内存信息

4 IO 信息

5 磁盘信息

6 系统负载信息

7 系统的进程信息

安装非常简单 https://github.com/EnterpriseDB/system_stats

下载源码编译包,在PG的环境下进行make make install 后,就可以使用了,此次测试环境为 PG14 ,在进入到POSTGRESQL 环境下,直接运行

create extension system_stats;

功能就可以使用了。

通过执行 select * from pg_sys_os_info(); 命令可以获得当前数据库所在得系统的版本,主机名,以及process 和 thread的数量,和主机的架构,主机运行的多长时间等信息。

select * from pg_sys_cpu_info(); 通过这个命令可以对当前系统的CPU的信息进行展示。

select * from pg_sys_cpu_usage_info(); 的信息可以获得当前CPU 的工作情况,如CPU 运行繁忙度的信息,系统用户的时间信息等,从中可以获得CPU 是否繁忙的情况。

其中对于内存的信息获取对数据库运维来说是重要的,

select total_memory/1024/1024 as total_memory_MB,used_memory/1024/1024 as used_memory_MB,free_memory/1024/1024 as free_memory_MB,swap_used/1024/1024 as swap_used_MB from pg_sys_memory_info();

从这里可以看到系统中内存和使用的内存,以及 swap 的内存是否被使用过等等信息。

对于 select * from pg_sys_io_analysis_info(); 来说可以获得磁盘系统的工作情况,尤其对于系统磁盘的环境监控和比对系统繁忙期的IO 工作情况有很大的帮助,如 平均读取时间 平均写入时间等信息,都可以通过现有表的信息进行计算后获得。

对于磁盘的空间使用的情况,也可以通过 sys_disk_info 表来进行获取

select file_system,total_space/1024/1024 as TOTAL_MB,used_space/1024/1024 as USED_MB,free_space/1024/1024 as free_space_MB from pg_sys_disk_info();

这里可以获知系统中磁盘空间的使用和剩余的情况等等, 更有意思的是,我们经常对系统中进行的TOP 操作中的system avg load的信息这里也可以提供

select * from pg_sys_load_avg_info();

当然这里还可以通过系统表查询当前数据库所在服务器的网络包的发送和收取的情况,了解系统网络的工作情况,以及工作的繁忙度等问题。

select * from pg_sys_cpu_memory_by_process();

最后在系统表中获知当前的PROCESS 的信息,与ps -ef 是雷同的,同时可以在这里获知每个process 的CPU 与内存的使用情况等等。

最后是使用这个功能的用户有谁,默认SUPERUSER 是具有使用这个功能的用户,一般用户是无法使用这个功能的。

除此之外,可以通过monitor_system_stats 将权限赋予一般的用户,具有查看这些系统表的权限。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档