2012-04-13 6 views
2

私は非リアルタイムゲームのバックエンドになるPHP/CodeIgniter Webアプリケーションを開発しています。私たちは後の分析のためにゲームの活動を記録する能力が必要です。 codeigniter独自のログシステムまたはlog4phpを使用している私のパフォーマンステストでは、ファイルのロギングが遅くなり、サーバが50%処理できる1秒あたりのリクエスト数が減ります。私はWAMPマシンとApache/Ubuntuサーバーの両方で試しました。 MongoDBを使用するようにロギングを変更すると、同じ量の情報をロギングしていても、パフォーマンスは数パーセント低下します。PHPでログインするのは効率的ですか?

ファイルロギングは、すべて同じファイルのロックを待機しているか、設定に問題がある可能性があるため、本質的に遅くなりますか?

+0

MongoDBに切り替えたときにパフォーマンスが低下したことが少し驚いています。ファイルを高速化する唯一の方法は、ファイルに追加するだけです。しかし、これらのログではどうしますか?データベースを使用する方が良いかもしれません。 – NullUserException

+1

あなたがどのくらいロギングしているかは、ロギングの方法と同じくらい重要であることに注意してください。まだ行っていない場合は、ログ情報の冗長性を間引くことを検討してください。アクションIDを使用して後でデコードする価値があるかもしれません。 –

+0

あなたは何をロギングしていて、どれくらい大きいのですか?私はそれがr/sを50%殺すだろうと信じるのは難しいでしょう... error_logを使用して目的のログファイルを指定できませんか?あなたは本当にsapi関数よりもはるかに高速になることはできません。 – Aknosis

答えて

0

RAMドライブファイルにログインできます。 また、YYYY-mm-dd-HH.logのような日付スタンプでログの名前を付けることで、古いログを定期的に取得して処理(アーカイブ)することができます。

関連する問題