一份十分完整的CPU 100%排查优化指南
发布时间:2019-04-22 23:18:50 所属栏目:教程 来源:crossoverJie
导读:最近又收到了运维报警:表示有些服务器负载非常高,让我们定位问题。 还真是想什么来什么,前些天还故意把某些服务器的负载提高(没错,老板让我写个 Bug!),不过还好是不同的环境,互相没有影响。 定位问题 拿到问题后首先去服务器上看了看,发现运行的只
而现有的使用场景很明显消费线程数已经大大的超过了核心 CPU 数了,因为我的使用方式是一个 Disruptor 队列一个消费者,所以我将队列调整为只有 1 个再试试(策略依然是 YieldingWaitStrategy)。 跑了一分钟,发现 CPU 的使用率一直都比较平稳而且不高。 总结 所以排查到此可以有一个结论了,想要根本解决这个问题需要将我们现有的业务拆分;现在是一个应用里同时处理了 N 个业务,每个业务都会使用好几个 Disruptor 队列。 由于是在一台服务器上运行,所以 CPU 资源都是共享的,这就会导致 CPU 的使用率居高不下。 所以我们的调整方式如下:
当然还有其他的一些优化,因为这也是一个老系统了,这次 Dump 线程居然发现创建了 800+ 的线程。 创建线程池的方式也是核心线程数、最大线程数是一样的,导致一些空闲的线程也得不到回收;这样会有很多无意义的资源消耗。 所以也会结合业务将创建线程池的方式调整一下,将线程数降下来,尽量的物尽其用。 【编辑推荐】
点赞 0 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |