启用Google Perftools需先安装libunwind和gperftools(2.10+),再编译Nginx时添加--with-google_perftools_module参数,验证模块加载后配置google_perftools_profiles等指令启用CPU/堆分析。

要在 Nginx 源码编译中启用 Google Perftools(即 gperftools)模块,核心是两步:先装好 gperftools 及其依赖,再在 Nginx 编译时加入 --with-google_perftools_module 参数。整个过程需注意系统架构(尤其是 64 位)、符号支持和动态库路径,否则容易出现运行时报错或 profiler 不生效。
安装 gperftools 及必要依赖
gperftools 在 64 位 Linux 上依赖 libunwind 或启用帧指针(--enable-frame-pointers),推荐优先安装 libunwind:
- 下载并编译 libunwind(以最新稳定版为例):
wget https://github.com/libunwind/libunwind/releases/download/v1.8.0/libunwind-1.8.0.tar.gztar zxvf libunwind-1.8.0.tar.gz && cd libunwind-1.8.0./configure --prefix=/usr --enable-pic && make && sudo make install - 安装 gperftools(推荐 2.10+ 版本,兼容性更好):
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gztar zxvf gperftools-2.10.tar.gz && cd gperftools-2.10./configure --prefix=/usr --enable-frame-pointers --enable-libunwindmake && sudo make install - 更新动态链接缓存:
echo "/usr/lib" | sudo tee /etc/ld.so.conf.d/gperftools.confsudo ldconfig
编译 Nginx 时启用模块
确保已下载 Nginx 源码(如 nginx-1.25.4),进入解压目录后执行 configure 命令,关键点包括:
通过 Maton API Gateway 与 Google Sheets 交互,使用 curl 读取、写入、追加和清除电子表格数据。在用户提及相关需求时使用此技能。
- 必须显式添加
--with-google_perftools_module - 建议指定用户/组、日志路径等基础参数,避免默认权限问题
- 若使用自定义安装路径(如
--prefix=/opt/nginx),需确保后续能正确加载共享库
示例 configure 命令:
./configure \--prefix=/opt/nginx \--user=www-data \--group=www-data \--with-http_ssl_module \--with-http_stub_status_module \--with-google_perftools_module
验证模块是否加载成功
完成 make && sudo make install 后,检查模块是否被识别:
- 运行
/opt/nginx/sbin/nginx -V 2>&1 | grep google,输出应含--with-google_perftools_module - 启动 Nginx 后,查看进程是否链接了 tcmalloc:
lsof -p $(cat /opt/nginx/logs/nginx.pid) | grep tcmalloc
若有类似nginx 12345 user mem REG 8,2 ... /usr/lib/libtcmalloc.so.4即表示生效
配置并使用 CPU/Heap Profiler
模块启用后,需在 nginx.conf 主配置块中添加指令开启分析:
- CPU 分析:
google_perftools_profiles /var/log/nginx/perf;
(会为每个 worker 进程生成/var/log/nginx/perf.12345文件) - 堆内存分析(可选):
google_perftools_heap_profile /var/log/nginx/heap; - 分析完成后,用
pprof工具查看结果:pprof --text /opt/nginx/sbin/nginx /var/log/nginx/perf.12345

















