有下列 app 模型:
- 先看网络流量是否打满(sar等工具)。如果网络流量满,那就解决网络问题。
- 再看网络 IO 线程是否 CPU 跑满(top -H)。如果 IO 线程打满,那么就尝试增加 IO 线程。
- 然后看工作队列(observer.log 中 grep ‘dump tenant info’),看看工作队列是否有排队。备用。
- 看 Worker 线程(top -H)是否 CPU 跑满:
工作队列 | Worker 线程 | 诊断 |
---|---|---|
有排队 | 没跑满 | 尝试增加 Worker 线程 |
没有排队 | 没跑满 | App Client 并发不够(压力太小) |
有排队 | 跑满 | 看看是否被资源隔离了? |
没有排队 | 跑满 | 看看是否被资源隔离了? |
后面两种情况和“CPU跑不满”矛盾,如果没有开启资源隔离,不太可能存在这种情况。如果开启了资源隔离,则是因为资源隔离导致 CPU 达到设定上限。