因为在快速模式下,Visual Studio 调用时会docker build带有一个参数,告诉 Docker 仅在 Dockerfile 中创建第一个阶段(通常是基础阶段),应用程序的 DLL 在本地创建然后将 PC 作为安装件集成到映像中(更多信息请参见此处)。要停用“快速模式”,项目文件 (.csproj) 中的参数ContainerDevelopmentMode必须设置为值“常规”。
启动应用程序后,我们使用命令行命令搜索容器docker container ls,然后使用 .bashrc 启动命令行(bash)docker exec -it <container id> bash。然后,您可以在此命令行中使用 Dotnet 诊断工具。在我们的例子中,我们使用命令启动 dotnet-counters /tools/dotnet-counters。
您dotnet-counters ps可以查看所 贝宁 whatsapp 数据 有现有的 .NET 进程。该命令dotnet-counters monitor –process-id=<id>可用于监视通过 EventCounter 或 Meter API 发布的任何性能计数器值。例如,您可以使用它来显示所有 Dotnet 指标。线程池分析的重要指标是线程池队列长度和线程池线程计数。
要重现该问题,我们需要将系统置于负载下并观察其行为。这就是另一个有用的工具发挥作用的地方:庞巴迪。 Bombardier 是一个 https 基准测试工具,可以向服务器发送大量请求以查看应用程序的响应情况。
对于加载,我选择了加载 SPA 页面时最慢的端点。我们启动应用程序并使用庞巴迪生成负载。同时,我们在容器中收集 dotnet 指标dotnet-counters collect -process-id=<id>。命令属性的collect意思是“收集文件中的指标”。
在 30 秒内加载 125 个连接时,端点的最大延迟为 1.17 分钟,这对于 API 来说当然太长了。
禁用 Visual Studio 的“快速模式”也很重要
-
- Posts: 355
- Joined: Sat Dec 21, 2024 5:32 am