1.安装软件
yum install -y stress sysstat stress 是一个 Linux 系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。 sysstat 包含了常用的 Linux 性能工具,用来监控和分析系统的性能。如mpstat 和 pidstat。
mpstat 是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标。
pidstat 是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标。
2.使用 stress 命令,模拟一个 CPU 使用率 100% 的场景:
stress --cpu 1 --timeout 600
3.使用 stress,模拟的是 8 个进程:
stress -c 8 --timeout 600
4.使用 mpstat 查看 CPU 使用率的变化情况:
显示所有CPU的指标,并在间隔5秒输出一组数据 mpstat -P ALL 5 1
5.使用 pidstat 来查询导致 iowait 高的进程:
间隔5秒后输出一组数据,-u表示CPU指标 pidstat -u 5 1
6.使用 perf top 查看进程占用高cpu的内部函数:
perf top -g -p <进程pid>
按方向键切换到 php-fpm,再按下回车键展开 php-fpm 的调用关系,你会发现,调用关系最终到了 sqrt 和 add_function。看来,我们需要从这两个函数入手了。