- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在 Azure 上进行了相当高负载的部署:4 个大型实例每秒处理大约 300-600 个请求。正常情况下:“平均响应时间”为70到150ms,但有时可能会增长到200-300ms,但绝对没问题。
不过,每天一两次(不是在“高峰时段”)我会在“网站监控”选项卡上看到这样的图片:
因此,每分钟的请求数显着下降,平均响应时间增长到 3 分钟,一段时间后 – 一切恢复正常。
在此“停电”期间,只有 0.1% 的请求被丢弃(HTTP 服务器超时错误),其他请求只是在队列中等待,通常会在几分钟后得到处理。不过,并非所有客户都准备好等待:-(
内存使用率始终低于30%,CPU使用率最高为40-50%。
我已经检查过什么?:
造成此类问题的原因可能是什么?接下来我可以检查什么?
提前谢谢大家!
更新 1:BenV 提出了值得尝试的好东西,但不幸的是它没有显示任何内容:-(
我配置了进程每 500k 请求回收一次,并添加了工作节点,因此现在 CPU 利用率全天低于 40%,但仍然出现停电情况。
更新 2:项目使用 ASP.Net MVC 4。
最佳答案
我也遇到了同样的问题。对我来说,我在日志中看到了很多 WinCache 错误。
每当站点出现故障时,日志中都会出现大量 WinCache 错误。 WinCache 是 IIS 处理 PHP 的方式,以尝试加快处理速度。它是 Microsoft 构建的附加组件,默认在 IIS 和所有 Azure 站点中启用。 WinCache 将挂起,而不是回收和继续,它会消耗实例上的所有内存和文件句柄,本质上将其锁定。
我在 Azure 门户中添加了新的应用程序设置,以扫描文件夹中的 php.ini 设置更改。
d:\home\site\ini
在d:\home\site\ini\settings.ini中添加了一个文件包含以下内容
wincache.fcenabled=1
session.save_handler = files
memory_limit = 256M
wincache.chkinterval=5
wincache.ucachesize=200
wincache.scachesize=64
wincache.enablecli=1
wincache.ocenabled=0
<小时/>这做了一些事情:
wincache.fcenabled=1
使用 WinCache 启用文件缓存(我认为这是默认设置)
session.save_handler = files
将 session 处理程序从 WinCache(Azure 默认)更改为基于标准文件,以减少缓存引擎压力
memory_limit = 256M
wincache.chkinterval=5
wincache.ucachesize=200
wincache.scachesize=64
wincache.enablecli=1
将每个线程的 WinCache 大小设置为 256 MB,并限制总体缓存大小。这会迫使 WinCache 清除旧数据并更频繁地回收缓存。
wincache.ocenabled=0
这是一件大事。禁用 WinCache 操作代码缓存。这就是 WinCache 将实际的 PHP 脚本缓存到内存中。文件仍然从第一行开始缓存,但 PHP 是按正常方式解释的,并且不会缓存到大型二进制文件中。
我的 Azure 网站从大约每 3 天崩溃一次(日志与您的日志类似)到迄今为止连续 120 天没有出现任何问题。
祝你好运!
关于c# - 此类 Azure 网站挂起的原因可能是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745322/
似乎有很多方法可以在 Azure 中自动使用 PowerShell。由于 ARM 模板是最新的,Azure 中的其他 PowerShell 选项是否已过时?这些工具/脚本之间有什么区别: Azure
我正在开发一个将托管在 Azure 中的 Web API。我想使用 Azure 诊断将错误记录到 Azure 表存储中。在经典门户中,我可以将日志配置为转到 Azure 表存储。 Classic Po
Azure 文件存储事件可以触发 Azure WebJob 或 Azure Function 吗? 例如,在文件夹“/todo/”中创建文件时。 最佳答案 我们目前没有任何 Azure 文件绑定(bi
我需要创建一个逻辑应用程序,我的要求是,我需要从 azure data Lake Gen2 文件夹迁移 json 文件,并根据某些值需要将该 json 转换为 xml,然后将其发送到 SQL。 因此,
我使用 VS Code 创建了 1 个 node.js 和 1 个 java Azure Function 当我使用 VS Code 将这两个函数部署到 Azure 时,我最终获得了这么多 Azure
收集 Azure 诊断数据时,暂存槽是否也会将诊断数据发送到 WadPerformanceCounters 表? 如果是这样,我该如何关闭它?或者在阅读诊断信息时如何区分暂存/生产。 我不想显示有关我
您好,我是 Azure 的新手。我有 VS 2012 和 Azure SDK 2.1,当我使用模拟器运行我的 Web 应用程序时一切正常。但是当我在 azure 上部署时出现错误消息: Could n
我很难区分 Azure 订阅和 Azure 租户有何不同?我尝试使用示例来弄清楚,但每次我得出的结论是它们在某种程度上是相同的?如果租户是组织在注册 Microsoft 云服务时接收并拥有的 Azur
如果我想在 Azure Insights 中设置自定义指标集合,并以(近)实时的方式可视化其中一些指标,并查看聚合的历史数据,我应该使用 Azure Metrics Explorer 还是 Azure
我想了解具有以下配置的 Azure 数据工厂 (ADF) 的现实示例/用例: Azure 集成运行时 (AIR) 默认值 自托管集成运行时(SHIR) 其他问题: 这两种配置(AIR 和 SHIR)是
请参阅下面来自 Azure 服务总线的指标。想要识别请求数量中的背景噪音|流量较低时的响应。假设振荡请求| session 中 amqp 握手的响应是潜在的。只是不明白这是什么类型的握手?从总线接收的
此问题与 Azure 事件中心和 Azure 服务总线之间的区别无关。 问题如下: 如果您将Azure Events Hub添加到您的应用程序中,那么您会注意到它依赖于Azure Service Bu
这两个事情是完全不同的,还是它们能完成的事情大致相同/相似? 最佳答案 Azure 辅助角色是“应用程序场”中您自己的一组虚拟机。您可以以分布式方式在它们上运行任何代码。通常,您编写业务代码以在这些服
我目前正在使用 Windows Azure 虚拟机来运行 RStudio, 我的虚拟机是 Windows Server R2 2012,它是 Azure 上的一项附加服务。 我还有一个 Azure 存
我们正在寻找托管一个网站(一些 css、js、一个 html 文件,但不是 aspx、一个通用处理程序)。 我们部署为: 1) Azure 网站 2) Azure 云服务 两种解决方案都有效。但有一个
我想从 Azure 表创建 blob。 AzCopy 支持此功能,但我找不到任何说明数据移动 API 也支持它的文档。此选项可用吗? https://azure.microsoft.com/en-us
This article表示 Azure 订阅所有者有权访问订阅中的所有资源。但是,要访问 Azure 数据库,必须是数据库中的用户,或者是 Azure Admin AD 组的成员。 无论 SQL 安
我尝试使用以下代码将 XML 文件上传到 Azure FTP 服务器: https://www.c-sharpcorner.com/article/upload-and-download-files-
除了 Azure 服务总线使用主题而 Azure 事件中心基于事件 - Azure 事件中心和 Azure 服务总线之间是否有任何根本区别? 对我来说,事件和消息之间没有真正的区别,因为两者只是不同类
我有一个通过虚拟网络网关连接到 Azure 虚拟网络的 Windows VPN 客户端。目标#1 是使用其内部 IP 地址连接到我的虚拟机。这有效。 第二个目标是使用其内部计算机名称进行连接(因为 I
我是一名优秀的程序员,十分优秀!