实战:CPU过高问题定位
方式1:top + jstack
step1:找到问题进程,拿到 PID
在物理机上执行
# 查看 CPU 占用率最高的进程,拿到进程ID 36032
$ top
物理机部署解决方案
直接继续 step 2
docker部署解决方案:根据 PID 找到 container
https://stackoverflow.com/questions/24406743/coreos-get-docker-container-name-by-pid
# docker ps -q | xargs docker inspect --format '{
{.State.Pid}}, {
{.ID}}' | grep "^${PID},"
$ docker ps -q | xargs docker inspect --format '{
{.State.Pid}}, {
{.ID}}' | grep "^36032,"
后面的步骤进入容器操作!(docker exec -it xxx /bin/bash)需要在容器中再次 top 一下,然后继续 step2。
kubernetes部署解决方案
登录出问题的物理机,方法同 docker。