PHP登录的效率如何?

3
我正在开发一款PHP/CodeIgniter网络应用程序,该应用程序将成为非实时游戏的后端。我们希望记录游戏活动以供后期分析。通过使用codeigniter自带的日志系统或log4php进行性能测试,文件记录似乎速度很慢,会使服务器每秒的请求处理量减少50%,我已经在WAMP机器和Apache/Ubuntu服务器上尝试过了。如果我将记录更改为使用MongoDB,则性能仅下降了几个百分点,即使我记录的信息数量相同。
对于php脚本来说,文件记录是否本质上较慢,因为它们都在等待同一文件上的锁定,还是可能是配置问题?

当你切换到MongoDB时,性能下降了,这让我有点惊讶。唯一的方式是如果你只是追加文件,那么它们才会更快。但是你要用这些日志做什么呢?使用数据库可能会更好。 - NullUserException
1
记住,记录的数量和记录方式一样重要。如果还没有这样做,请考虑减少日志信息的冗长程度。甚至可以使用操作ID并稍后解码,这可能值得一试。 - Mr. Llama
你要记录什么内容,它有多大?我很难相信它会将 r/s 减少50%... 你不能使用 error_log 并指定目标日志文件吗?你真的无法比 sapi 函数更快了。 - aknosis
1
@null:抱歉,我的意思是相对于完全不记录日志,Mongo的性能仅下降了几个百分点。因此,如果没有记录日志= 100 r / s,Mongo = 95 r / s,log4php记录到文件= 50 r / s。 - justkevin
1个回答

0

您可以尝试登录 RAM 磁盘文件。还应考虑按日期戳(如 YYYY-mm-dd-HH.log)命名日志,以便定期处理(存档)旧日志,从而保持磁盘的清洁。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接