思考Sphinx重建索引-CPU负载高
我有一个 CRON 工作,每 5 分钟重建 Sphinx 索引:
*/5 * * * * cd /var/www/my_app && /usr/local/bin/ruby /usr/local/bin/rake RAILS_ENV=生产 ts:rebuild >>> /var/www/my_app/log/cron_log.log
它只索引一张大约有 400 条记录的表,但每次启动 rake 任务时,CPU 负载都会跳到 100%(具有 4 个 CPU 和 1 GB RAM 的 VPS) )。我似乎找不到任何合理的解释。我该如何调查造成这种情况的原因?有什么办法可以优化这个流程吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
此任务是否大量使用进程,然后按预期停止?它的停留时间是否比应有的时间长得多?
另外,值得注意的是,您只需要在索引结构发生更改(新字段或属性)时重建,或者添加或删除索引 - 要更新数据,请改用 ts:index 任务(其中不会不必要地重新启动 Sphinx)。
Does this task use the processes a great deal, and then stop as expected? Does it hang around far longer than it should?
Also, it's worth noting that you only need to rebuild if indices structures change (new fields or attributes), or you add or remove indices - to just update data, use the
ts:index
task instead (which doesn't restart Sphinx unnecessarily).