思考Sphinx重建索引-CPU负载高

发布于 2024-11-10 09:34:19 字数 349 浏览 2 评论 0 原文

我有一个 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) )。我似乎找不到任何合理的解释。我该如何调查造成这种情况的原因?有什么办法可以优化这个流程吗?

I have a CRON job rebuilding Sphinx index every 5 minutes:

*/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

It's indexing only one table with around 400 records, but every time it starts the rake task the CPU load jumps to 100% (VPS with 4 CPUs and 1 GB RAM). I can't seem to find any reasonable explanation for this. How can I investigate what's causing it? Is there any way to optimize this process?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2024-11-17 09:34:19

此任务是否大量使用进程,然后按预期停止?它的停留时间是否比应有的时间长得多?

另外,值得注意的是,您只需要在索引结构发生更改(新字段或属性)时重建,或者添加或删除索引 - 要更新数据,请改用 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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文