PHP程序,如何监控内存情况

PHP程序,如何监控内存情况,第1张

看到有人写透视宝做php监控的原理图,跟你分享下。我估计大家做的方式都是差不多。

PHP运行支撑的ZendEngine早在设计过程中已经预留了丰富的Hook,可以有效干涉处理过程中的几个关键步骤。利用了以下几个Hook,就能方便的获取数据:

1.           zend_compile_file &zend_compile_string

加载分析文件或字符串,本身就会造成非常大的IO,如果过多地执行加载,无疑会造成内存和CPU的消耗.通过这两个hook,可以取得文件名、执行行数、使用内存和CPU占用时间。

2.           zend_execute &zend_execute_internal

通过这两个hook的使用,我们可以准确地分析得出一个PHP应用中的类调用、方法调用、方法参数、内存占用和CPU占用,加以分析,便可以准确得出应用系统运行过程中的方法运行栈,API调用地址,SQL语句,CacheKey以及Cache命中等关键信息。

3.           zend_throw_exception_hook

利用异常钩子,可以准确地得到应用系统运行过程中出现的异常信息,当然包括异常发生的类\方法位置,参数,异常code和异常message。

4.           zend_error_cb

错误钩子则更加直接,可以准确得到系统运行过程中出现的任何一个warning,代码错误或语法错误。

楼主,如果你的网站只是你个人管理,并且你的IP是固定的【一段时间内】,那么你可以通过限制IP来确定文件的访问权限。

如果php脚本截获了一个与你预先设定的IP不符的地址,那么就应该立刻发邮件提醒你,截获该IP的PHP文件名称,或者通过写网站运行日志的方式,将可疑行为记录到文本文件中

以上方法可以用于后台php文件的安全防范;

前台呢?

不太好处理,看到楼主的问题,应该是服务器被攻破了,那么更好的办法应该是从服务器安全方面入手,比如限制文件的读写权限等


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11299446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存