Webサーバーに問題があり、ファイルロック(PHP flock()によって引き起こされる)が解決するのを待つApacheプロセスがどんどんスタックしていますが、解決することはありません。最終的に、サイトはどんどん遅くなり、Apacheが再起動されるまで、最終的に完全に停止します。
私は、おそらく私たちの自家製のディスクキャッシュメカニズムで、どういうわけか悪いコードがこれの背後にあるという理論に取り組んでいます。しかし、私はそれを追跡することはできません。(Ubuntuで実行しています。)
私の質問は、どのファイルがスタックしているのかをどうやって見分けることができるかということです。ハングアップがどこにあるかを知ることができれば、悪いコードがどこにあるかをはるかに簡単に見つけることができます。このコマンドを実行すると、次のようになります。
ps -o pid,tt,user,fname,wchan -C apache2
私はこれを手に入れます:
730 ? www-data apache2 flock_lock_file_wait
3085 ? www-data apache2 flock_lock_file_wait
5393 ? www-data apache2 flock_lock_file_wait
5397 ? www-data apache2 flock_lock_file_wait
11181 ? www-data apache2 flock_lock_file_wait
30280 ? www-data apache2 flock_lock_file_wait
これから、Apacheがロックされている/待機している正確なファイルを確認する方法はありますか?