是哪个进程在白嫖我的 CPU 资源?


背景

最近新入手一台云主机用来做开发机,在安装配置好环境,正准备写几行 cpp。突然想到作为一个性能工程师,我有必要在空负载的情况下观测一下我的开发环境。不看不知道,一看吓一跳。

从上面这张图我们可以看到 `YDService` 占了我 61% ,`barad_agent` 占了 15% 。已使用资源中的 76% 都不是我想要的,这个非常有必要处理一下。

下面记录一下这个事件的过程。


第一步 CPU 采样审视性能

在环境准备好之后这个也比较简单,两行命令就能出火焰图,下面直接上命令。

# 采样
profile --stack-storage-size=20480 -af 60 >
     system-profile.out
# 画图
./flamegraph.pl --title=system-profile --colors=aqua <
     ../system-profile.out >
     ../system-profile.svg

第二条画图命令输出是一个 svg 格式的文件,直接使用浏览器就能打开,看到的效果如下。

x 轴方向上的宽度就是它占的比例,所以我们的目标就是解决掉那些比较宽的行。在上面这张图上比较宽就有 YDService & barad_agent 两个。


第二步 确认问题

经过一我通 google 后确认,个这两个都云服务商官方的进程,一个用来做主动防御另个用来做监控。我还是有点信心(一般的破解方式进不了我的主机),所以我决定把这两个进程给干掉。

/usr/local/qcloud/YunJing/uninst.sh 
/usr/local/qcloudmonitor/barad/admin/uninstall.sh 

第三步 核实结果

再采样一次

# 采样
profile --stack-storage-size=20480 -af 60 >
     system-profile.out
# 画图
./flamegraph.pl --title=system-profile --colors=aqua <
     ../system-profile.out >
     ../system-profile.svg