1.错误
TaskManager,频繁崩溃。
tomcat崩溃日志,几次基本相似
java.lang.OutOfMemoryError: requested 441240 bytes for Chunk::new. Out of swap space?
blocked线程数达到4000了
老生代95%
catalina.out错误记录有多种:
java.lang.OutOfMemoryError: unable to create new native thread
不能创建线程,怀疑线程过多。
java.lang.NullPointerException: javax/servlet/jsp/SkipPageException
jsp编译成的java文件中
if (!(t instanceof SkipPageException)){这句话;
怀疑目前发现每个工程WEB-INF/lib/下都多出了javaee.jar包,其内容与tomcat的jsp-api.jar部分重复,javaee包应该包含了jsp-api内容,比如SkipPageException等类,javaee也与tomcat的 serverlet-api.jar部分内容重复,可能产生冲突。
这个jar包应该是maven自动加到工程包中的。
jvm启动参数:
-Xms1524m -Xmx1524m -Xloggc:./logs/gc.log -XX:MaxNewSize=1024m -XX:PermSize=512m -XX:MaxPermSize=1024m
2.状况
TaskManager是任务调度服务,其他系统注入任务,TM负责调度给其他系统TaskProcessor运行计算。
一台4G内存的机器,一个tomcat部署4个TM实例,每个TM实例有5个以上tp。
tp每5秒请求一次,每次请求携带20个任务信息,每个任务信息最小大约2K,最大可达1M
jso格式,需要解析处理。,每次请求都要作多次mysql读写。
3.解决过程:
tomcat启动参数增大为
-Xms2024m -Xmx2024m -Xss1024K -XX: PermSize=1024m -XX:MaxPermSize=1524m
不好用
改为
-Xms3g -Xmx3g -Xmn2g -XX:PermSize=256m -XX:MaxPermSize=256m
效果不大。
观察gc.log,增长很快不释放。
后来发现
com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
c3p0线程池有关。
将线程数改大,线程释放时间改小(原来3600改为180)
实时观察线程数变小,113左右。
实时观察gc,长的很快,没半分钟GC,由2g左右gc到600多M,
cleanup最少能到100多M
Full GC 的机会很低
看来瓶颈在c3p0线程池太小,久久不能释放,导致连接过多不释放,内存一直占用不释放,出现各种错误。
分享到:
相关推荐
在日常使用中,TaskManager不仅是一个故障排除工具,也是系统优化和性能监控的重要助手。了解并熟练使用TaskManager,可以帮助我们更好地理解系统的运行状况,提升工作效率,以及及时发现和解决潜在问题。...
Flink通过水印(Watermark)机制来处理事件时间,有效解决了延迟到达数据的问题。 Flink的状态管理和容错机制也是其稳定性的重要保障。它支持分布式状态的持久化,并且能够保证在出现故障时,系统可以从检查点快速...
通过《Flink大数据分析实战》的示例代码,读者可以学习到如何在实际项目中运用这些概念和技术,解决大数据分析中的各种挑战。每个示例都会包含创建数据源、执行转换、设置窗口、定义数据输出等步骤,让读者能够亲手...
《Flink源码分析》 Flink作为一款流行的开源大数据处理框架,以其高效的流处理和批处理能力在业界获得了广泛的应用。深入理解Flink的源码对于开发者来说至关重要,这不仅可以帮助我们更好地利用Flink的功能,还能让...
《Flink源码分析与项目流程详解》 Apache Flink是一个开源流处理框架,它以其高效、低延迟和高容错性在...通过理解Flink的内部机制,我们可以更好地利用其特性,解决实际业务中的挑战,构建高效、稳定的数据处理系统。
Flink作为一个分布式、低延迟的数据流处理引擎,为实时数据处理提供了高效且灵活的解决方案。 1. **Flink基础概念**: - **数据流模型**:Flink基于事件驱动的无界和有界数据流模型,支持实时和批处理。 - **计算...
- **容错策略**:实现自定义容错逻辑,如TaskManager故障自动重启等。 #### 3.4 监控与报警 - **指标收集**:利用Prometheus等工具收集系统性能指标。 - **日志分析**:通过ELK栈(Elasticsearch、Logstash、Kibana...
Flink OLAP 是一种基于 Flink 的在线分析处理(OLAP)引擎,旨在解决大规模数据分析和查询的挑战。在字节跳动的应用中,Flink OLAP 发挥了重要作用,解决了查询优化和落地实践中的多个问题。 Flink OLAP 在字节跳动...
Apache Flink是一个开源的流处理和批处理系统,它以实时计算为核心,具备低延迟、高吞吐量的特点,广泛应用于实时数据流分析、事件驱动的应用和复杂事件处理。 一、Flink核心组件 1. JobManager(作业管理器):...
将 Flink 与 MapR 集成,可以构建端到端的实时数据流解决方案。 8. **故障恢复和高可用性**:Flink 的容错机制保证了即使在节点故障的情况下,系统也能继续运行。通过设置 JobManager 和 TaskManager 的副本,可以...
JobManager 负责任务调度、状态管理以及故障恢复,而 TaskManager 负责执行具体的计算任务。它们通过网络通信进行交互,形成分布式数据流处理系统。 3. **Flink的数据流模型** Flink 的数据流模型基于“流”的概念...
在事务边界开启Checkpoint,所有操作写入临时状态,确认无误后进行提交,如果故障发生,可以从最近的Savepoint恢复。 6. **Flink的checkpoint实现**:Flink的checkpoint基于分布式快照,利用Changelog记录状态变化...
4. **性能分析**:对于开发者和系统管理员来说,任务管理器还可以用于性能分析。通过观察各进程的资源占用,可以定位系统瓶颈,优化代码或者调整系统配置。 5. **安全和故障排除**:在遇到设备无响应或者程序异常时...
* 数据分析:Flink 可以对大规模数据进行实时分析,提供实时的数据 insights。 * 需要高性能和高可用性的应用场景:Flink 可以提供高性能和高可用的计算能力,满足需要高性能和高可用的应用场景。
Apache Flink 是一个开源的流处理和批处理框架,它为实时数据处理提供了高效、可靠的解决方案。Flink 的设计目标是支持低延迟的流处理以及大规模的数据批处理。在这个"flink-1.7.2-bin-scala_2.11.tgz"压缩包中,...
Flink 采用了一种基于 Checkpoint 的容错机制,能够在发生故障时恢复到最近的 Checkpoint 状态,从而实现 Exactly-Once 语义。 **5.2 Checkpoint 的生命周期** - **5.2.1 触发 Checkpoint** Checkpoint 可以...
Apache Flink是一款开源的流处理框架,它在大数据处理领域扮演着重要的角色,尤其在实时数据处理和分析方面表现出色。本教程将带你深入理解Flink的核心概念、工作原理以及实际操作,助你成为Flink应用的高手。 一、...
通过阅读和分析Flink源码,开发者可以更好地定位和解决在使用过程中遇到的问题。 六、Flink问答与社区资源 Flink社区活跃,各种问题解答和讨论源源不断。通过参与社区讨论,可以获取到最新的技术动态,解决实际遇到...
- **问题分析**:探讨Kafka中导致数据重复的原因,如网络延迟、故障恢复等。 - **解决方案**:提出避免数据重复的策略,包括幂等性写入、事务性生产等。 ### 13. Kafka数据积压处理 - **积压原因**:分析导致Kafka...