Replies: 2 comments
-
It's not helpful but really, you should just be using Linux Trying to do any serious scaling with windows or Mac is asking for trouble regardless of what you're using software wise |
Beta Was this translation helpful? Give feedback.
0 replies
-
@naanlizard I know - but tell that to my customers 😝 My performance goal isn't that high - up to 500 viewers or 500Mbps total. Something I've never seen it do on Mac/Win without dying a horrible death. For my application, this would cover about 95% of use cases. Right now I tell them 100 viewers or 100Mbps total. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
OME is built for Linux natively but runs great on macOS and Windows under Docker - that is, until you connect a higher number of viewers or reach a higher aggregate amount of throughput.
In my testing, OME in Docker on macOS and Windows is safe up to whichever of these you hit first:
From there, increasing your raw CPU power or number of cores / workers only seems to help a tiny bit - and most of this power is left unused, with threads running at 10-15% CPU despite the WebRTC playback completely locking up for all viewers when you throw a lot of connections at it (thanks OvenRTCTester 😅)
Linux performs far better since macOS and Windows run Docker in an emulated environment. Similar to the excellent Linux kernel tuning options shared by Airensoft, there are some tuning options for macOS and Windows - for instance, kern.ipc.somaxconn allows a maximum of 128 TCP connections at a time by default in macOS. However these properties are protected by the OS so you need to use a script at boot to override them, or edit the registry in Windows. These would be considered science experiments in terms of supporting end-users.
So I turn this question to the community. Are any of you using macOS or Windows hosts with OME and squeezing more performance out of it somehow? Have I made some grave error in my testing that prevents me from realizing the proper real-world performance? Do you have ideas for performance tuning that we could turn into a boot-time script, or something else to help make the world a better place?
Thanks and long live OvenMediaEngine!! ⚡️
Beta Was this translation helpful? Give feedback.
All reactions