我们如何在Manticore Search中重构系统线程
最近我们重构了系统线程。自从我们从Sphinx分叉以来,早期的searchd以一种经常唤醒的方式执行所有系统任务。每个服务在一个专用线程中工作,每50毫秒唤醒一次,检查是否有事情要做。这意味着即使是空闲的守护进程每秒唤醒200次“只是为了检查”一个任务。拥有6个这样的任务将导致每秒1200次唤醒,尤其在使用Amazon AWS的客户中,这种情况变得很明显,因为它计算CPU使用情况。这些内部任务包括:
普通索引轮换 发送心跳给代理 索引预加载 刷新索引属性 刷新实时索引 刷新二 …