定位apache慢请求神器—mod_log_slow
《Linux就该这么学》中是如何定位apache的,apache php站点负载时不时高负载,但是因为上面的站点太多,太难排查到底是哪个站点引起的。nginx php-fpm倒是好查,他有一个slowlog,可以快速的定位到出现故障的php代码位置,使用xdebug来查问题太复杂。写mod_log_slow的灵感来源于mysql的slowlog.
操作方法
- 01
1.1解压 tar zxf mod_log_slow-1.0.7.tar.gz cd mod_log_slow 或者可以从github中检出 git clone git://github.com/yokawasa/mod_log_slow.git cd mod_log_slow 1.2 打开Makefile并且修改变量ap_basedir #vi Makefile ap_basedir=/改成你的apache安装路径 # make # make install
- 02
配置apache 2.1 加载模块 LoadModule log_slow_module modules/mod_log_slow.so 2.2 配置虚拟主机 <VirtualHost *:80> ServerName localhost DocumentRoot /usr/local/apache/htdocs ErrorLog logs/error_log LogLevel debug CustomLog logs/access_log common CustomLog logs/transfer_log "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" "%{logslow-id}n" "%{logslow-time}n"" ## (VirtualHost) mod_log_slow configuration LogSlowEnabled On LogSlowLongRequestTime 100 LogSlowFileName /usr/local/apache/logs/slow_log LogSlowTimeFormat "[%Y-%m-%d %H:%M:%S]" LogSlowBufferedLogs Off </VirtualHost>
- 03
重启 service httpd restart