服务器跑着跑着线程池都挂了java.lang.Thread.State: TIMED_WAITING (parking)

本文描述了一种在测试环境中遇到的服务器阻塞问题及其解决方案。通过对服务器进行CPU和内存升级,成功解决了因资源不足导致的任务挂起问题。

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

解决办法:增加了服务器的cpu数量和内存扩容,当然如果你是集群部署,可以考虑的是加服务器,降低目前的服务器的压力。

解决过程如下:
通过一顿top,
top -Hp pid,
print “%x\n” tid,
jstack pid |grep tid -A 50
的操作看见了如下异常堆栈,堆栈有所不同,但是终都是挂阻塞在Unsafe.park()的有限时长等待这里,这是一个本地方法,有限时长等待,就算它因为等待不到它要的条件或者资源,那么到时间了自然也会返回,但是奇怪的是,它们永远停在了这里

因为只有测试环境才频繁出现这个问题,正式环境一直运行良好,它们的差别在于cpu和内存的差异,测试环境使1核2G的,我不得不说一句:太抠了。。。。。

因为内存过小,所以考虑是不是因为内存太小,导致了大量的Gc从而使这些等待得不到cpu,因为确实然后就这样挂了,因为确实发现了频繁的GC,Full GC所以对内存扩容到了8G,但事后还是发生了这个事情,并且挂得更快了,那就加了cpu到2核,到目前已经一个多月过去了,没有再出现这个问题

 java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000000af662cf0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)

TID: 2310 STATE: TIMED_WAITING
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037)
java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328)
java.util.concurrent.CountDownLatch.await(CountDownLatch.java:277)
org.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:898)
org.elasticsearch.client.RestClient.performRequest(RestClient.java:227)
org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1256)
org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1231)
org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:730)
com.changjia.commodity.task.es.impl.EsSearchServiceImpl.search(EsSearchServiceImpl.java:31)

```cpp
TID: 118 STATE: TIMED_WAITING
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037)
java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328)
com.aliyun.openservices.shade.com.alibaba.rocketmq.common.CountDownLatch2.await(CountDownLatch2.java:114)
com.aliyun.openservices.shade.com.alibaba.rocketmq.common.ServiceThread.waitForRunning(ServiceThread.java:116)
com.aliyun.openservices.shade.com.alibaba.rocketmq.client.impl.consumer.RebalanceService.run(RebalanceService.java:40)
java.lang.Thread.run(Thread.java:748)


at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:88) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59) at kotlinx.coroutines.BuildersKt.runBlocking(unavailable:1) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38) at kotlinx.coroutines.BuildersKt.runBlocking$default(unavailable:1) at com.oplus.utrace.sdk.internal.a.b(unavailable:0) at com.oplus.utrace.sdk.internal.a.g(unavailable:0) - locked <@addr=0x15b594e8> (a java.lang.String[]) at com.oplus.utrace.sdk.internal.a.c(unavailable:0) at com.oplus.utrace.sdk.UTrace.a(unavailable:0) at com.oplus.utrace.sdk.UTrace.startHead(unavailable:0) at com.oplus.utrace.sdk.UTrace.startHead$default(unavailable:0) at com.oplus.pantanal.seedling.f.c.a(unavailable:0) at com.oplus.pantanal.seedling.f.b.a(unavailable:0) at com.oplus.pantanal.seedling.intent.a.sendSeedling(unavailable:0) at com.oplus.pantanal.seedling.util.SeedlingTool.sendSeedling(unavailable:0) at com.oplus.pantanal.seedling.intent.IIntentManager$DefaultImpls.sendSeedling$default(unavailable:0) at com.oplus.systemui.seedlingservice.tip.NormalTip.cancelIntent(NormalTip.kt:167) at com.oplus.systemui.seedlingservice.flashlight.FlashlightTip.onLocked(FlashlightTip.kt:230) at com.oplus.systemui.seedlingservice.statemanager.StateManager$screenStateReceiver$1.onReceive(StateManager.kt:39) at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:1960) at android.app.LoadedApk$ReceiverDispatcher$Args.$r8$lambda$mcNAAl1SQ4MyJPyDg8TJ2x2h0Rk(unavailable:0) at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0) at android.os.Handler.handleCallback(Handler.java:959) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loopOnce(Looper.java:282) at android.os.Looper.loop(Looper.java:387) at a
最新发布
04-04
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值