Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-13479

Patch gperftools to allow max_total_thread_cache_bytes to exceed 1GB

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Critical
    • Resolution: Unresolved
    • Impala 4.5.0
    • None
    • Infrastructure
    • None
    • ghx-label-2

    Description

      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

      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

      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).

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            joemcdonnell Joe McDonnell

            Dates

              Created:
              Updated:

              Slack

                Issue deployment