netscrew.dev/commands/choked
Command

n choked

Stalled socket detection

Short forms:chok · backlog · stalled

Usage — n choked

═══════════════════════════════════════════════════════════════════════════════
  Netscrew ("n") — choked (chok, backlog, stalled) — Stalled-socket detection (queues backed up in both samples)
═══════════════════════════════════════════════════════════════════════════════

USAGE:
  n chok .                             audit this machine's sockets for stuck send/recv queues

Target: . = this machine · <host> = remote
Deeper: n chok -h = the concept/theory behind this command

The concept behind it — n choked -h

═══════════════════════════════════════════════════════════════════════════════
  NETSCREW GUIDE: Stalled Processes & Choked Sockets ("n choked")
═══════════════════════════════════════════════════════════════════════════════

WHAT IS A CHOKED SOCKET?
  On a LISTEN socket, the Recv-Q column represents the backlog of fully completed
  TCP 3-way handshakes waiting for the userland application to call accept().
  Normally this queue is 0.

SYMPTOMS OF CHOKING:
  • If Recv-Q > 0 on a listening port, the application's event loop is frozen,
    deadlocked, thrashing on CPU, or overwhelmed by incoming requests.
  • Clients attempting to connect experience severe lag, hangs, or Connection Timed Out.

HOW TO RESOLVE:
  • Run n p . <PORT> on the affected port to identify the process name and PID.
  • Check the application logs or thread dump for deadlocks.
  • Restart the stuck daemon or scale worker threads.

HOW n choked MEASURES IT:
  Takes two snapshots one second apart and reports only sockets whose queues were
  non-empty in both — a single busy moment is normal and is not reported.
  • Linux:   all TCP/UDP sockets via ss -tuan (listen backlogs included).
  • macOS:   connected TCP and UDP via netstat -an; listen backlogs are not visible.
  • Windows: not supported — Windows exposes no per-socket queue depths, so nothing is checked.