Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-15844

Investigate changes in SERVER-64005: Add metric to track the 'fullness' of the TCP accept queue

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major - P3
    • Resolution: Works as Designed
    • None
    • 6.3
    • manual, Server
    • None
    • 3
    • Hide
      This ticket concerns connections incoming to a mongos or mongod -- we call the incoming connection path the ingress layer. Before the ingress layer accepts a connection, this connection sits in the [accept queue |https://veithen.io/2014/01/01/how-tcp-backlog-works-in-linux.html] on the TCP layer.

      The accept queue has a fixed size, and when the queue is full, the OS will start dropping incoming connections at the pre-mongo level. An overflowing queue means that either a mongo process is not accepting connections fast enough, or that the kernel is throttling connection establishment.

      This ticket adds the {{listenerSocketBacklogQueueDepths}} section, with a depth added for each listener that is registered on the ingress transport layer. This will be an integer value.
      Show
      This ticket concerns connections incoming to a mongos or mongod -- we call the incoming connection path the ingress layer. Before the ingress layer accepts a connection, this connection sits in the [accept queue | https://veithen.io/2014/01/01/how-tcp-backlog-works-in-linux.html ] on the TCP layer. The accept queue has a fixed size, and when the queue is full, the OS will start dropping incoming connections at the pre-mongo level. An overflowing queue means that either a mongo process is not accepting connections fast enough, or that the kernel is throttling connection establishment. This ticket adds the {{listenerSocketBacklogQueueDepths}} section, with a depth added for each listener that is registered on the ingress transport layer. This will be an integer value.

    Description

      Original Downstream Change Summary

      This ticket concerns connections incoming to a mongos or mongod – we call the incoming connection path the ingress layer. Before the ingress layer accepts a connection, this connection sits in the accept queue on the TCP layer.

      The accept queue has a fixed size, and when the queue is full, the OS will start dropping incoming connections at the pre-mongo level. An overflowing queue means that either a mongo process is not accepting connections fast enough, or that the kernel is throttling connection establishment.

      This ticket adds the listenerSocketBacklogQueueDepths section, with a depth added for each listener that is registered on the ingress transport layer. This will be an integer value.

      Description of Linked Ticket

      This ticket concerns connections incoming to a mongos or mongod – we call the incoming connection path the ingress layer. Before the ingress layer accepts a connection, this connection sits in the accept queue on the TCP layer.

      The accept queue has a fixed size, and when the queue is full, the OS will start dropping incoming connections at the pre-mongo level. An overflowing queue means that either a mongo process is not accepting connections fast enough, or that the kernel is throttling connection establishment.

      Of particular note are generic TCP metrics TcpExtListenOverflows and TcpExtListenDrops.

      Attachments

        Issue Links

          Activity

            People

              jason.price@mongodb.com Jason Price
              backlog-server-pm Backlog - Core Eng Program Management Team
              Jason Price Jason Price
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                17 weeks, 5 days ago