首页 > 系统相关 >【Azure App Service】在App Service for Windows上验证能占用的内存最大值

【Azure App Service】在App Service for Windows上验证能占用的内存最大值

时间:2024-11-13 21:21:15浏览次数:1  
标签:Service Windows app 内存 占用 bit App

问题描述

在创建App Service服务的时候,根据定价层不同,内存使用的最大值也有不同。但在实际测试中,发现内存最大只能占用2GB左右,

而定价层中内存分配明明是大于2GB(比如B3定价层的内存为7GB), 这是一种什么情况呢?

在App Service中Kudu工具上,查看进程分配的内存大小:

 

问题解答

使用一段简短C#代码来进行验证,代码是一个循环,根据URL中输入的数字,循环创建多个100MB大小的对象.

var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
var app = builder.Build();

app.MapGet("/oom/{objs}", (string objs) =>
{
    int objunmbers = int.Parse(objs);
    try
    {
        byte[][] largeArray = new byte[objunmbers][];
        for (int i = 0; i < objunmbers; i++)
        {
            largeArray[i] = new byte[1024 * 1024 * 100]; // 每个对象占用100MB
        }
        return "成功创建大数组对象: " + objs;
    }
    catch (OutOfMemoryException)
    {
        return "内存不足,无法创建大数组对象";
    }
});

app.Run();

代码本地调试,可以看见应用占用内存直线上涨:

 

部署到Azure App Service后,同样通过Kudu站点Process信息,发现内存的占用的确只有2GB左右,但请求需要更多内存资源时,页面返回:内存不足,无法创建大数组对象

这是因为App Service for Windows默认使用32位操作系统,最大内存只能分配2GB。

当主动修改位64位后,App Service 内存就可以占用到定价层所允许的最大值!

如B3的定价层在Kudu中查看到w3wp.exe进程分配的内存达到了6GB

 

根据以上测验,当使用App Service内存没有达到预期的值,且应用异常日志出现OutOfMemory时,就需要检查Platform的设置是否位64bit。

 

参考资料

I see the message "Worker Process requested recycle due to 'Percent Memory' limit." How do I address this issue? 

https://learn.microsoft.com/en-us/troubleshoot/azure/app-service/web-apps-performance-faqs#i-see-the-message-worker-process-requested-recycle-due-to-percent-memory-limit-how-do-i-address-this-issue

The maximum available amount of memory for a 32-bit process (even on a 64-bit operating system) is 2 GB. By default, the worker process is set to 32-bit in App Service (for compatibility with legacy web applications).

Consider switching to 64-bit processes so you can take advantage of the additional memory available in your Web Worker role. This triggers a web app restart, so schedule accordingly.

Also note that a 64-bit environment requires a Basic or Standard service plan. Free and Shared plans always run in a 32-bit environment.

 

标签:Service,Windows,app,内存,占用,bit,App
From: https://www.cnblogs.com/lulight/p/18544769

相关文章

  • 基于springboot+vue的Android的党员之家服务APP小程序(源码+文档+部署讲解等)
    课题简介本党员之家服务APP基于springboot+vue技术开发,专为Android平台设计,涵盖源码、文档和部署讲解,为党员们提供便捷、高效的服务。在资讯功能方面,APP会及时推送党的最新理论成果、政策解读、重要会议精神等内容,让党员能够第一时间了解党和国家的政治动态。同......
  • 泷羽sec专题课笔记-- Windows--补充Telnet连接Linux
    本笔记为泷羽sec《红队全栈课程》学习笔记,课程请可自行前往B站学习,课程/笔记主要涉及网络安全相关知识、系统以及工具的介绍等,请使用该课程、本笔记以及课程和笔记中提及工具的读者,遵守网络安全相关法律法规,切勿进行违法违规违纪的操作。写在最前面的话,我们为什么要学习......
  • Windows 下编译 Aseprite
    Aseprite(官网|GitHub)是一款开源的像素画软件,该软件在Steam有售,目前价格为70元。但它是开源软件,作者也允许我们自行编译来免费获得这份软件,通过编译得到的软件可用于创作商用作品(https://www.aseprite.org/faq/#can-i-sell-graphics-created-with-aseprite)。本文介绍在Wind......
  • PROG2004 A simple appointment system
     AssessmentBriefPROG2004OBJECTORIENTEDPROGRAMMINGSummaryTitleAssessment1–Programmingtasks-asimpleappointmentsystemforahealthservice TypeProgrammingDueDateMonday11November202411:59pmAEST(StartofWeek3)LengthNAWeighting20%......
  • ServiceMesh 4:实现流量染色和分级发布
    1什么是流量染色在复杂的生产场景中,经常会有同一个服务中,存在多个版本长期共存的需求。为了让不同的用户在不一样的版本中使用,就需要对用户的请求进行采样和染色,打上不同的标识。这样的目的有几个:支撑分级发布,避免全量发布时可能遇到的大规模风险,如系统崩溃、用户流失。支持......
  • Windows平台下安装与配置MySQL5.7
    1.下载mysql安装文件下载地址:https://downloads.mysql.com/archives/installer/  2.安装与配置MySQL双击打开,接受许可协议,点击下一步:选择自定义安装,点击下一步:选择要安装的产品,点击下一步:点击执行按钮:安装完成,点击下一步进入配置界面:配置界面继续点击下一步:进......
  • App中第三方登录和分享模块的实现
    @目录1流程2设计与实现3优化本文目的:“实现一套易于使用、维护的第三方登录和分享模块”我们开发App有时为了吸引用户,会引入三方的授权登录降低用户的注册和登录操作,同时会根据业务需求引入三方的分享服务。目前可用的第三方授权登录和分享有很多,国内比较常用的有微信、QQ、......
  • 【转】【C#】Windows服务运行exe程序
    在“Windows服务”中,上述代码还是可以运行exe程序的,但是我们看不到。在“控制台应用程序”中,我们可以看到被执行的exe程序,但是到了“Windows服务”中,该exe变成了后台执行,无法与用户进行交互。原因如下:  默认情况下,服务是运行在session0下的,与普通的应用程序不在一个session,所以......
  • App Store上架4.3以后还可以通过吗?
    AppStore上架被拒4.3以后仍然有可能通过,但需要开发者对应用做出实质性的修改和优化,以下是一些提高通过率的方法:一:功能方面增加新功能:开发独特的、有创新性的功能模块,为用户提供新的价值和体验。例如,如果是一款笔记类应用,可以添加智能笔记整理、语音转文字笔记等功能,使其......
  • VMware虚拟机安装Windows11保姆级教程(最新步骤+踩坑)
    文章目录一、镜像下载:Windows11x64最新版(包含专业版、家庭版、教育版,安装Windows11的时候可以自行选择系统版本)链接:https://pan.baidu.com/s/1Vnh-7nphe_uQleW56PKDGQ提取码:E288二、配置虚拟机1.点击创建新的虚拟机2.选择典型,然后点击下一步3.选择稍后安装操作系统......