系统运行缓慢问题如何排查?
linux如何查看业务系统运行情况?具体分析指标有哪些?
CPU分析指标主要包含:Context Switches、Interrupts、CPU Utilization、Load Average
你们系统的QPS、TPS都是多少?压力测试时主要测试哪些内容,如何测试?
如何发现争锁频繁问题?
一般争锁时线程切换会异常频繁,在Linux中可以使用vmstat来观察上下文切换的次数,一般来说,空闲的系统,每秒上下文切换次数大概在1500以下。
引起上下文切换的原因
- 时间片用完,CPU正常调度下一个任务
- 被其他优先级更高的任务抢占
- 执行任务碰到IO阻塞,调度器挂起当前任务,切换执行下一个任务
- 用户代码主动挂起当前任务让出CPU时间
- 多任务抢占资源,由于没有抢到被挂起
- 硬件中断
CPU占用率非常高,如何查看具体是哪段代码引起的?
首先通过 top 查出具体占用率高的tomcat进程,然后通过 top -H -p <pid> 查看进程具体占用率高的线程,然后通过 jstack <pid> 查看线程对应的堆栈,然后具体分析。
在实际运行中,往往一次 dump的信息,还不足以确认问题。建议产生三次 dump 信息,如果每次 dump 都指向同一个问题,我们才可以确定问题的典型性。
网友评论