问题标签 [warm-up]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
564 浏览

simulation - 如何在 AnyLogic 中设置“预热期”

我想在 AnyLogic 个人学习版中设置预热期。我在AnyLogic中搜索了热身期的地方,但是我找不到任何关于热身期的东西。

Anylogic是否有热身期或类似的东西?

0 投票
2 回答
1258 浏览

sql-server - Entity Framework 6.2 数据库先预热

我的 MVC 解决方案中有一个 EF 6.2 项目。

这使用了一个 SQL 服务器数据库,并且有大约 40 个带有许多外键的表。

第一个查询很慢,20 秒。

我立即再次访问同一页面,更改了用户参数,查询时间不到 1 秒。

所以这看起来像是 EF6 中的一个热身问题。没关系,我可以做很多事情来进行排序。

  1. 模型缓存(EF6.2 的一部分)看起来可能是有益的,但在我读到它的任何地方都首先声明模型。首先与DB无关。这仍然可以首先与 db 一起使用吗?
  2. 还有 Entity Framework 6 电动工具,这些允许我生成视图。试过这个,它似乎没有任何区别。这仍然是一条有效的路线吗?
  3. 还有其他想法吗?
0 投票
1 回答
1237 浏览

azure - 如何在 Microsoft Azure 中配置 Web 服务应用程序的预热

在 IIS 上,我可以配置我的 web 服务,启用应用程序初始化、AlwaysRunning 和 Preload,以确保第一个请求足够快。现在我正在尝试在 Microsoft Azure 中创建一个类似的 Web 服务。但是,第一个请求非常慢。我尝试使用“始终开启”来加速它,但这不起作用。需要什么配置才能确保在 Azure 中正确进行预热?

我想让 Azure 在重新启动应用程序或刷新 web.config 时做出与 IIS 相同的反应。除了“始终开启”功能外,我找不到执行此操作所需的设置。我在其他页面上搜索过,但大多数解决方案都是关于网站页面的预热。是否有(简单)配置可用于在 Azure 应用服务中预热 Web 服务?

0 投票
1 回答
227 浏览

java - 预热会加快在 Java 中发送 http 请求的速度吗?

我想知道通过多次发送无害的请求来预热代码是否会减少我们在 Java 中接收响应的时间?

0 投票
0 回答
179 浏览

c++ - C++ std::threads 有预热期吗?

一点背景知识 - 我正在运行以下设置:

  • i5 8300H(4核8线程)
  • 32 GB 内存
  • Ubuntu 19.10
  • GCC 9.2.1、C++17 标准

我有一个线程管理器——本质上是一个对象,你可以将一些数据传递给它,你给它一个可调用的对象,然后你可以并行运行任务,并且线程管理器能够使线程超时(如果某些任务挂起,因为我正在做的事情可能就是这种情况),分批给他们数据,等等。

此行为的伪代码如下:

我没有使用任何奇异的东西,这一切都是使用普通的 std::thread、std::list、std::future 和 std::promise 完成的。

长话短说,你给线程它的数据。当您评估线程所做的事情时,如果整个批次失败(即没有解决任何数据元素),则整个批次将被转移到一个 failed_tasks 容器中,该容器稍后会被返回。这些失败的批次随后会通过运行 batch_size 为 1 的任务来解决(因此,当任务超时时,确实需要手动检查),但这部分并不重要。如果至少有 1 个数据元素已解析,则将未解析的部分传输回数据容器。这会一直运行,直到所有数据元素都被解析或标记为 failed_tasks。

现在,通常,假设我在 7 个线程上的 100000 个元素上运行它。发生的情况是,我第一次运行它时,多达 2000 个元素超时。第二次也有类似的情况,500-2000 个元素超时。但这是奇怪的部分 - 运行几次后,我得到了预期的行为,大约 2-5 个任务失败。

查看正在运行的函数,它平均单线程每秒可以处理 10500 个数据元素。它的最小运行时间不到一纳秒,而观察到的最大运行时间是几毫秒(它将数据与正则表达式匹配,并且存在或多或少充当 DoS 攻击的序列,因此会大大减慢执行速度) . 在 7 个线程上运行通常可以平均每秒处理 70000 个数据元素,因此效率约为 95%。但是,当最初的几次运行发生时,这会下降到每秒 55000 个数据元素,这大约是 75% 的效率,性能显着下降。现在,性能并不是那么关键(我需要每秒处理 20000 个数据元素,一个任务 2 个线程就足够了),

我读过这个:

在多线程处理中真正“热身”线程是什么?

但似乎该行为是由 JIT 解释器引起的,这是 C++ 在编译时所没有的。我知道 std::thread 开销,但怀疑它不是那么大。我在这里所经历的类似于热身,但我从未听说过线程有热身期。即使我更改数据(每次运行,不同的数据集),这种行为也是一致的,所以我怀疑没有缓存可以加速它。

实现可能是正确的,它已经过审查和正式测试。代码主要是 C 和 C++ 并且正在积极维护,所以我怀疑这不是错误。但是我在互联网上找不到其他人有同样的问题,所以这让我想知道我们是否缺少任何东西。

有人知道为什么会发生这种热身吗?

编辑:工作是这样执行的:

线程运行的函数接收一个未来,线程可以在对下一个数据元素运行任务之前检查该未来,这里称为未来。

0 投票
1 回答
2266 浏览

java - 春季启动的 AWS Lambda 冷启动问题

我是 aws lambda 的新手,我正在将基于 spring boot 2.x 的项目转移到 lambda。但我在 lambda 冷启动和热身方面遇到了困难。我尝试了这个链接中提到的一些东西:https://github.com/awslabs/aws-serverless-java-container/wiki/Quick-start---Spring-Boot,但应用程序仍然需要大约 45 秒才能启动.

我尝试过的事情:

  1. 来自上述链接的异步初始化。它确实有所帮助,但还不够。

  2. 跳过 lambda 的 Init 阶段。它帮助减少了近 8 秒。

  3. 预置并发,但据我所知,它也无济于事。当我看到日志时,每次都会初始化 spring 上下文,如果有任何请求在 15-20 分钟的间隔后出现。

我的 lambda 在不同场景下的响应时间是:

为了减少此响应时间,我正在考虑每 5 或 10 分钟对我的 lambda 进行一次 REST 调用,以便将 spring 上下文保留在内存中,从而有助于更快地处理请求。这个调用就像一个健康检查调用,几乎没有处理。

这是一个可取的方法吗?或者有没有更好的方法来实现这个目标?

我不清楚 AWS 在这种情况下是否会收费。

0 投票
0 回答
127 浏览

tensorflow - Ansible:张量流二进制复制数据损坏

我正在尝试使用 ansible 复制模块将 TensorFlow 预热文件复制到服务器。一旦它被复制,容器就会抛出错误:

我尝试检查编码类型:

通过 scp 复制文件可以正常工作,但是通过 ansible 复制时失败。

我也尝试过 ansible模板模块:

但这也不起作用。

0 投票
1 回答
842 浏览

asp.net-mvc - 未调用 Azure 应用服务预热 ping 路径

我一直在尝试使用“WEBSITE_SWAP_WARMUP_PING_PATH”应用服务配置进行插槽预热设置,如Ruslan 的博客中所建议的那样。不幸的是,我没有看到它按我预期的方式工作。我的预期是,如果“WEBSITE_SWAP_WARMUP_PING_STATUSES”中列出的状态代码与“WEBSITE_SWAP_WARMUP_PING_PATH”响应代码不匹配,则插槽交换操作将失败。我什至在我的热身路径中硬编码了一个 500 状态代码,但插槽交换继续成功完成。

不匹配的状态码不应该阻止插槽交换吗?

这是我的控制器操作:

这是我的应用服务配置设置

编辑: 我什至更进一步,完全删除了这个动作。应用程序现在应该返回 400。但是,当我打开请求跟踪时,我可以看到我实际上得到了 307。

在此处输入图像描述

0 投票
3 回答
113 浏览

asp.net - 以编程方式重新启动 .NET Web 应用程序的最快方法

我正在为一个 Web 应用程序编写一些 e2e 测试,其中有很多我需要与之交互的代码超出了我的控制范围。为了在每个测试或测试组开始时设置我的应用程序,我打算使用 sql 脚本将数据库播种到已知状态,然后强制 Web 应用程序重新启动,以便我无法控制的所有内部缓存都被重置.

考虑到这一点,有谁知道哪种方法可以让我以最快的速度重新启动 Web 应用程序?

我有的选择是:

  1. 触摸 web.config
  2. 在根目录中创建然后删除 app_offline.htm 文件
  3. 创建一些可以调用 HttpRuntime.UnloadAppDomain 的 API

这些方法中的任何一种都比其他方法更快吗?它们实际上都一样吗?

0 投票
1 回答
62 浏览

cassandra - Janusgraph 热身

Janusgraph 会进行一些内部活动,因此在开始 1-2 次运行时会出现峰值。(即使在 10 QPS 时),之后它会变得稳定。一旦稳定,就没有观察到尖峰,这是预期的行为,需要一些热身运行以使其稳定吗?使用后端 Cassandra CQL。