一份十分完整的CPU 100%排查优化指南
而现有的使用场景很明显消费线程数已经大大的超过了核心 CPU 数了,因为我的使用方式是一个 Disruptor 队列一个消费者,所以我将队列调整为只有 1 个再试试(策略依然是 YieldingWaitStrategy)。 跑了一分钟,发现 CPU 的使用率一直都比较平稳而且不高。 总结 所以排查到此可以有一个结论了,想要根本解决这个问题需要将我们现有的业务拆分;现在是一个应用里同时处理了 N 个业务,每个业务都会使用好几个 Disruptor 队列。 由于是在一台服务器上运行,所以 CPU 资源都是共享的,这就会导致 CPU 的使用率居高不下。 所以我们的调整方式如下:
当然还有其他的一些优化,因为这也是一个老系统了,这次 Dump 线程居然发现创建了 800+ 的线程。 创建线程池的方式也是核心线程数、最大线程数是一样的,导致一些空闲的线程也得不到回收;这样会有很多无意义的资源消耗。 所以也会结合业务将创建线程池的方式调整一下,将线程数降下来,尽量的物尽其用。 【编辑推荐】
点赞 0 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |