Replies: 3 comments 3 replies
-
TranscodeWebhook can help you. Unlike AdmissionWebhook, TranscodeWebhook passes the profile information of the input stream exactly. If you know the maximum performance of your system, this can help you decide if you should block the stream. |
Beta Was this translation helpful? Give feedback.
-
And Memory Leak means that the memory is increasing because it is not freed due to a bug. In this case, how about we use Queue overflow or other more clear terms to express the problem more clearly? |
Beta Was this translation helpful? Give feedback.
-
Thanks @getroot and sorry for using the wrong terminology. You're right about TranscodeWebhook but that only applies before a stream begins and as you stated, is effective if you know the maximum performance of each system - which is difficult to calculate consistently from system to system, stream to stream. My feature request here is to expand the alert module - how about sending a webhook to alert for queue overflow incidents and allow us to cancel just the process that is causing the queue overflow? For example, if there are 10 streams with 10 thumbnail publishers, and one of the thumbnail transcodes begins to overflow the queue - we would be able to stop or pause that transcode until the queue is under the threshold again. |
Beta Was this translation helpful? Give feedback.
-
We already know that transcoders will consume all system memory if their queues cannot be kept up with. Now as customers are streaming more in 4K and higher bitrates, we are also seeing memory leak issues with AppWorker. Specifically, even if you assign a higher number of threads to AppWorker it will max out at one thread per stream and in cases where that one thread cannot handle the workload, it will eat system memory at the same rate new data is incoming.
Some solutions could be:
None of these solutions are easy, but this is becoming more of a real-world problem over time and it is ultimately translating into "OvenMediaEngine can't handle high-bitrate streams" which is not really true.
Example: If we have an OME server with 10 HD streams that use a Thumbnail publisher, then somebody starts streaming HEVC, the only way to prevent OME from crashing for everybody is to go in and disable the Thumbnail publisher for everybody, then restart OME.
Another example: If we have a well-balanced server where many users are streaming in, it only takes one user sending a high bitrate to end the party for everybody. We could use the alert module to cancel that one high-bitrate stream, but it doesn't make sense to do this when more than 80% of the CPU is sitting idle.
Sorry if I seem a little frustrated here, but both myself and my customers have been seeing these problems a lot lately. And I don't have a solution for them besides "OME doesn't handle high-bitrate streams and you need to disable thumbnails/transcodes entirely if you are sending even one HEVC or high resolution stream". Hopefully together we can find a better solution.
Beta Was this translation helpful? Give feedback.
All reactions