我有一个 CRON 作业,每 5 分钟重建一次 Sphinx 索引:
*/5 * * * * cd/var/www/my_app &&/usr/local/bin/ruby/usr/local/bin/rake RAILS_ENV=production ts:rebuild >>/var/www/my_app/log/cron_log.log
它仅索引一个包含大约 400 条记录的表,但每次启动 rake 任务时,CPU 负载都会跳到 100%(具有 4 个 CPU 和 1 GB RAM 的 VPS)。我似乎找不到任何合理的解释。我如何调查导致它的原因?有什么办法可以优化这个过程吗?
最佳答案
此任务是否大量使用进程,然后按预期停止?它停留的时间是否比应有的长得多?
此外,值得注意的是,只有在索引结构发生变化(新字段或属性)或添加或删除索引时才需要重建 - 要仅更新数据,请使用 ts:index
任务相反(它不会不必要地重新启动 Sphinx)。
关于ruby-on-rails - Thinking Sphinx 重建索引 - 高 CPU 负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6144048/