php file_put_content ——更高效写日志
开发时经常要写日志,比如排查问题用的日志、业务需要的日志。PHPer初期写日志的方式大多是用file_put_content、error_log或fopen、flock、fwrite系列函数,但当遇到高并发场景时,因为文件锁争抢及PHP本身是非编译型语言等原因,PHP提供的写日志方式就不够高效。
借鉴PHP扩展seaslog的写日志方式,采用以下几种手段可以更高效的写日志。
1、 先将日志放到内存buffer中,当请求结束或内存buffer满之后将数据刷入文件。
2、采用句柄复用,每个请求尽量只打开一次文件,减少锁的争抢。
3、 采用非独享锁, 不采用独享锁,提高性能。
4、 先响应数据给客户端(如利用fastcgi_finish_request函数),再异步写日志。
5、采用go、C++、C等编译型语言,相对于PHP是预编译好的代码,执行效率会更高。
相关推荐
-
第18问:MySQL CPU 高了,怎么办?2025-02-24 10:27:18
-
mysql索引类型 normal, unique, full text
mysql索引类型 normal, unique, full text2025-02-24 10:05:05 -
uwsgi+django+nginx 搭建部分总结2025-02-24 10:03:33
-
使用Docker配置Nginx环境部署Nextcloud2025-02-24 10:02:03
-
Nginx安装和怎么使用2025-02-24 10:00:45