关于greenplum使用gpfdist 大批量数据入库遇到的问题

amazing 2021-12-16 11:34:25

各位大佬,请帮分析个问题。
环境:2台服务器(24线程+256G内存) 一台装有master +一组segment+mirror,一台装有segment+mirror。在这两台服务器上分别部署gpfdist服务。有一个按日期分区的分区表A
测试:两台服务器上均有一个A表入库文件大概都为900M(一千六百万行数据),数据日期均为12月5日,A表12月5日分区表已创建。通过gpfdist创建外表同时入库
问题描述:入库期间通过查询pg_stat_activity发现,只要有commit的时候,查询gp相关表的接口就会卡死,或者长时间没有反应(查询的不一定是A表)。整个入库过程大概在2800秒左右。整个入库期间 磁盘io占用逐渐增加到90%-100%左右,持续到入库完成。
请问,假设系统必须要在入库期间使用,如何解决或优化入库时长和卡死的问题?

 

sysctl.conf:

kernel.shmmax = 135240355840
kernel.shmmni = 4096
kernel.shmall = 33017665
kernel.sem = 50100 128256000 50100 2560
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 1
net.ipv4.conf.all.arp_filter = 1
net.ipv4.ip_local_port_range = 10000 65535
net.core.netdev_max_backlog = 10000
vm.overcommit_memory = 2
vm.overcommit_ratio=90

 

postgres.conf:

log_statement=all
checkpoint_segments=3
temp_buffers=4096
#shared_buffers=2000MB
max_connections=300
gp_resqueue_priority_cpucores_per_segment=11
effective_cache_size=147000MB
work_mem=7680MB
maintenance_work_mem=1024MB
#max_statement_mem=25600
gp_vmem_protect_limit=50000
max_statement_mem=25000MB
statement_mem=2300MB
shared_buffers=1024MB

...全文
337 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-运维 发布问题, 以便更快地解决您的疑问

166

社区成员

发帖
与我相关
我的任务
社区描述
Greenplum相关内容分享专区
数据库数据库架构数据库开发 技术论坛(原bbs)
社区管理员
  • Greenplum社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧