For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Blog
DocsAPI Reference
DocsAPI Reference
    • AIStore
    • Documentation
  • Core Documentation
    • In-depth Overview
    • Terminology and core abstractions
    • Getting Started
    • Networking model
    • Buckets: design, operations, namespaces, and system buckets
    • Observability overview
    • CLI overview
    • Production deployment
    • Technical Blog
  • APIs, SDKs, and Compatibility
    • Go API
    • Python SDK
    • PyPI package
    • Python SDK reference guide
    • PyTorch integration
    • TensorFlow integration
    • HTTP API reference
    • curl examples
    • Easy URL
    • S3 compatibility
    • s3cmd quick start
    • Presigned S3 requests
    • Boto3 support
  • Command-Line Interface
    • CLI overview
    • ais help
    • CLI reference guide
    • Bucket operations
    • Cluster and remote-cluster management
    • Storage and mountpath management
    • Monitoring and ais show
    • Downloads
    • Jobs
    • Authentication and access control
    • Configuration via CLI
    • ETL CLI
    • Distributed shuffle CLI
    • ML / get-batch CLI
    • GCP credentials
    • TLS certificate management
  • Storage and Data Management
    • Storage services
    • Buckets: design, operations, namespaces, and system buckets
    • Native Bucket Inventory (NBI)
    • Backend providers
    • On-disk layout
    • Virtual directories
    • System files
    • Evicting remote buckets and cached data
  • Cluster Operations
    • Node lifecycle: maintenance, shutdown, decommission
    • Global rebalance
    • Resilver
    • AIS in Containerized Environments
    • Highly available control plane
    • Information Center (IC)
    • Out-of-band updates
    • Troubleshooting
  • Configuration and Security
    • Configuration
    • Environment variables
    • Feature flags
    • AuthN and access control
    • Authentication validation
    • HTTPS and certificates
    • Switching a cluster to HTTPS
  • ETL and Advanced Workflows
    • ETL overview
    • ETL CLI docs
    • ETL Python SDK examples
    • Custom transformers
    • ETL Python webserver SDK
    • ETL Go webserver package
    • Archives: read, write, and list
    • Distributed shuffle (dsort)
    • Initial sharding utility (ishard)
    • Downloader
    • Blob Downloader
    • Batch object retrieval (get-batch)
    • Batch operations
    • Tools and utilities
    • Extended actions (xactions)
  • Observability, Monitoring, and Performance
    • Observability overview
    • Monitoring with CLI
    • Logs
    • Prometheus integration
    • Metrics reference
    • Grafana dashboards
    • Kubernetes monitoring
    • Distributed tracing
    • Monitoring get-batch
    • AIS load generator (aisloader)
    • Benchmarking AIStore
    • Performance tuning and testing
    • Performance monitoring via CLI
    • Rate limiting
    • Checksumming
    • Filesystem Health Checker (FSHC)
    • Traffic patterns
  • Networking
    • Networking: multi-homing, network separation, IPv6
    • HTTPS configuration
    • Switching to HTTPS
    • Idle connections
    • MessagePack protocol
  • Deployment
    • AIStore on Kubernetes
    • Kubernetes Operator
    • Ansible playbooks
    • Helm charts
    • Deployment monitoring
    • Docker
  • Developer Resources
    • Development guide
    • aisnode command line
    • Build tags
  • Object and Bucket Naming
    • Unicode and special symbols in object and bucket names
    • Extremely long object names
Blog
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Your Privacy Choices | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogoAIStore
On this page
  • Idle Connection Management
  • Connection Types and Configuration
  • 1. Server-Side Idle Connections
  • 2. Intra-Cluster Connections (internal)
  • 3. Backend Connections (AIStore → Cloud)
  • Runtime Configuration
  • Monitoring and Observability
  • Recommended Settings
  • References
Networking

Idle connections

||View as Markdown|
Previous

Traffic patterns

Next

MessagePack protocol

Idle Connection Management

AIStore employs HTTP connections across multiple layers of its architecture.

Proper idle connection management is critical for preventing resource accumulation in long-running deployments.

AIStore uses a three-layer HTTP connection model:

  1. External clients → AIStore cluster (server-side connections)
  2. AIStore intra-cluster communication (client-side connections)
  3. AIStore cluster → Cloud backends (client-side connections)

Connection Types and Configuration

1. Server-Side Idle Connections

AIStore servers accept connections from external clients including:

  • User applications
  • Xactions (batch jobs)
  • Monitoring systems
  • Administrative tools

Source: ais/htcommon.go

  • IdleTimeout: Maximum time the server waits for the next request on an idle connection
  • Default: 20 seconds (cmn.DfltMaxIdleTimeout)

2. Intra-Cluster Connections (internal)

Configuration Location: transport/client_*.go

Depending on the build tag: fasthttp or nethttp. See docs/build_tags.md.

3. Backend Connections (AIStore → Cloud)

Connections to cloud storage backends:

  • Amazon S3
  • Google Cloud Storage
  • Azure Blob Storage
  • Oracle Cloud
  • Other S3-compatible endpoints

Configuration Location: cmn/client.go - via cmn.NewTransport() and the respective defaults that also include:

1const (
2 DefaultMaxIdleConns = 0 // unlimited total
3 DefaultMaxIdleConnsPerHost = 32 // per-host limit
4 DefaultIdleConnTimeout = 6 * time.Second // aggressive cleanup
5)

Note: These (and all other cited) settings reflect the current defaults and may change in future releases.

Runtime Configuration

$# View current HTTP configuration
$ais config cluster net.http --json
$
$# Set idle connection timeout
$ais config cluster net.http.idle_conn_time=30s
$
$# Set total idle connection limit
$ais config cluster net.http.idle_conns=1000
$
$# Set per-host idle connection limit
$ais config cluster net.http.idle_conns_per_host=128

Monitoring and Observability

Idle connections directly correlate with goroutine count:

  • Each idle connection typically results in two goroutines.
  • Use AIStore Prometheus alerts (e.g., AISNumGoroutinesHigh) to detect issues.
  • Watch out for ais show cluster showing this alert:

AIS alert: high-number-of-goroutines

Recommended Settings

$ais config cluster net.http.idle_conn_time=20s
$ais config cluster net.http.idle_conns=2000
$ais config cluster net.http.idle_conns_per_host=100

Or, tune it down in resource-constrained or dev/testing environments.

References

  • Go net/http Transport documentation
  • HTTP/1.1 Keep-Alive specification (RFC 7230)
  • AIStore configuration documentation
  • Prometheus monitoring setup guide