背景:
GP版本6.11
服务器内存16G swap 2G
源系统mysql5.7,已经针对mysql 连接添加性能优化的配置项
服务器cpu8核,kettle中设置了7个copy同时执行
GP的VMEM设置的8G
show gp_vmem_protect_limit
未关闭查询优化器之前状况:
速度慢,单线程180行每秒,7个加一起才1300。
GP master内存出现异常占用情况,mysql中该表300多万行,总大小不到900MB,但是master的内存却占用超过7G,最后导致VMEM虚拟内存占用过高,取消查询。
org.postgresql.util.PSQLException: ERROR: Canceling query because of high VMEM usage. Used: 1041MB, available 843MB, red zone: 7372MB (runaway_cleaner.c:202)
关闭查询优化器之后
单线程1200,7个加一起超过8千,性能明显提高,最终成功完成,服务器的内存占用正常。
关闭操作
gpconfig -c optimizer -v off
重新加载配置,不重启
gpstop -u
查看配置
gpconfig -s optimizer
Values on all segments are consistent
GUC : optimizer
Master value: off
Segment value: off