皆さん、こんにちは。
最近、/search クエリでタイムアウトが頻発するようになりました。いくつかの検索語句でベンチマークを行ったところ、一部のクエリは完了までに最大2分かかることがあります。この 投稿 は確認しましたが、この問題に対処するための追加的なアドバイスがあれば教えていただけないでしょうか。当社の状況に関連する情報を以下に挙げます。
- タイムアウトが最も頻発している最大のサイトには、約170万件の投稿があります。
- PostgreSQL のデフォルトの autovacuum 設定を使用しています。関連するテーブル(
categories、posts、topics、post_search_data、users)の統計情報を収集したところ、1日おきに vacuum が実行されていることが確認できました。したがって、死んだ行が検索を遅らせている可能性は低いと考えています。 - 手動で
Jobs::ReindexSearch.new({})を実行しましたが、顕著な改善は見られませんでした。
このサイトに対して rake search:reindex を実行することを検討していますが、これはすでに時間がかかることがわかっています。他に何か良いご提案はありますか?
ご多忙の折、お手数をおかけしますが、よろしくお願いいたします。