美文网首页
Presto调优总结

Presto调优总结

作者: 红莲之火 | 来源:发表于2018-09-19 16:04 被阅读0次

    Presto进行大批量的数据计算。一开始是串行执行每个query,需要很长的时间才能计算完成。查看服务器占用以后,发现资源利用率很低,因此,决定使用并行计算,提高资源利用率。

    Presto集群配置情况:

    角色 cpu 内存
    coordinator 4核 16G
    worker 8核 32G
    worker 8核 32G

    问题与分析

    当开启并行以后,发现presto出现了重启的现象,并且并行的任务数越多重启的频率越频繁,并且参考https://cloud.tencent.com/developer/article/1156796调整presto内存参数之后问题依旧。

    配置如下:

    jvm.config:
     -Xmx 15GB
    
    config.propertities:
    query.max-memory 2GB
    query.max-memory-per-node 1GB
    resources.reserved-system-memory 4GB
    

    观察了worker的内存的占用情况,没有发现异常。

    查阅coordinators所在机器的系统日志发现:

    Out of memory: Kill process 324 (presto-server) score 373 or sacrifice child
    [ 9138.843290] Killed process 324, UID 500, (presto-server) total-vm:13818884kB, anon-rss:6081652kB, file-rss:692kB
    [10657.363339] barad_agent invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0
    [10657.366892] barad_agent cpuset=/ mems_allowed=0
    [10657.366895] Pid: 1561, comm: barad_agent Not tainted 2.6.32-573.el6.x86_64 #1
    

    显然,因为占用了过多的内存,系统的oom-killer直接将presto-server进程杀掉。经过咨询腾讯云发现,jvm.config的配置不仅在worker上生效也在coordinator上生效。因为Presto是master模式的,主节点上的coordinator要负责分析逻辑计划,安排执行物理计划,以及下发woker的请求,presto的master比core(worker)任务其实更重的。在并行数较多的时候,coordinator内存占用增长。

    解决

    升级coordinator配置到8核32G,问题解决。

    相关文章

      网友评论

          本文标题:Presto调优总结

          本文链接:https://www.haomeiwen.com/subject/rkminftx.html