[ 
https://issues.apache.org/jira/browse/IMPALA-13479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17948283#comment-17948283
 ] 

Joe McDonnell commented on IMPALA-13479:
----------------------------------------

Native toolchain change merged:
{noformat}
commit 49a326be6f1836127b1189cea71ea9832b31b7aa
Author: Joe McDonnell <[email protected]>
Date:   Fri Apr 25 11:15:05 2025 -0700    IMPALA-13479: Patch gperftools to 
remove 1GB limit on thread caches
    
    tcmalloc currently limits the total thread cache size to 1GB.
    On large systems with many threads, this may be insufficient,
    causing extra memory transfers between thread caches. This
    patches gperftools to remove this 1GB constraint.
    
    This also stops building gperftools 2.8.0 and removes its code.
    
    Change-Id: I709b9ca04c71b14e2dd157d4daaa86e8113a38d6
    Reviewed-on: http://gerrit.cloudera.org:8080/22820
    Reviewed-by: Michael Smith <[email protected]>
    Reviewed-by: Quanlong Huang <[email protected]>
    Tested-by: Joe McDonnell <[email protected]>{noformat}

> Patch gperftools to allow max_total_thread_cache_bytes to exceed 1GB
> --------------------------------------------------------------------
>
>                 Key: IMPALA-13479
>                 URL: https://issues.apache.org/jira/browse/IMPALA-13479
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Infrastructure
>    Affects Versions: Impala 4.5.0
>            Reporter: Joe McDonnell
>            Priority: Critical
>
> gperftools limits max_total_thread_cache_bytes to 1GB here:
> [https://github.com/gperftools/gperftools/blob/gperftools-2.10/src/thread_cache.cc#L520-L523]
> {noformat}
> void ThreadCache::set_overall_thread_cache_size(size_t new_size) {
>   // Clip the value to a reasonable range
>   if (new_size < kMinThreadCacheSize) new_size = kMinThreadCacheSize;
>   if (new_size > (1<<30)) new_size = (1<<30);     // Limit to 1GB{noformat}
> I confirmed that setting --tcmalloc_max_total_thread_cache_bytes=2147483648 
> still results in a 1GB limit.
> Sometimes, we would want a higher limit for systems with a large amount of 
> memory and CPUs. For example, some systems now have 1TB of memory and 96 
> CPUs. With high concurrency, there is high contention on tcmalloc locks on 
> central data structures. Increasing the total thread cache size could avoid 
> this, and a value higher than 1GB is still a small part of system memory.
> We can patch our toolchain gperftools to allow a higher value (and notify 
> gperftools community).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to