关于服务器cpu过高的问题排查
- IT业界
- 2025-09-12 15:45:01

1.定位是哪个程序造成的cpu过高
如果有云服务器,就用云服务器自带的监控功能,查时间段
如果没有,则使用:
ps -eo pid,comm,pcpu,pmem,cputime --sort=-cputime | head -n 1002.定位到问题
发现是uwsgi的cpu消耗过高!
配合uwsgi的查询方式:使用 strace 和 perf 排查 uWSGI 占用 CPU 的情况,可以帮助你定位性能瓶颈或代码中的问题
yum install strace ps aux | grep uwsgi strace -p <PID> -c % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 45.23 0.123456 123 1000 0 poll 30.12 0.082345 82 1000 0 read 10.45 0.028901 28 1000 0 write ... ------ ----------- ----------- --------- --------- ---------------- 100.00 0.273456 3000 0 total% time:每个系统调用占用的 CPU 时间百分比。
seconds:每个系统调用的总耗时。
calls:每个系统调用的调用次数。
syscall:系统调用的名称。
通过分析输出,可以确定哪些系统调用占用了较多的 CPU 时间。
3.进一步分析:使用 perf 和火焰图定位高 CPU 消耗的函数。
yum install perf git clone github /brendangregg/FlameGraph.git cd FlameGraph perf record -p <PID> -g perf script | ./stackcollapse-perf.pl | ./flamegraph.pl > flamegraph.svg firefox flamegraph.svg关于服务器cpu过高的问题排查由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“关于服务器cpu过高的问题排查”