.NET Core is different than PHP or other interpreted languages have the upside of not staying in memory very long, just the duration of the interpration will cost CPU cycles and memory. With .NET Core this is different. Kestrel web server will take a bit of memory and CPU while the application is running (continuously). On top of that, .NET Core is a completely different beast when it comes to applications.
In PHP we have the “max_execution_time” and “memory_limit” php.ini directives. In .NET Core there are no such things (for now). This means that users can possibly run applications that spin up a number of long-running background tasks, reserve big blocks of memory (e.g. reading a 2GB file in memory) and do other stuff that’s not really possible with PHP (unless limits have been changed).
We advise you to run .NET Core in production environments on CloudLinux. CloudLinux has the unique feature of being able to sandbox users’ resources through use of the LVE (Lightweight Virtual Environment), basically limiting users’ resource usage straight from the kernel.
Where you would be able to offer 500 users shared PHP hosting, the ceiling for server resources might lie a lot lower when offering .NET Core. We have no real-world benchmarks yet, but will add them once we have them!