Перейти к содержанию

Тонкая настройка процессорных потоков

Начиная со сборки 5.2.1992 , добавлены возможности управления процессорными потоками (threads) сервера, обслуживающими соединения для сигналинга, публикации и проигрывания медиа потоков.

По умолчанию, процессорные потоки организуются в пулы, настроенные следующим образом:

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
        }
    }
}

Как правило, изменение настроек по умолчанию не требуется. Однако, если необходимо оптимизировать нагрузку, можно изменять отдельные параметры пулов процессорных потоков. Для этого используется конфигурационный файл /usr/local/FlashphonerWebCallserver/conf/thread_pools_config.json, в котором указываются изменяемые параметры. Например, таким образом можно отключить использование Non-blocking IO при передаче WebRTC по TCP для уменьшения расхода оперативной памяти:

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

Необходимо перезапустить WCS, чтобы применить изменения.

Допускается изменять следующие параметры:

  • nio - включает/отключает использование Non-blocking IO
  • staticPool - включает/отключает использование статического (нерасширяемого) пула процессорных потоков

Актуальную настройку и текущее состояние пулов процессорных потоков можно проверить при помощи запроса статистики

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

Пример ответа на запрос:

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
            }
        }
        }
    }
}

Отображаются следующие параметры:

  • threads_count - количество процессорных потоков в пуле
  • tasks_queue_size - размер очереди задач, обслуживаемых пулом процессорных потоков
  • threads_state - список и текущее состояние процессорных потоков в пуле
  • thread_pools_config - текущая настройка процессорных потоков