首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试Debugging使用CPU需求和数量

调试Debugging使用CPU需求和数量
EN

Stack Overflow用户
提问于 2020-03-25 01:31:29
回答 1查看 216关注 0票数 0

我正在加载测试应用程序引擎,所以我将它设置为使用默认类型的一个实例(即B1)。它有256 MB或RAM和600 MHz 1 CPU处理(https://cloud.google.com/appengine/docs/standard).

我有一个nodejs脚本,它运行一个php脚本,在计时器上执行一个MYSQL查找查询。目前,这个计时器每秒检查四次。我想测试它能支持多少用户,所以我将计时器除以不同的数量来模拟用户使用的不同数量的操作。

令我沮丧的是,我发现在5个模拟用户的情况下,实例运行在大约80%的CPU上。这意味着该应用程序每秒运行40次循环,这看起来就像是每秒有40个http请求。我已经读过,F1服务器每秒可以支持7200个请求,该服务器具有与B1服务器相同的规范。这么高的CPU使用率预期和/或我能做些什么来调试它,并可能使它更高效吗?

下面是有关程序流程的更多信息:

  1. 用户与socket.io连接并连接一个房间
  2. 服务器在计时器上运行脚本,每秒运行4次。
  3. 该脚本使用child_process运行一个php脚本,该脚本对Cloud服务器执行MySQL查询,以确定是否有任何值得从MySQL数据库收集的更新。(现在我只是测试没有更新,所以在这些测试中跳过了任何额外的查询。)
  4. php脚本将JSON数据返回给服务器,服务器看到没有什么可做的了。 通常,每个房间类型的脚本只运行一次(不管用户数量如何),但是为了测试服务器可以处理多少处理,我将计时器持续时间除以不同的数量,发现在频率的5倍时,服务器以80%的CPU运行。这在技术上意味着,如果经常有4条新消息,那么CPU的使用率预计约为80%。这在我看来很高。

所以,我现在想知道运行php脚本的child_process是否使用了非常多的CPU,因为它似乎是唯一可能使用这么多的东西。欢迎有识之士或建议。

EN

回答 1

Stack Overflow用户

发布于 2020-03-25 09:21:04

我已经读过,F1服务器每秒可以支持7200个请求,该服务器具有与B1服务器相同的规范。这么高的CPU使用率预期和/或我能做些什么来调试它,并可能使它更高效吗?

B1与F1实例不完全相同。诚然,B1和F1共享相同的规范,正如您所说的这里 for B1实例一样,唯一受支持的缩放类型是手动的和基本的。

换句话说,B1实例是使用手动和基本缩放进行缩放的,如果您没有在app.yaml中设置应用程序的期望,这可能会导致问题。

如果您定义了一个低数量的实例,并且您有流量尖峰,那么您将只剩下已经生成的实例,从而导致它们接收所有的通信量,从而有效地提高CPU和内存的使用率。

我的建议是使用支持自动缩放的实例类。自动缩放不仅是很好的,因为您不需要对您的流量设置精确的期望,而且您可以定义一个最小实例数和一个最大实例数,Google将处理与您的流量有关的实例的缩放或缩小。

这实际上有助于减少已经生成的所有实例类的负载,这意味着与手动或基本扩展相比,CPU和内存的使用率更低,总体性能更好。

此外,这里您可以找到关于如何在Google标准中处理请求的文档,以及一些可以利用的技巧和最佳实践,以提高性能和稳定性。

最后,如果您决定使用支持自动缩放的实例类,启用热身请求不仅可以帮助减少延迟,还可以通过在创建新实例类之前加载应用程序的新副本来降低代码的整体性能。这里你会发现更多关于热身请求的信息。

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60841828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档