要给 nginx 添加 google 性能工具模块,必须通过源码编译集成,需安装 libgoogle-perftools-dev 等开发包、获取第三方模块源码、复用原 configure 参数并指定 --add-module 路径,编译后替换 objs/nginx,再在 nginx.conf 中配置 google_perftools_profiles 指令启用。

要给 Nginx 添加 Google 性能工具(google-perftools)模块,必须通过源码编译方式集成,因为该模块是第三方扩展,不在官方发行版中,也不支持运行时动态加载。核心在于正确安装依赖库、获取模块源码、复用原有编译参数并精准指定路径。
确认并安装 gperftools 开发环境
该模块依赖 libtcmalloc 和配套头文件(如 heap-profiler.h),仅安装运行时库不够,必须装开发包:
- Ubuntu/Debian:
sudo apt install libgoogle-perftools-dev - CentOS/RHEL 8+:
sudo dnf install gperftools-devel - CentOS/RHEL 7:
sudo yum install gperftools-devel
安装后验证头文件是否存在,常见路径为 /usr/include/gperftools/heap-profiler.h 或 /usr/include/google/heap-profiler.h。若路径非标准,后续编译需显式指定。
获取并准备第三方模块源码
Nginx 官方不提供此模块,需从社区获取独立实现:
- 推荐下载地址:https://www.php.cn/link/4d553e0c89b63525b7899bb1d5b2a36f
- 解压到固定目录,例如
/usr/src/nginx-modules/nginx_google_perftools_module - 确认目录内含
config文件和ngx_http_google_perftools_module.c,这是 configure 能识别模块的前提
配置编译参数并完成编译
进入 Nginx 源码目录(版本须与线上完全一致),执行 ./configure,关键点如下:
- 复用原编译参数:先运行
nginx -V查看--configure arguments,全部保留 - 添加模块路径:
--add-module=/usr/src/nginx-modules/nginx_google_perftools_module(注意是--add-module,不是--with-xxx) - 启用原子操作支持:
--with-libatomic(尤其在使用 tcmalloc 时建议加上) - 若头文件路径特殊,加编译选项:
--with-cc-opt="-I/usr/include/gperftools"
然后执行 make,**不要直接 make install**。生成的二进制文件在 objs/nginx,替换原 nginx 可执行文件更安全。
启用模块并验证配置
编辑 nginx.conf,在 http 块中添加:
google_perftools_profiles /var/log/nginx/perftools/;
确保目标目录存在且 Nginx 工作进程有写权限。重启服务后,访问对应 profile 接口或检查日志目录是否生成 .heap 文件,即可确认模块已生效。











