我们在容器化环境中运行Mule3.8.0EE应用程序,每个容器有一个应用程序。从容器级别来看,由于物理主机资源池有限,我们限制了cpu /内存资源,而我在峰值时引用的API最多只能使用1个cpu核心和512MB内存(托管)作者:kubernetes)
mule流相当简单 - 使用APIKit的http端点,然后通过redis连接器进行后端Redis调用以执行get by key操作,并使用dataweave将数据转换为json并返回
我们检测到的问题是,一旦有加载请求(100+并发),所有默认的性能相关配置(策略,线程等),应用程序总是触发JVM退出,然后在容器内重新启动
问题给出了这些有限的资源,我们应该如何调整它至少不会死,但要慢慢处理这些负载。期待建议例如:我们应该增加线程池还是减少?我们应该使用同步处理策略吗?等
更新:我们正在使用docker json日志记录驱动程序,因此如果我们按照每个请求打印一行日志并且一旦有了加载,我注意到这也是一个问题,这个glibc / tanuki包装问题(在mule3.8之后被认为是固定的)。
提前致谢