A better tool for nginx with google_perftools.
This module is inspired by official ngx_google_perftools_module
.
At first you must install gperftools library, For example:
sudo apt-get install google-perftools
sudo apt-get install libgoogle-perftools-dev
Then configure nginx, add this module:
./configure --add-module=path/to/ngx_google_perftools_profiler_module
make && make install
In nginx.conf
:
# profiler => cpu|heap|all
# name => file that keeps profiling information
# interval => time interval for dump heap profiling information, in seconds
google_perftools profiler=all name=ngx_prof interval=1s;
Profiles will be stored as /path/to/file.<worker_pid>
.
Then you can use pprof
to visualize results, for example:
pprof --svg /usr/local/nginx/sbin/nginx ./ngx_prof.4342 >a.svg
pprof --svg /usr/local/nginx/sbin/nginx ./ngx_prof.4342.0007.heap >b.svg
The svg samples can find in svg directory.
You can use the Lua API binding lua-resty-gperftools
for more flexible control.
- ngx_cpp_dev - Nginx cpp development kit, with the power of C++11 and Boost Library.
- openresty_dev - OpenResty/Lua Programming
- favorite-nginx - Selected favorite nginx modules and resources.
- annotated_nginx - 注释nginx,学习研究源码