Serverless 应用引擎产品使用之Nacos 在集中发版时遇到老年代暂满,并且频繁进行 Full GC,但是 GC 后内存没有降下来如何解决

简介: 阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。

问题一:在Nacos中,有大佬遇到过这种情况吗?


晚上集中发版时遇到nacos老年代暂满,导致频繁进行full gc,但gc后内存无法降下来。目前有4台机器,每台16核32GB内存,其中老年代分配了10GB。有没有遇到过这种情况的经验分享?另外每个nacos服务内存都分配了20GB,其中年轻代10GB,老年代10GB,总内存为80GB,我的主要问题出现在集中发版时,老年代的内存回收不彻底,发版完成后,情况恢复正常了。


参考回答:

升级下jdk.垃圾回收的更完美,用jdk11.线程数量.gc性能 优化的都还不错 1、你可以看一下你server节点长轮询连接数是否很不均衡。

2、我之前遇到的server内存泄漏,是因为/nacos/v1/cs/configs/listener这个长轮询接口在服务端的对象被强引这释放不了。

3、扩大server内存,升级客户端到2.x。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/573633


问题二:在阿里云Serverless中,函数里边对多线程有限制吗?


函数里边对多线程有限制吗?配置了8个vCPU,java中的parallelStream只有一个线程执行在执行


参考回答:

在阿里云 Serverless 中,函数对多线程有一些限制。具体来说,以下是一些需要注意的方面:

  1. 并发限制:每个函数实例的最大并发数是有限的,这是由函数计算平台自动管理的。并发数受到函数配置、资源配额以及账户级别的限制。如果超过最大并发数,新的请求可能会被拒绝或排队等待。
  2. 线程池和连接池:函数内部使用的线程池和连接池通常也受到限制。例如,Java 函数中的线程池和数据库连接池都需要进行适当的配置,以避免资源耗尽或性能问题。
  3. 长时间运行限制:函数执行时间在阿里云函数计算中是有限制的。对于标准版函数,默认执行时间限制为 10 分钟,超过该时间会被强制停止。若需要更长的执行时间,可以考虑使用高性能版函数。
  4. 共享资源:由于阿里云 Serverless 是一个共享型的环境,多个函数实例可能同时运行在同一物理机上。因此,需要避免函数之间的竞争条件和资源冲突,确保正确处理共享资源的访问。

了解并合理考虑这些限制对于设计和编写具有多线程需求的函数是非常重要的。需要根据具体需求,合理规划函数的并发数、线程池配置和资源消耗,并进行充分的测试以确保函数在实际运行中的可靠性和性能。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/573608


问题三:在阿里云Serverless中,如何安装 nodejs20 的环境 ?


如何安装 nodejs20 的环境 ?nodejs nodejs安装第三方依赖


参考回答:

函数计算目前支持Node.js 6.x、Node.js 8.x、Node.js 10.x、Node.js 12.x和Node.js 14.x(公测中)运行环境。本文介绍了Node.js运行环境的日志、函数、错误、模块使用和外部命令调用等内容。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/573607


问题四:在阿里云Serverless中,为什么deploy.sh运行时node的版本时10的?


请问函数式计算部署midway时按照官网的命令设置 但是为什么deploy.sh运行时node的版本时10的?

然后报错


参考回答:

在阿里云 Serverless 中,如果您发现 deploy.sh 脚本运行时使用的 Node.js 版本是 v10,这可能是由于以下原因:

  1. 默认版本
  • 阿里云 Serverless 可能使用了某个特定的默认 Node.js 版本(如 v10)作为其基础镜像的一部分。
  • 这个默认版本可能会被用于部署脚本和其他辅助工具。
  1. 函数配置
  • 如果您没有明确指定 Node.js 的版本,在创建或更新函数时,Serverless 服务可能会选择一个默认的稳定版本来确保兼容性。
  1. 本地环境
  • 如果您在本地执行 deploy.sh 脚本,并且您的开发环境中安装的是 Node.js v10,那么这个脚本将会使用该版本的 Node.js。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/573603


问题五:在阿里云Serverless中,环境变量里设置TZ不行怎么办


咨询下,自定义运行时custom.debian10如何设置时区,好像到环境变量里设置TZ不行


参考回答:

在阿里云 Serverless 中,如果您发现设置环境变量 TZ 不起作用,可以尝试以下方法:

  1. 确保正确设置
  • 检查您的函数配置中是否正确设置了环境变量 TZ。确保格式和值都是正确的。
  • 例如,要设置为 UTC 时间,请使用:TZ=UTC
  1. 重启函数实例
  • 环境变量更改可能需要重新启动函数实例才能生效。
  • 在函数详情页面,找到“基本配置”部分,然后点击“重置实例”。
  1. 更新代码
  • 如果您正在使用 Node.js,确保在代码中正确地访问环境变量。例如,使用 process.env.TZ 来获取 TZ 的值。
  1. 检查时区兼容性
  • 验证所选的时区是否被您的应用程序支持。有时,特定的时区可能会因为名称不规范或不再使用而无法识别。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/573602

相关实践学习
SAE极速部署弹性微服务商城
本实验带您体验在Serverless应用引擎SAE(Serverless App Engine)上快速部署一个弹性的在线商城微服务应用,使得终端用户可以通过公网访问访问该商城,并进行压力测试以验证其性能与稳定性。
相关文章
|
3月前
|
人工智能 运维 Serverless
函数计算 × MSE Nacos : 轻松托管你的 MCP Server
本文将通过一个具体案例,演示如何基于 MCP Python SDK 开发一个标准的 MCP Server,并将其部署至函数计算。在不修改任何业务代码的前提下,通过控制台简单配置,即可实现该服务自动注册至 MSE Nacos 企业版,并支持后续的动态更新与统一管理。
697 58
|
6月前
|
SQL 缓存 安全
深度理解 Java 内存模型:从并发基石到实践应用
本文深入解析 Java 内存模型(JMM),涵盖其在并发编程中的核心作用与实践应用。内容包括 JMM 解决的可见性、原子性和有序性问题,线程与内存的交互机制,volatile、synchronized 和 happens-before 等关键机制的使用,以及在单例模式、线程通信等场景中的实战案例。同时,还介绍了常见并发 Bug 的排查与解决方案,帮助开发者写出高效、线程安全的 Java 程序。
386 0
|
存储 缓存 监控
如何使用内存监控工具来优化 Node.js 应用的性能
需要注意的是,不同的内存监控工具可能具有不同的功能和特点,在使用时需要根据具体工具的要求和操作指南进行正确使用和分析。
598 158
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
621 159
|
监控 JavaScript 算法
如何使用内存监控工具来定位和解决Node.js应用中的性能问题?
总之,利用内存监控工具结合代码分析和业务理解,能够逐步定位和解决 Node.js 应用中的性能问题,提高应用的运行效率和稳定性。需要耐心和细致地进行排查和优化,不断提升应用的性能表现。
658 174
|
存储 缓存 JavaScript
如何优化Node.js应用的内存使用以提高性能?
通过以上多种方法的综合运用,可以有效地优化 Node.js 应用的内存使用,提高性能,提升用户体验。同时,不断关注内存管理的最新技术和最佳实践,持续改进应用的性能表现。
620 62
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
存储 C语言 计算机视觉
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
505 1
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
294 5

热门文章

最新文章

相关产品

  • 函数计算
  • Serverless 应用引擎