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

75cb0afcd3b4a77872139054c1cb3ee7.png

在数据库层获得底层系统的信息是一个对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;

c5275a1a23c465ff249d38a066f580f3.png

功能就可以使用了。

6f3713efbd2bf2c6bf0b4ba59f5777a6.png

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

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

1f1d84a477fc81d226d467376ee58324.png

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

127e75ed2d2fdb146ed2b6142b30f54d.png

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

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();

0c450ad4239cd68118eec0c225c3d563.png

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

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

411592a97ceb0d9d23a279bafb6a4e23.png

对于磁盘的空间使用的情况,也可以通过 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();

eceac242a739e5c1ae4898e14b64549e.png

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

select * from pg_sys_load_avg_info();

dcdf5d91e77a90f1c0bc89e57bb845f9.png

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

select * from pg_sys_cpu_memory_by_process();

605b559cb1cfd1c40e93f9fcf9f40941.png

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

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

859c3243eb41c5b3e38bac8c2da9204a.png

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

8d0dd96dc8c5006073b936daa21b35bb.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值