{
  "id": "redis/io-threads-pool-starvation",
  "signature": "ERR I/O threads pool exhausted: no available thread for connection",
  "signature_zh": "I/O 线程池耗尽：没有可用线程处理连接",
  "regex": "ERR I/O threads pool exhausted: no available thread for connection",
  "domain": "redis",
  "category": "resource_error",
  "subcategory": null,
  "root_cause": "Redis's I/O threads configuration has too few threads to handle the current connection load, leading to thread pool starvation.",
  "root_cause_type": "generic",
  "root_cause_zh": "Redis 的 I/O 线程配置中线程数过少，无法处理当前连接负载，导致线程池耗尽。",
  "versions": [
    {
      "version": "6.2",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "7.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "7.2",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "Increase maxclients to allow more connections.",
      "why_fails": "This does not increase the number of I/O threads; it only allows more connections to queue up, worsening the starvation.",
      "fail_rate": 0.7,
      "condition": "",
      "sources": []
    },
    {
      "action": "Disable I/O threads entirely by setting io-threads to 1.",
      "why_fails": "This removes the thread pool but shifts all I/O to the main thread, potentially causing CPU bottlenecks and higher latency.",
      "fail_rate": 0.5,
      "condition": "",
      "sources": []
    },
    {
      "action": "Restart Redis to clear the thread pool state.",
      "why_fails": "The pool exhaustion is due to configuration and load, not a transient state; restarting only provides temporary relief until the same load returns.",
      "fail_rate": 0.8,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Increase the number of I/O threads in redis.conf: io-threads 8 (adjust based on CPU cores) and restart Redis.",
      "success_rate": 0.85,
      "how": "Increase the number of I/O threads in redis.conf: io-threads 8 (adjust based on CPU cores) and restart Redis.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Reduce the number of concurrent connections by implementing connection pooling in client applications, e.g., using a pool with max 50 connections per client.",
      "success_rate": 0.8,
      "how": "Reduce the number of concurrent connections by implementing connection pooling in client applications, e.g., using a pool with max 50 connections per client.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Enable I/O thread read/write by setting io-threads-do-reads yes (if not already enabled) to distribute load more evenly.",
      "success_rate": 0.75,
      "how": "Enable I/O thread read/write by setting io-threads-do-reads yes (if not already enabled) to distribute load more evenly.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Increase the number of I/O threads in redis.conf: io-threads 8 (adjust based on CPU cores) and restart Redis.",
    "Reduce the number of concurrent connections by implementing connection pooling in client applications, e.g., using a pool with max 50 connections per client.",
    "Enable I/O thread read/write by setting io-threads-do-reads yes (if not already enabled) to distribute load more evenly."
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://redis.io/docs/latest/operate/oss_admin/io-threads/",
  "official_doc_section": null,
  "error_code": "ERR",
  "verification_tier": "ai_generated",
  "confidence": 0.82,
  "fix_success_rate": 0.8,
  "resolvable": "true",
  "first_seen": "2023-11-01",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}