一、PHP Benchmark实现思路 在看Redis慢查询日志实现的过程中,觉得这个功能很有用,能够帮助快速分析出性能问题出处,所以想到为PHP实现这样的功能。 实现思路也是借鉴Redis对于慢查询的处理流程。 (此扩展目前仅支持Linux) 此扩展的作用是帮助分析执行时间
一、PHP Benchmark实现思路
在看Redis慢查询日志实现的过程中,觉得这个功能很有用,能够帮助快速分析出性能问题出处,所以想到为PHP实现这样的功能。
实现思路也是借鉴Redis对于慢查询的处理流程。(此扩展目前仅支持Linux)
此扩展的作用是帮助分析执行时间过长的PHP脚本记录的要素有:
1、脚本执行时间
2、当前请求的REQUEST数据
3、当前请求的文件相对路径
4、当前请求的COOKIES数据
记录传递的数据是为了模拟出有些情况下,是因为特殊的数据才会出现的性能问题。
存储的介质选择了Memcache而没有选择文件,是因为不希望可能由磁盘写入带来的瓶颈,同时数据是允许丢失的。
如果希望持久化,可以通过客户端实现定时存储日志,不需要实时持久化存储。
实现思路:
1、设置一个最大脚本超时时间slowlog.slow_maxtime(单位微妙1s=1000000us)
2、在脚本的Rinit阶段记录当前时间为start,当Rshotdown阶段记录当前时间为end,时间差即为duration执行时间
其中Rinit、Rshutdown阶段通过下图来理解:
3、当执行时间duration大于设置的slowlog.slow_maxtime时,进行第四步。
4、获取memcache键名为slowlog_idx的日志自增ID,将当前的4点记录要素(最开始列出的4要素)存储到slowlog_(自增ID)下,同时将更新slowlog_idx键值为自增ID++。
此时,如果出现超过大于指定执行时间的脚本,已经被记录在Memcache中。
二、实现网页客户端脚本帮助分析查看
从memcache遍历出日志后,通过对数据进行计算再以饼图展现出以文件为单位的平均统计,点击饼图块将显示此文件的详细日志信息。
三、安装过程
1、下载扩展源码http://git.oschina.net/365690485/php-benchmark
2、
#如果你没有安装memcache,你需要先安装memcache扩展和memcache server tar -xvf slowlog.tar cd slowlog /usr/local/php/bin/phpize #此处需要设置为你的PHP安装目录 ./configure --with-php-config=/usr/local/php/bin/php-config #此处需要设置为你的PHP安装目录 make && make install
extension=slowlog.so [slowlog] slowlog.slow_maxtime=1000000 #表示超时为1s slowlog.mem_host=localhost slowlog.mem_port=11211现在扩展的安装配置已经完成
4、客户端使用(网页中查看)
客户端文件在源码包下的client文件夹,拷贝client到站点下,访问http://localhost/client/slowlog.php即可查看慢执行日志。
注意:如果你的memcache服务器地址不是localhost和端口11211,请自行修改连接信息。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)