需先安装gperftools-devel包并获取第三方模块源码,再用--add-module指定路径编译nginx,最后在nginx.conf中配置google_perftools_profiles指令启用性能分析。

要在源码编译 Nginx 时启用 --with-google_perftools_module,你得先确保系统已安装 google-perftools(即 gperftools)开发库,并在 configure 阶段正确引用它。这个模块本身并不内建于 Nginx,而是第三方模块,需额外下载并指定路径。
确认 gperftools 已安装且含开发文件
该模块依赖 libtcmalloc 和头文件(如 heap-profiler.h)。仅装 gperftools 运行时库不够,必须安装对应的 -dev / -devel 包:
- Ubuntu/Debian:
sudo apt install libgoogle-perftools-dev - CentOS/RHEL 8+:
sudo dnf install gperftools-devel - CentOS/RHEL 7:
sudo yum install gperftools-devel
安装后验证头文件是否存在:ls /usr/include/google/heap-profiler.h(路径可能为 /usr/include/gperftools/...,取决于发行版)。
获取并准备 google_perftools_module 源码
Nginx 官方不提供该模块,需从社区仓库获取独立模块代码:
- 推荐地址:https://www.php.cn/link/4d553e0c89b63525b7899bb1d5b2a36f
- 下载并解压到某目录(如
/path/to/nginx_google_perftools_module) - 确保该目录下有
config文件和ngx_http_google_perftools_module.c等源文件
配置编译参数时正确引用模块路径
进入 Nginx 源码目录,运行 ./configure,关键点如下:
-
--add-module=/path/to/nginx_google_perftools_module(不是--with-xxx!官方文档常误写成--with-google_perftools_module,实际是--add-module) - 务必加上
--with-libatomic(部分系统需要,尤其使用 tcmalloc 时) - 可选但建议:
--with-cc-opt="-I/usr/include/gperftools"(若头文件路径非标准) - 示例完整命令片段:
./configure \<br> --add-module=/opt/modules/nginx_google_perftools_module \<br> --with-libatomic \<br> --with-http_ssl_module \<br> ...其他选项
编译、安装与启用模块
执行 make && sudo make install 后,模块已编译进 Nginx,但默认不生效,需在配置中显式启用:
- 在
nginx.conf的http或server块中添加:google_perftools_profiles /var/log/nginx/perf/; - 确保
/var/log/nginx/perf/目录存在、Nginx worker 进程有写权限 - 重启 Nginx:
nginx -s reload,之后访问页面会自动生成性能采样文件(如nginx.12345.heap) - 用
pprof工具分析:pprof --text /path/to/nginx /var/log/nginx/perf/nginx.12345.heap










