Skip to content

Thread pools tuning

Since build 5.2.1992 it is possible to change a thread pools setting for signaling, media publishing and playback.

By default, WCS uses thread pools configured as follows:

thread_pools_config.json
{
    "rtmp_SERVER": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "RTMP",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "deadlockAwareNioWorkers": true,
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "rtmfp_SERVER": {
        "staticPool": false,
        "executionHandlerInPipeline": false,
        "prefix": "RTMFP",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "ws_SERVER": {
        "staticPool": false,
        "executionHandlerInPipeline": false,
        "prefix": "WS",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "deadlockAwareNioWorkers": true,
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "flash_POLICY_SERVER": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "FlashPolicy",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "deadlockAwareNioWorkers": true,
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "turn_SERVER": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "TurnServer",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "deadlockAwareNioWorkers": true,
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "http_SERVER": {
        "staticPool": false,
        "executionHandlerInPipeline": false,
        "prefix": "HTTP",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "deadlockAwareNioWorkers": true,
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "rtsp_SERVER": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "RTSP",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "deadlockAwareNioWorkers": true,
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "hls_SERVER": {
        "nativeStack": true
    },
    "ws_CDN_SERVER": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "CDNInbound",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "deadlockAwareNioWorkers": false,
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "ws_CDN_AGENT": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "CDNOutbound",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "rtmp_AGENT": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "RtmpPublisher",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "rtsp_AGENT": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "RtspAgent",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "ws_WCS_AGENT": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "WCSAgentWS",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "webRTC_TCP_CLIENT": {
        "staticPool": false,
        "executionHandlerInPipeline": false,
        "prefix": "TcpClient",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "webRTC_UDP": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "STUN-UDP",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "frep_SERVER": {
        "staticPool": false,
        "executionHandlerInPipeline": false,
        "prefix": "FREP-Server",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "deadlockAwareNioWorkers": false,
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "frep_AGENT": {
        "staticPool": false,
        "executionHandlerInPipeline": false,
        "prefix": "FREP-Client",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "webRTC_TCP_SERVER": {
        "staticPool": false,
        "executionHandlerInPipeline": false,
        "prefix": "ICE-TCP",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "deadlockAwareNioWorkers": false,
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "mpeg_TS_UDP": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "MPEG-TS-UDP",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "nio": true,
        "boss": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    },
    "mpeg_TS_SRT": {
        "staticPool": true,
        "executionHandlerInPipeline": false,
        "prefix": "MPEG-TS-SRT",
        "worker": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        },
        "executionHandler": {
        "custom": false,
        "coreThreads": 4,
        "maxThreads": 8,
        "threadTimeoutSec": 300,
        "queueSize": 100
        }
    }
}

In most cases, the thread pools settings should not be changed. But, they may be tuned to optimize a server CPU and memory load. The configuration file /usr/local/FlashphonerWebCallserver/conf/thread_pools_config.json is used to change a parameters. The following example disables Non-blocking IO usage for WebRTC TCP transport to reduce an operative memory consumption:

{
      "webRTC_TCP_SERVER": {
        "nio": false
      },
      "webRTC_TCP_CLIENT": {
        "nio": false
      }
}

WCS must be restarted to apply the changes.

The following parameters are enough to be changed:

  • nio - enables/disables Non-blocking IO usage
  • staticPool - enables/disables static (non-expandable) thread pool usage

An actual settings and current thread pools state may be checked using the following statistics query

curl -s 'http://localhost:8081/?action=stat&format=json&groups=thread_pools_group_param'

The response example:

thread_pools_group_param
{
    "thread_pools_group_param": {
        "thread_pools_info": {
        "WebRTC_TCP_SERVER": [],
        "WebRTC_TCP_CLIENT": [],
        "WebRTC_UDP": [],
        "RTMP_SERVER": [
            {
            "boss": {
                "threads_count": 1,
                "tasks_queue_size": 1,
                "threads_state": {
                "RTMP-BOSS-pool-12-thread-1": "RUNNABLE"
                }
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            }
        ],
        "RTMP_AGENT": [],
        "WS_SERVER": [
            {
            "boss": {
                "threads_count": 1,
                "tasks_queue_size": 1,
                "threads_state": {
                "SSL-WS-BOSS-pool-18-thread-1": "RUNNABLE"
                }
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            },
            {
            "boss": {
                "threads_count": 1,
                "tasks_queue_size": 1,
                "threads_state": {
                "DASHBOARD-SSL-WS-BOSS-pool-10-thread-1": "RUNNABLE"
                }
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            },
            {
            "boss": {
                "threads_count": 1,
                "tasks_queue_size": 1,
                "threads_state": {
                "WS-BOSS-pool-16-thread-1": "RUNNABLE"
                }
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            },
            {
            "boss": {
                "threads_count": 1,
                "tasks_queue_size": 1,
                "threads_state": {
                "DASHBOARD-WS-BOSS-pool-8-thread-1": "RUNNABLE"
                }
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            }
        ],
        "TURN_SERVER": [
            {
            "boss": {
                "threads_count": 1,
                "tasks_queue_size": 1,
                "threads_state": {
                "TurnServer-BOSS-pool-42-thread-1": "RUNNABLE"
                }
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            }
        ],
        "HTTP_SERVER": [
            {
            "boss": {
                "threads_count": 2,
                "tasks_queue_size": 2,
                "threads_state": {
                "SSL-HTTP-BOSS-pool-4-thread-1": "RUNNABLE",
                "SSL-HTTP-BOSS-pool-4-thread-2": "RUNNABLE"
                }
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            },
            {
            "boss": {
                "threads_count": 2,
                "tasks_queue_size": 2,
                "threads_state": {
                "HTTP-BOSS-pool-2-thread-1": "RUNNABLE",
                "HTTP-BOSS-pool-2-thread-2": "RUNNABLE"
                }
            },
            "worker": {
                "threads_count": 1,
                "tasks_queue_size": 1,
                "threads_state": {
                "HTTP-pool-3-thread-5": "RUNNABLE"
                }
            }
            }
        ],
        "RTSP_SERVER": [
            {
            "boss": {
                "threads_count": 1,
                "tasks_queue_size": 1,
                "threads_state": {
                "RTSP-BOSS-pool-40-thread-1": "RUNNABLE"
                }
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            }
        ],
        "RTSP_AGENT": [],
        "WS_CDN_SERVER": [
            {
            "boss": {
                "threads_count": 1,
                "tasks_queue_size": 1,
                "threads_state": {
                "CDNInbound-BOSS-pool-21-thread-1": "RUNNABLE"
                }
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            }
        ],
        "WS_CDN_AGENT": [],
        "MPEG_TS_UDP": [],
        "MPEG_TS_SRT": [],
        "WS_WCS_AGENT": [
            {
            "boss": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            }
        ],
        "FREP_SERVER": [],
        "FREP_AGENT": [],
        "RTMFP_SERVER": [
            {
            "worker": {
                "threads_count": 1,
                "tasks_queue_size": 1,
                "threads_state": {
                "RTMFP-pool-15-thread-1": "RUNNABLE"
                }
            }
            }
        ],
        "FLASH_POLICY_SERVER": [
            {
            "boss": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            },
            "worker": {
                "threads_count": 0,
                "tasks_queue_size": 0,
                "threads_state": {}
            }
            }
        ]
        },
        "thread_pools_config": {
        "rtmp_SERVER": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "RTMP",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "deadlockAwareNioWorkers": true,
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "rtmfp_SERVER": {
            "staticPool": false,
            "executionHandlerInPipeline": false,
            "prefix": "RTMFP",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "ws_SERVER": {
            "staticPool": false,
            "executionHandlerInPipeline": false,
            "prefix": "WS",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "deadlockAwareNioWorkers": true,
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "flash_POLICY_SERVER": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "FlashPolicy",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "deadlockAwareNioWorkers": true,
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "turn_SERVER": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "TurnServer",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "deadlockAwareNioWorkers": true,
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "http_SERVER": {
            "staticPool": false,
            "executionHandlerInPipeline": false,
            "prefix": "HTTP",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "deadlockAwareNioWorkers": true,
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "rtsp_SERVER": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "RTSP",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "deadlockAwareNioWorkers": true,
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "hls_SERVER": {
            "nativeStack": true
        },
        "ws_CDN_SERVER": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "CDNInbound",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "deadlockAwareNioWorkers": false,
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "ws_CDN_AGENT": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "CDNOutbound",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "rtmp_AGENT": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "RtmpPublisher",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "rtsp_AGENT": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "RtspAgent",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "ws_WCS_AGENT": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "WCSAgentWS",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "webRTC_TCP_CLIENT": {
            "staticPool": false,
            "executionHandlerInPipeline": false,
            "prefix": "TcpClient",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "webRTC_UDP": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "STUN-UDP",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "frep_SERVER": {
            "staticPool": false,
            "executionHandlerInPipeline": false,
            "prefix": "FREP-Server",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "deadlockAwareNioWorkers": false,
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "frep_AGENT": {
            "staticPool": false,
            "executionHandlerInPipeline": false,
            "prefix": "FREP-Client",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "webRTC_TCP_SERVER": {
            "staticPool": false,
            "executionHandlerInPipeline": false,
            "prefix": "ICE-TCP",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "deadlockAwareNioWorkers": false,
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "mpeg_TS_UDP": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "MPEG-TS-UDP",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "nio": true,
            "boss": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        },
        "mpeg_TS_SRT": {
            "staticPool": true,
            "executionHandlerInPipeline": false,
            "prefix": "MPEG-TS-SRT",
            "worker": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            },
            "executionHandler": {
            "custom": false,
            "coreThreads": 4,
            "maxThreads": 8,
            "threadTimeoutSec": 300,
            "queueSize": 100
            }
        }
        }
    }
}

The following parameters are shown:

  • threads_count - threads count in the pool
  • tasks_queue_size - task queue size served by the pool
  • threads_state - list and current state of threads in the pool
  • thread_pools_config - current thread pools configuration