ある時から Safari を使用していると CPU ファンが回りっぱなしになる現象が時折起きるようになった。
この問題は古くから知られており、
Q: com.apple.WebKit.network using 100% CPU など取り上げられている。
解決策は色々と挙げられているが、決め手に欠けているようである。キャッシュを消すなどすると改善することもある。ウインドウを全て閉じても解決しないこともある。
ある時、Console.app を確認すると、次のようなログがおよそ一秒間に千回という頻度で大量に出力されていた。
com.apple.WebKit.Networking: (libsqlite3.dylib) [com.apple.libsqlite3:logging] database corruption at line 84342 of [95fbac39ba]
この内容は極めて明瞭である。Safari が記録している SQLite3 のデータベースが壊れてしまったわけである。データベースの不整合は何らかの理由でしばしば起きているようである。
どのデータベースに問題があるかは Activity Monitor.app などで開いているファイルを確認することでおおよそ把握することができる。
今回は ~/Library/Containers/com.apple.Safari/Data/Library/WebKit/WebsiteData を廃棄することで改善することができた。
com.apple.WebKit.Networking の挙動が怪しい場合は、syslog を確認することが肝要である。