【App Service】.NET 应用在App Service上内存无法占用100%的问题原因

news/2025/11/20 20:37:23/文章来源:https://www.cnblogs.com/lulight/p/19249495

问题描述

如果使用Azure App Service部署.NET 应用,会发现在内容并没有达到100%的时候,也会出现OOM错误。这是一个什么情况呢?

image

大内存测试代码

        static void Main(string[] args){Console.WriteLine("Hello, World!");int objunmbers = 20000;byte[][] largeArray = new byte[objunmbers][];Console.WriteLine("Start to create big memory object ... from 2GB");//Console.WriteLine("Start to create big memory object ... from 20MB");long size = 2L * 1024 * 1024 * 1024; // 2GB//long size = 2L * 1024 * 1024 * 10; // 20MBint times = 1;while (size > 0){if (CreateBigMemoryObject(largeArray,size, times)){Console.WriteLine($"[{times}] Successfully created memory object of size: {size} bytes ({size / 1024 / 1024} MB)");times = times + 1;}else{Console.WriteLine($"Failed to create memory object of size: {size} bytes ({size / 1024 / 1024} MB). Trying smaller size...");size = size - 100 * 1024 * 1024; // Decrease by 100MB//size = size - 1 * 1024 * 1024; // Decrease by 1MB
                }//Thread.Sleep(2000);
            }Console.WriteLine("Finished memory allocation attempts.");Console.WriteLine("sleep 5 mins");Thread.Sleep(5 * 60 * 1000);Console.WriteLine("End");}static bool CreateBigMemoryObject(byte[][] largeArray,long size,int index){try{largeArray[index] = new byte[size];return true;}catch (OutOfMemoryException ex){Console.WriteLine($"OutOfMemoryException: {ex.Message}");}catch (Exception ex){Console.WriteLine($"Exception: {ex.Message}");}return false;}

问题解答

在反复试验后,证明这是.NET 应用在 Azure App Service(Windows) 上才会遇见的问题。

根本原因是:.NET Core 在运行时会对 GC 堆的最大可用内存设定一个Hard Limit,而App Service中设定的值为 75%, 所以32Gb的内容最大可用24Gb。

image

( Manage resource usage for all GC flavors : https://learn.microsoft.com/en-us/dotnet/core/runtime-config/garbage-collector#manage-resource-usage-for-all-gc-flavors )

当然,知道这个限制之后,就可以通过配置去修改它,比如通过配置 runtimeconfig.json 文件,设置 System.GC.HeapHardLimitPercent : 96  或者  System.GC.HeapHardLimit : 32,000,000,000

image

 

 

参考资料

Manage resource usage for all GC flavors : https://learn.microsoft.com/en-us/dotnet/core/runtime-config/garbage-collector#manage-resource-usage-for-all-gc-flavors 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/971406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析:css 的 clip-path 属性,绘制气泡

深入解析:css 的 clip-path 属性,绘制气泡2025-11-20 20:30 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…

快速构建一个基础、现代化的 WinForm 管理系统!

前言 前段时间有小伙伴在后台留言问:有没有好用的 WinForm 管理系统?今天大姚给大家分享一个基于 AntdUI 构建的 WinForm 管理系统,不需要我们写一行代码既能快速构建一个基础、现代化的 WinForm 管理系统。 项目介…

国内外研究现状全面解析:掌握学术前沿的必备指南

本文围绕学术研究中了解国内外研究现状展开,强调其是开展高质量研究的关键。图灵论文 AI 写作助手可免费选题、构思大纲、生成论文等,提升梳理分析效率。文中指出研究现状解析能避免重复研究、找准切入点。还给出实用…

费马小定理在素数检测中的应用

因为还没用过liux的编译环境,我这两天便寻思着在Windows上搭建一个scheme的编译环境。查阅了各路大神的搭建方式,最终选择在VSC上进行编译,不过整了两天只能说勉强能用。只有编译功能,无法debug也没有调试,而且最…

把 1688 商品详情「搬进 MySQL」:Java 爬虫全链路实战(2025 版) - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:从传统架构到云原生,如何应对数据增长挑战?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

50036_基于微信小程序的智能点餐推荐系统

1.项目包含 项目源码、项目文档、数据库脚本、软件工具等资料; 带你从零开始部署运行本套系统。 2.项目介绍 本文设计并实现了一个外卖点餐小程序,融合了传统的餐饮外卖管理与计算机技术,实现外卖业务的高效科学管理…

【NAOI】题解

【NAOI】真的是签到题吗 背景 OI不能没有签到题,就像 \(309\) 不能没有数据删除! 题目描述 有 \(T\) 组询问,每组问题如下: 是否存在 \(3\) 个长度为 \(n\) 的 \([0,n)\) 的排列 \(a,b,c\),使得 \(a_i+b_i=c_i\mod…

Windows系统基础安全浅谈

依照中华人民共和国安全法任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动;不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安…

深入解析:医疗多模态共情推理与学习一体化网络Python实现(2025扩充版)

深入解析:医疗多模态共情推理与学习一体化网络Python实现(2025扩充版)2025-11-20 20:14 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: a…

curl/libcurl SMTP CRLF注入漏洞深度分析

本文详细分析了curl/libcurl中存在的SMTP CRLF注入漏洞,攻击者可通过在MAIL FROM/RCPT TO参数中插入CRLF字符注入任意SMTP命令,导致未授权邮件拦截、信息泄露等严重安全问题。SMTP CRLF Injection in curl/libcurl v…

2025年11月氨基酸水溶肥,花芽分化氨基酸水溶肥,低温酶解氨基酸水溶肥厂家最新推荐,权威测评与种植选择指南!

2025年11月氨基酸水溶肥及相关产品权威测评与选择指南在农业领域,肥料的选择至关重要,尤其是氨基酸水溶肥,在花芽分化等关键时期起着关键作用。深圳惠民皓天生态科技有限公司成立于2017年,是一家专注于“互联网 + …

2025年11月沣硕40+中微量元素水溶肥,防裂果中微量元素水溶肥,促花稳果中微量元素水溶肥厂家推荐:规模化种植适配品牌

2025年11月:沣硕40+中微量元素水溶肥助力规模化种植在农业现代化的进程中,中微量元素水溶肥对于作物的生长和品质提升起着至关重要的作用。尤其是在预防裂果、促花稳果等方面,优质的中微量元素水溶肥更是成为了规模…

4.6.4版本闪亮登场~赶快了解一下新内容吧

产品更新概览 功能修复: 修复数据页面横向滚动条显示问题; 修复全屏项目的轮播控制问题; 修复表格组件首行选中问题; 修复PDF组件读取在线文件问题; 修复菜单组件隐藏误触发交互问题; 修复时间选择器组件显示问题…

2025年11月花芽分化氨基酸水溶肥,膨果上色氨基酸水溶肥,高含量氨基酸水溶肥厂家推荐,实测促产效果与品牌解析!

2025年11月花芽分化与膨果上色:氨基酸水溶肥厂家深圳惠民皓天生态科技解析在农业种植领域,花芽分化期与膨果上色期对于作物的产量和品质至关重要。合适的氨基酸水溶肥能为作物提供关键营养,助力其茁壮成长。深圳惠民…

XMind for Mac v24.01.dmg 安装教程(Mac思维导图软件下载安装步骤)

XMind for Mac v24.01.dmg 安装教程(Mac思维导图软件下载安装步骤)​ 1. 下载文件安装包下载:https://pan.quark.cn/s/5f9d7a340ac8 ,先找到你下载的 XMind for Mac v24.01.dmg文件(通常在「下载」文件夹里)。2.…

自动类型推导、智能指针、Lambda表达式和函数包装器 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

FPGA中,“按键控制LED灯实验”学习中常见问题、解除思路和措施以及经验总结!!!(新手必看)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

RocketMQ 概念介绍 - 邓维

RocketMQ概念介绍RocketMQ 概念介绍1、消息队列使用场景介绍解耦:如果服务 A 调用服务 B 时是同步依赖,那么 B 服务压力过大可能导致整个系统链路阻塞。流量削峰填谷:高并发场景下(如电商秒杀),直接将请求打到数…

es的sql语句 有哪些限制

ES(Elasticsearch)的SQL语句虽然提供了类似于传统关系型数据库的查询功能,但仍存在一些限制。以下是一些主要的限制:语法差异:ES的SQL语法与传统的SQL有所不同,可能需要一些学习和适应。例如,ES使用SELECT语句来…