我有一个ASP.NET Core API应用程序,我需要在Ubuntu上运行的生产服务器上发布。当发布应用程序并在MS Windows上运行时,它需要合理的内存量。
的数据当我将应用程序移动到我的生产服务器时,htop显示与Windows相比,它需要大量的内存。
htop
的数据那么为什么会发生这种情况呢?另一个问题是:为什么有多个操作系统进程运行同一个应用程序?
2ic8powd1#
问题出在我使用的.NET版本:.NET 7.0。请参阅Huge memory usage regression in dotnet 7 on linux Github issue。对于运行相同应用程序的操作系统进程:线程数:由内核实现为进程。也就是说,没有专门的数据结构来表示线程。相反,线程是共享某些资源的进程内核通过线程ID(TID)和线程组ID(TGID)来标识线程,共享的TGID值意味着多线程进程(在用户领域;也有内核线程,但那超出了我们的范围)。
1条答案
按热度按时间2ic8powd1#
问题出在我使用的.NET版本:.NET 7.0。请参阅Huge memory usage regression in dotnet 7 on linux Github issue。
对于运行相同应用程序的操作系统进程:
线程数:由内核实现为进程。也就是说,没有专门的数据结构来表示线程。相反,线程是共享某些资源的进程内核通过线程ID(TID)和线程组ID(TGID)来标识线程,共享的TGID值意味着多线程进程(在用户领域;也有内核线程,但那超出了我们的范围)。