Skip to content

AxonOps — AI-Native Control Plane for Open Source Data Platforms

nodetool netstats

Displays network statistics including streaming operations, messaging activity, and connection states.


Terminal window
nodetool [connection_options] netstats [-H]

See connection options for connection options.

nodetool netstats shows current network activity including:

  • Active streaming sessions (repair, bootstrap, rebuild)
  • Pending and completed streams
  • Message queues to other nodes
  • Read repair statistics

This is essential for monitoring data movement during topology changes, repairs, and other streaming operations.


OptionDescription
-H, --human-readableDisplay bytes in human-readable format

Mode: NORMAL
Not sending any streams.
Read Repair Statistics:
Attempted: 1234
Mismatch (Blocking): 56
Mismatch (Background): 78
Pool Name Active Pending Completed Dropped
Large messages n/a 0 1234 0
Small messages n/a 12 567890 0
Gossip messages n/a 0 12345 0
Mode: NORMAL
Receiving from: /192.168.1.102
/var/lib/cassandra/data/my_keyspace/users-a1b2c3d4
Receiving 12 files, 1.2GB total. Already received 8 files, 800MB total
Progress: 66%
Sending to: /192.168.1.103
/var/lib/cassandra/data/my_keyspace/orders-b2c3d4e5
Sending 5 files, 500MB total. Already sent 3 files, 300MB total
Progress: 60%
Read Repair Statistics:
Attempted: 1234
Mismatch (Blocking): 56
Mismatch (Background): 78

Current node operation mode:

ModeDescription
NORMALStandard operation
STARTINGNode is starting up
JOININGNode is bootstrapping
LEAVINGNode is decommissioning
MOVINGNode is moving to new token
DRAININGNode is draining
DRAINEDNode has drained
FieldDescription
Receiving fromNodes sending data to this node
Sending toNodes receiving data from this node
FilesNumber of SSTable files being transferred
ProgressPercentage complete
PoolDescription
Large messagesLarge inter-node messages (streaming, repair)
Small messagesRegular inter-node messages (reads, writes)
Gossip messagesGossip protocol messages
FieldDescription
ActiveCurrently processing
PendingWaiting to be processed
CompletedSuccessfully processed
DroppedTimed out and dropped
FieldDescription
AttemptedTotal read repairs started
Mismatch (Blocking)Inconsistencies found during blocking reads
Mismatch (Background)Inconsistencies found during background repair

During bootstrap, decommission, repair, or rebuild:

Terminal window
# Continuous monitoring
watch -n 2 'nodetool netstats'

If an operation seems stuck:

Terminal window
nodetool netstats

Progress percentage that doesn't change indicates a problem.

Terminal window
nodetool netstats -H

Shows how much data remains to transfer.

Terminal window
nodetool netstats | grep Dropped

Non-zero dropped messages indicate network or processing issues.


Terminal window
nodetool netstats
Terminal window
nodetool netstats -H
Terminal window
watch -n 5 'nodetool netstats -H'
Terminal window
for node in node1 node2 node3; do
echo "=== $node ==="
ssh "$node" "nodetool netstats"
done
Terminal window
nodetool netstats | grep -E "Progress|Receiving|Sending"

Mode: NORMAL
Not sending any streams.

Normal state when no data movement operations are running.

Mode: JOINING
Receiving from: /192.168.1.101
Progress: 45%
Receiving from: /192.168.1.102
Progress: 52%
Receiving from: /192.168.1.103
Progress: 38%

New node receiving data from existing nodes.

Mode: NORMAL
Sending to: /192.168.1.102
streaming_repair_task
Progress: 80%

Repair operation sending data to out-of-sync node.

Mode: LEAVING
Sending to: /192.168.1.101
Progress: 25%
Sending to: /192.168.1.103
Progress: 30%

Node sending its data to remaining nodes.


If progress doesn't increase:

  1. Check network connectivity between nodes
  2. Check disk space on receiving node
  3. Check for errors in system.log
  4. Verify streaming isn't throttled
Terminal window
# Check streaming throughput settings
nodetool getstreamthroughput
nodetool getinterdcstreamthroughput
Pool Name Active Pending Completed Dropped
Small messages n/a 50 567890 125

Dropped Messages

Dropped messages indicate:

  • Network timeouts
  • Overloaded nodes
  • Processing delays

Investigate immediately - affects data consistency.

Pool Name Active Pending Completed Dropped
Small messages n/a 500 567890 0

Message Backlog

High pending indicates:

  • Node is overloaded
  • Network backpressure
  • May lead to dropped messages
Read Repair Statistics:
Attempted: 10000
Mismatch (Blocking): 5000

50% mismatch rate indicates:

  • Recent node outage
  • Repair hasn't run recently
  • Write issues during failures

Control streaming speed to reduce impact:

Terminal window
# Get current setting
nodetool getstreamthroughput
# Set throughput (MB/s)
nodetool setstreamthroughput 200
# Inter-DC streaming
nodetool getinterdcstreamthroughput
nodetool setinterdcstreamthroughput 50

Throttling Trade-offs

  • Higher throughput = faster operations, more impact on production
  • Lower throughput = slower operations, less impact
  • Default is often conservative; increase for faster streaming

CommandRelationship
statusCheck node states
tpstatsThread pool statistics
compactionstatsCompaction progress
repairTriggers streaming
decommissionTriggers streaming
rebuildTriggers streaming
setstreamthroughputControl streaming rate