【greenplum 性能优化】greenplum 数据库集群 如何释放占用内存

news2025/2/22 13:24:17

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。人工智能教程

在Greenplum数据库集群中,进程的状态(即state)可以被分为以下几种:

active:进程正在执行任务,或者正在等待运行队列中的任务。

idle:进程正在等待任务,但是当前没有任务可用。

idle in transaction:进程正在等待提交或回滚事务。

idle in transaction (aborted):进程正在等待回滚一个已经被终止的事务。

fastpath function call: 进程正在执行一个短时间的快速执行函数。

disabled: 进程处于未被允许的状态或者处于非正常状态。

通常情况下,你会发现在Greenplum数据库中,大部分进程的状态会是“idle”,即等待任务状态。当有新任务出现时,这些“idle”状态的进程会被重新激活,进入到“active”状态。

需要注意的是,因为Greenplum是一个基于MPP架构的集群,其中有许多类型的进程,如segments、master、and utility,这些不同类型的进程有不同的作用以及状态转换。但无论何时,对于任意一个进程,都应该理解并考虑它们的状态,以便监视和调整集群的性能。

在这里插入图片描述

释放内存前,发现一台主节点 segment 内存很少,只有792M,正常来说应该10G左右,首先排查问题,主要定位在greenplum 上,因为这台只有这个最占用内存。

在Greenplum数据库集群中,数据存储在segment节点上,每个segment节点是一个单独的PostgreSQL实例。如果你需要释放segment节点上占用的内存,可以尝试以下几个方法:

  1. 主动触发PGC的垃圾回收机制:在segement节点的命令行界面中,可以输入SELECT
    pg_catalog.pg_gc()命令来触发垃圾回收。
  2. 调整work_mem和maintenance_work_mem参数:在Greenplum数据库中,work_mem和maintenance_work_mem参数控制着排序和聚合操作时使用的内存大小。可以通过修改这两个参数的值来适当控制内存占用情况。
  3. 优化查询语句:可能会出现查询语句效率不高导致内存占用过高的情况。可以通过优化查询语句的方式来减少内存占用。
  4. 终止不必要的查询进程:在Greenplum集群中,通过查询工具(如psql)连接到数据库后,可以使用pg_cancel_backend()或pg_terminate_backend()函数来终止指定的查询进程。终止不必要的查询进程可以释放占用的内存资源。

请注意,在进行上述操作时,需要对数据库的运行情况进行全面评估,并谨慎操作,以避免数据损坏或降低数据库的性能。

下面我们用pg_terminate_backend() 来优化性能。

SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'byt'
AND pid <> pg_backend_pid()
AND state in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled')
-- AND state_change < current_timestamp - INTERVAL '5' MINUTE; 

执行完毕之后,瞬间释放了10G,
在这里插入图片描述
这个SQL查询语句的作用是将指定数据库(这里是 byt)中未进行活动操作(即空闲状态)的进程关闭,以释放被这些进程占用的资源(例如内存、CPU等)。

具体来说,它执行以下操作:

选择Process组件的pg_terminate_backend()函数以终止后台进程(即postgresql数据库的一个后台进程)。

从Process组件的pg_stat_activity视图中选择pid列,该列包含每个与活动进程相关联的PostgreSQL进程的进程ID。

限定查询范围,只选择在指定数据库 byt 中运行,且活动状态是空闲或空闲状态下的事务连接,或已禁用连接。

在PostgreSQL中,pg_terminate_backend(pid)是一个用于终止指定进程(pid)的函数。当一个进程被终止后,它使用的内存空间将被操作系统回收,从而释放内存。

如果你想释放Greenplum数据库集群中占用的内存,可以使用类似下列SQL查询语句:

SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'mydb'
  AND pid <> pg_backend_pid()
  AND state = 'idle'
  AND state_change < current_timestamp - INTERVAL '5' MINUTE;

这个SQL查询语句将会终止处于空闲状态的进程,并且这些进程的状态更改时间距现在超过5分钟。这将释放由这些进程占用的内存,从而使得系统能够更好地运行。请注意,在终止进程之前,一定要评估它们的作用和可能造成的影响,以免因误操作导致数据丢失或系统故障。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/619552.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

想从事UE4开发相关工作,C++学到什么程度可以开始学习针对虚幻4的编程开发呢?

想从事UE4开发相关工作&#xff0c;C学到什么程度可以开始学习针对虚幻4的编程开发呢&#xff1f; 想从事UE4开发相关工作&#xff0c;C是一个必须要熟练掌握的语言。在学习C过程中&#xff0c;需要掌握语法、面向对象编程、数据结构和算法等内容&#xff0c;这些都是开发UE4所…

nginx修改配置文件不生效

1、问题描述 由于需要向其他公司的数据库中推送数据&#xff0c;但是对方公司的服务器只针对某一台服务器开放了端口&#xff0c;公司的datax部署在另外一台服务器中&#xff0c;导致不能正常连接数据库。因此做了nginx&#xff0c;进行两次代理&#xff0c;但是对方服务器突然…

企业——配置两条静态路由

要求1&#xff1a;按照图中要求配置IP地址&#xff0c;使用静态路由实现要求1、2 要求2&#xff1a;pc1访问pc2走下面 要求3&#xff1a;pc2访问pc1走上面&#xff0c;且两条线路互为备份 1.配置接口IP int g0/0/~ ip address ~ 2.配置静态路由&#xff0c;每个路由两条&a…

Vue3优雅地监听localStorage变化

目录 &#x1f4a1;前言 &#x1f4a1; 为什么要这样做&#xff1f; &#x1f48e; 思路 &#x1f48e; 实现 &#x1f697; 实现中介者模式 &#x1f697; 重写localStorage &#x1f697; 实现useStorage hook &#x1f48e; 测试 &#x1f697; 使用localStorage …

「大模型微调」使用 DDP 实现程序单机多卡并行指南

最近在大趋势的影响下&#xff0c;开始染指大模型。由于实验室计算资源的限制&#xff0c;需要使用单机多卡并行的方式运行程序&#xff0c;这里以 BLOOM-560m 模型为例&#xff0c;演示如何通过单机多卡DDP并行的方式微调完成下游任务。 目录 0. 基础篇- 两种分布式训练方式- …

网络安全自学笔记

一、怎么入门&#xff1f; 这个 Web 安全学习路线&#xff0c;整体大概半年左右&#xff0c;具体视每个人的情况而定。 &#xff08;上传一直很模糊&#xff0c;所以就没有展开了&#xff0c;需要高清版的可以在下面领取&#xff09; &#x1f449; 【一学习路线高清版一】&a…

Java操作mongodb(含分页,精确查询,模糊查询,时间区间,排序)进行查询

mongodb是常用的非关系型数据库&#xff0c;他经常用来存储文本数据&#xff0c;也就是JSON格式的数据。 不废话&#xff0c;直接上代码。注释写的很详细。&#xff08;有问题留言秒回&#xff09; public Page<Product> listProducts(ProductCond cond) {//如前端没传&a…

赛效:如何自动拼图在线实现多图合一

1&#xff1a;在电脑上打开改图鸭网页版&#xff0c;登录账号后在特色功能里点击“模板拼图”。 2&#xff1a;根据需要图片数量和特点选择对应的拼图模板&#xff0c;然后点击右侧模板里的上传图片。 3&#xff1a;图片添加完成后&#xff0c;除了可以直接在模板里拖动图片进行…

第六章 Electron|Node 实现license激活机制

一、license是什么 ✨ ⭐️ &#x1f31f; license许可证&#xff0c;一般用于软件的授权&#xff0c;我个人的理解就和我们平时的登录差不多。只是说登录时需要我们输入用户名和密码&#xff0c;license一般是开发方提供给你一串加密后的文本&#xff0c;通过这个文本进行一…

Linux5.1 LVS负载均衡群集

文章目录 计算机系统5G云计算第一章 LINUX LVS负载均衡群集一、LVS概述1.群集的含义2.群集的特点3.扩展服务器的方式4.群集的类型5.负载均衡的结构6.负载均衡集群工作模式分析 二、LVS-NAT 的部署1.关于 LVS 虚拟服务器2.LVS的负载调度算法3.使用 ipvsadm 工具 三、NAT模式 LVS…

ChatGPT助力码上行动:零基础学会Python编程

摘要&#xff1a; Python编程作为一种简洁、易学且功能强大的编程语言&#xff0c;正逐渐成为初学者进入编程领域的首选。然而&#xff0c;对于零基础的学习者来说&#xff0c;学习编程仍然存在一定的挑战。本文将介绍如何利用ChatGPT的强大语言生成能力&#xff0c;助力零基础…

元宇宙应用领域-社交

社交是一个古老的话题&#xff0c;人类从最开始的结群&#xff0c;到后来的部落&#xff0c;再到如今的网络社交&#xff0c;可以说人类的社交方式经历了漫长的演化过程。 随着互联网的普及和网络社交方式的不断发展&#xff0c;社交对于人类而言越来越重要。人们在网上不仅可…

SQL语句之DQL语言(二)(多表查询)

准备工作&#xff1a;创建表&#xff0c;添加数据 -- 部门管理 create table tb_dept(id int unsigned primary key auto_increment comment 主键ID,name varchar(10) not null unique comment 部门名称,create_time datetime not null comment 创建时间,update_time datetime…

新招了个从腾讯拿38K离职的测试大佬,让我见识到了什么才是测试界的天花板

现在招个会几年工作经验还会自动化测试的测试工程师真是难呀&#xff0c;10个里面有8个写了会自动化&#xff0c;但一问就是三不知 5年测试工作经验&#xff0c;技术应该是能达到资深测试的水准&#xff0c;即不仅能熟练地开发业务&#xff0c;而且还能熟悉项目的开发&#xff…

【数据结构每日一题】栈——中心对称链

[数据结构习题]栈——中心对称链 &#x1f449;知识点导航&#x1f48e;&#xff1a;【数据结构】栈和队列 &#x1f449;[王道数据结构]习题导航&#x1f48e;&#xff1a; p a g e 70.4 page70.4 page70.4 本节为栈和链表综合练习题 题目描述&#xff1a; &#x1f387;思路…

【论文阅读】dreambooth

简介 目标&#xff1a;subject-driven generation&#xff0c;针对特定物体的图像生成&#xff0c;仅使用少量目标主体图像&#xff0c;dreambooth可以在prompt的指导下生成大量目标主体在不同场景下的图像。例如下图中小狗&#xff0c;我们给定的set就是左侧的input images&a…

Matplotlib - 绘制 高亮显示的饼图 (Highlight Pie Chart) 函数源码

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/131089501 饼图 (Pie Chart) 是一种圆形统计图&#xff0c;被分割成片用于表示数值间的比例关系。每个切片的弧长以及相应的中心角和面积…

【QQ聊天界面-创建自定义Cell Objective-C语言】

一、我们刚才说到这个地方,我们说,用系统的单元格,是不是不够用吧, 1.那么这个时候,我们就要、需要自定义单元格 自定义单元格,我们就新建一个类,继承自UITableViewCell 来,写一下, 那么,这个时候,应该在哪个文件夹下,去新建类啊, 是不是在Views下面吧, 因为…

一文详解!Robot Framework Selenium UI自动化测试入门篇

目录 前言&#xff1a; 自动化框架的选择 测试环境的搭建 导入Selenium2Library包 关键字是什么&#xff1f; 创建测试用例 前言&#xff1a; 自动化测试的重要性越来越受到人们的重视&#xff0c;因为它可以提高测试效率、降低测试成本并减少人为错误的出现。为了满足这…

软考A计划-电子商务设计师-模拟试题卷八

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…