Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

Understand Impalad memz Breakdown

avatar
Contributor

Hi,

 

Could you help me understand the meaning of Total, Peak and Exprs in Breakdown section of the impalad memz page? In my understanding, Peak mem is the Peak memory we've seen so far for that component (Query, Frag or Node etc); Total is the current timepoint's total memory consumption of that component on the machine; and what does (total and Peak of) Exprs mean?

 

Here's a snippet:

 

Process: Limit=256.00 MB Total=142.79 MB Peak=264.24 MB
  Free Disk IO Buffers: Total=4.50 MB Peak=102.56 MB
  RequestPool=root.centos: Total=11.60 MB Peak=187.26 MB
    Query(e040ae477e9d2aec:87d527e600000000): Total=11.60 MB Peak=13.45 MB
      Fragment e040ae477e9d2aec:87d527e600000005: Total=10.30 MB Peak=10.98 MB
        AGGREGATION_NODE (id=3): Total=10.29 MB Peak=10.29 MB
          Exprs: Total=4.00 KB Peak=4.00 KB
        EXCHANGE_NODE (id=2): Total=0 Peak=0
        DataStreamRecvr: Total=0 Peak=0
        HdfsTableSink: Total=0 Peak=0
        CodeGen: Total=3.32 KB Peak=696.50 KB
      Block Manager: Limit=156.00 MB Total=8.50 MB Peak=8.50 MB
      Fragment e040ae477e9d2aec:87d527e600000002: Total=1.30 MB Peak=2.47 MB
        AGGREGATION_NODE (id=1): Total=1.29 MB Peak=1.29 MB
          Exprs: Total=4.00 KB Peak=4.00 KB
        HDFS_SCAN_NODE (id=0): Total=0 Peak=0
        DataStreamSender (dst_id=2): Total=3.14 KB Peak=3.14 KB
        CodeGen: Total=0 Peak=1.16 MB

 

Thanks

 

1 ACCEPTED SOLUTION

avatar

"Exprs" tracks memory used by any SQL expressions evaluated in that node. E.g. if you have a regexp_replace() function operating on large strings, it will use more memory than a simple expression like "1 + 2".

 

The main use case is to help track down UDFs that uses a lot of memory, e.g. if they have a memory leak.

View solution in original post

2 REPLIES 2

avatar

"Exprs" tracks memory used by any SQL expressions evaluated in that node. E.g. if you have a regexp_replace() function operating on large strings, it will use more memory than a simple expression like "1 + 2".

 

The main use case is to help track down UDFs that uses a lot of memory, e.g. if they have a memory leak.

avatar
Contributor

Got it, thanks Tim.