Nginx反向代理配置IndexTTS 2.0 API实现负载均衡与鉴权
2026/1/5 12:06:35
服务器CPU突然飙高,怎么快速定位到具体代码?
其实有套路可循,按这个流程走基本都能搞定。
上去第一件事,top看一眼:
top输出里重点看这行:
%Cpu(s): 85.2 us, 3.1 sy, 0.0 ni, 10.5 id, 0.0 wa, 0.0 hi, 1.2 sius高说明是用户程序在吃CPU,wa高说明在等IO。如果us很高,基本就是业务代码的问题。
按P排序,罪魁祸首一目了然:
PID USER %CPU %MEM COMMAND 12345 app 156.0 8.2 java -jar app.jar好家伙,156%,跑满了一个半核心。
Java进程里几百个线程呢,得继续缩小范围:
top-H-p12345-H显示线程级别。果然有个线程98%:
PID USER %CPU COMMAND 12367 app 98.0 java 12368 app 2.3 java记下这个线程ID:12367
Java的话用jstack:
jstack12345>/tmp/thread.txt但是jstack里线程ID是16进制的,先转换一下:
printf"%x\n"12367# 304f然后搜:
grep-A30"nid=0x304f"/tmp/thread.txt