有人可以解释我们在kurento.conf.json
档案中的各种参数。
尝试创建对象时引发异常的资源使用限制
"exceptionLimit": "0.8"
但是我看到这个参数在配置文件中被注释,是否有任何理由被注释或者我们不应该使用它?
没有对象存活时重新启动服务器的资源使用限制
"killLimit": "0.7"
即使对此参数进行了注释,是否建议进行更改并使用此参数?
"garbageCollectorPeriod": 240
,如果我们将此值从240
更改为10-20
秒,会有任何性能问题吗?
"threads": 10
,根据我的理解,这些线程负责处理传入连接,因此建议将此线程数增加到更高的值,否则会造成严重的CPU使用?
PS:我曾尝试调整线程数和垃圾收集计数,但我没有观察到很多变化,可能是因为我无法在KMS上生成负载
答案 0 :(得分:3)
在.conf.json
个文件中,一些参数被评论只是为了表明它们在那里并且可以使用,而其他参数则用于显示默认值。您可以取消注释以激活它们。
"exceptionLimit"
:当服务器负载为80%时,媒体服务器将引发异常。默认情况下,此功能处于活动状态,此处显示默认值。"killLimit"
:这是一个安全功能,可以在没有媒体元素存活时检查机器的负载。如果资源高于限制,并且没有实例化对象,则停止媒体服务器实例。这是因为在某些情况下,当没有对象存活时,媒体服务器会占用资源。这个问题已经解决了,但这个功能只是为了以防万一。默认情况下它不活动。"garbageCollectorPeriod"
:媒体元素保持活动状态的秒数,当它们绑定的websocket会话关闭时。这是为了防止您忘记释放管道,并且关闭连接到介质服务器的websocket。如果你整洁,你在这里看不出太大区别。"threads"
:参加请求的线程数。这在极端负载情况下很重要,例如当许多用户同时加入一个房间时,他们都会同时请求新的端点。不太可能在这里看到很大的影响。我不认为你会通过改变其中任何一个来看到巨大的差异,但在非常具体的情况下。
答案 1 :(得分:2)
"exceptionLimit"
:默认值已为0.8
,因此如果您不更改该值,则对其进行评论或取消注释无效。此参数配置在创建新对象时引发异常之前可以使用的资源量。检查的资源是内存和线程,使用应用程序具有的限制。
"killLimit"
:如果配置中不存在,则禁用此项。如果已设置,如果资源超出限制,则在销毁所有对象时将终止mediaserver。这对于确保服务器没有泄漏内存或线程非常有用。
"garbageCollectorPeriod"
:您在此处设置的时间越短,cpu消耗就越高。不是CPU消耗的巨大增长,而是获得可能会延迟其他操作的关键区域。我从未将此设置为不到一分钟。
"threads"
:这是处理RPC的线程。媒体在自己的线程上处理。增加这个数字,如果你没有大量的请求,除了增加一个等待请求的线程池之外什么都不做。由于上下文切换,在进程上拥有大量线程会影响其性能。此外,进程可以使用的线程数量是有限的,因此如果您不需要将它们花在控件上,那么由于线程分类,媒体部分可能会失败。