Uploaded image for project: 'Traffic Server'
  1. Traffic Server
  2. TS-3102

Improve memory reuse for SPDY contexts by reusing memory released by streams within a client session

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 5.0.1
    • 5.3.0
    • SPDY

    Description

      In the present SPDY implementation in ATS, there is no client context reuse. Though the spdy session is reused, each stream (even the non-concurrent ones) is allocated a set of new/separate context buffers (including internal plugin_vc, client_session, SM object, header heap, transaction buffers, server session objects etc). Some of these objects are allocated from global pool, while some are from per-thread pool. The context memory is not reused unlike the non-spdy session, where there can be at most one transaction on a given connection/session at a time.

      Besides being very inefficient (the allocation/deallocation) this also leads to larger memory foot print over time, due to the relatively poor reuse of per thread pool objects (especially, when there are a high number of threads - e.g 100+ like we have).

      I am currently testing a patch that does not deallocate the streams when the transaction completes and reuses those for new/subsequent streams.

      Attachments

        1. TS-3102.diff
          14 kB
          Sudheer Vinukonda

        Activity

          People

            sudheerv Sudheer Vinukonda
            sudheerv Sudheer Vinukonda
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: