order服务java.lang.OutOfMemoryError: Metaspace

博客讲述了在遇到`java.lang.OutOfMemoryError: Metaspace`错误时,通过调整JVM启动参数如增大`MaxMetaspaceSize`来解决问题的过程。作者观察了调整后的效果,减少了FGC次数,并分享了最终的参数配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Metaspace
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at brave.servlet.TracingFilter.doFilter(TracingFilter.java:65)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.cloud.sleuth.instrument.web.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.java:50)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at brave.servlet.TracingFilter.doFilter(TracingFilter.java:82)
        at org.springframework.cloud.sleuth.instrument.web.LazyTracingFilter.doFilter(TraceWebServletAutoConfiguration.java:138)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:109)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

jstat观测

[root@localhost order-service]# jstat -gc 25992 250 20
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
7680.0 7680.0  0.0    0.0   99328.0  79966.3    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5115   975.479  976.493
7680.0 7680.0  0.0    0.0   99328.0  79970.4    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5116   975.728  976.743
7680.0 7680.0  0.0    0.0   99328.0  79966.2    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5117   975.934  976.948
7680.0 7680.0  0.0    0.0   99328.0  79966.1    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5119   976.275  977.289
7680.0 7680.0  0.0    0.0   99328.0  79970.2    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5120   976.453  977.468
7680.0 7680.0  0.0    0.0   99328.0  79970.7    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5122   976.789  977.803
7680.0 7680.0  0.0    0.0   99328.0  79964.6    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5123   976.957  977.971
7680.0 7680.0  0.0    0.0   99328.0  79964.3    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5125   977.285  978.299
7680.0 7680.0  0.0    0.0   99328.0  79966.3    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5126   977.453  978.467
7680.0 7680.0  0.0    0.0   99328.0  79966.3    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5128   977.795  978.809
7680.0 7680.0  0.0    0.0   99328.0  79964.3    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5129   977.962  978.976
7680.0 7680.0  0.0    0.0   99328.0  79964.3    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5131   978.296  979.311
7680.0 7680.0  0.0    0.0   99328.0  79968.5    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5132   978.478  979.493
7680.0 7680.0  0.0    0.0   99328.0  79964.4    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5133   978.657  979.671
7680.0 7680.0  0.0    0.0   99328.0  84907.0    512.0      504.6    131072.0 119994.7 15104.0 13321.5      7    1.015 5134   978.857  979.872
7680.0 7680.0  0.0    0.0   99328.0  80219.2    512.0      504.6    131072.0 119996.3 15104.0 13322.2      7    1.015 5136   979.296  980.310
7680.0 7680.0  0.0    0.0   99328.0  80213.1    512.0      504.6    131072.0 119996.3 15104.0 13322.2      7    1.015 5137   979.548  980.562
7680.0 7680.0  0.0    0.0   99328.0  80709.7    512.0      504.6    131072.0 119996.3 15104.0 13322.2      7    1.015 5138   979.789  980.803
7680.0 7680.0  0.0    0.0   99328.0  80213.3    512.0      504.6    131072.0 119996.3 15104.0 13322.2      7    1.015 5139   980.027  981.041
7680.0 7680.0  0.0    0.0   99328.0  80215.4    512.0      504.6    131072.0 119996.3 15104.0 13322.2      7    1.015 5140   980.259  981.274

可能是metaspace设置的太小,启动参数改为-XX:MaxMetaspaceSize=256m,原来是128m。改完重启,再观察

[root@localhost order-service]# jstat -gc 989 250 20
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
7680.0 7680.0  0.0    0.0   99328.0  82007.7    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  82232.1    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  82325.7    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  82935.1    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  82935.1    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  82939.2    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  82939.2    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  83546.4    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  83548.4    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  83552.5    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  83552.5    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  84162.5    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  84162.5    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  84166.5    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  84166.5    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  84776.0    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  84776.0    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  84780.1    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  84780.1    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
7680.0 7680.0  0.0    0.0   99328.0  85509.2    512.0      506.7    103552.0 98303.3 12416.0 11560.0     10    1.439  63     15.692   17.131
[root@localhost order-service]# 

观察一段时间看看

2020-7-28追加:

从上图可以看到,FGC次数还是很多,调整启动参数为:

-Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m

YGC次数增多,可以接受,FGC为0

2025-07-18 17:50:07.244 [ods_crmworkbench:doris_ods_workorder_info_kefu:1] [Source Data Fetcher for Source: KafkaSource-default_catalog.default_database.ods_workorder_info_source -> Calc(select=[work_order_number, id, create_time, uniqueid, mobile_enc AS mobile, record_number, work_order_type, parent_work_order_number, handle_user_id, handle_group_id, handle_group_name, handle_user_name, handle_type, handle_status, urge_num, message_status, repeat_call_total, emergency_code, emergency_name, task_id, partner, customer_appeal_code, customer_appeal_name, prev_handle_user_id, prev_handle_user_name, prev_handle_group_id, prev_handle_group_name, prev_handle_type, prev_handle_time, description, close_time, create_org_id, create_org_name, create_name, create_id, update_id, update_name, update_time, deleted, system_code, case_no, cur_handle_system_code, result_sync_system, lost_count, receive_time, last_follow_time, message_type, inspect, extend_json, expect_solve_time, appointment_call_start_time, appointment_call_end_time, contract_source, value.etl_time AS etl_time, value.etl_record_source AS etl_record_source, CAST(CAST(value.etl_record_type)) AS etl_record_type, value.etl_sequence AS etl_sequence], where=[((create_time >= _UTF-16LE'2023-01-01') AND (CAST(create_time) >= (CURRENT_DATE() + -31449600000:INTERVAL DAY)))]) -> Sink: Sink(table=[default_catalog.default_database.ods_workorder_info_sink], fields=[work_order_number, id, create_time, uniqueid, mobile, record_number, work_order_type, parent_work_order_number, handle_user_id, handle_group_id, handle_group_name, handle_user_name, handle_type, handle_status, urge_num, message_status, repeat_call_total, emergency_code, emergency_name, task_id, partner, customer_appeal_code, customer_appeal_name, prev_handle_user_id, prev_handle_user_name, prev_handle_group_id, prev_handle_group_name, prev_handle_type, prev_handle_time, description, close_time, create_org_id, create_org_name, create_name, create_id, update_id, update_name, update_time, deleted, system_code, case_no, cur_handle_system_code, result_sync_system, lost_count, receive_time, last_follow_time, message_type, inspect, extend_json, expect_solve_time, appointment_call_start_time, appointment_call_end_time, contract_source, etl_time, etl_record_source, etl_record_type, etl_sequence]) (1/1)#9] INFO o.a.flink.connector.base.source.reader.fetcher.SplitFetcher - Split fetcher 0 exited. 2025-07-18 17:50:07.441 [ods_crmworkbench:doris_ods_workorder_info_kefu:1] [doris-flush] ERROR org.apache.doris.flink.table.DorisDynamicSinkFunction - Doris flush thread uncaught exception occurred: Java heap space java.lang.OutOfMemoryError: Java heap space 这是什么意思
最新发布
07-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值