Jan20

【原创】Sphinx中maxed out, dismissing client错误解决

Author: leeon  Click: 8156   Date: 2014.01.20 @ 16:49:07 pm Category: 架构

最近在使用sphinx的过程中一直有发现有搜索不到为空的情况,但是跟踪请求从query.log查询日志发现都有正常发送请求,并在日志中有记录返回数据量和耗时,但从searchd.log日志中发现有如下类似的信息出现:

[Mon Jan 20 09:54:53.503 2014] [30391] WARNING: maxed out, dismissing client

[Mon Jan 20 09:54:55.855 2014] [30391] WARNING: last message repeated 75 times

这类信息出现的时间通常是在索引定时更新的阶段,然后去sphinx官网论坛搜索了一番都说是将max_children 参数调大即可,国内各种sphinx的配置教程中基本都使用max_children=30 ,看来是一个大坑。原本以为这个参数是用在sphinx的prefork模式中来定义最大的子进程数,其实不然,这个参数也可以定义在线程模式下最大的并发处理线程数数量。

为了验证其参数意义做了一下测试,在高并发请求下更新索引,会导致searchd进程的响应处理时间增大,从而导致并发情况下线程数突增,当处理请求的线程数增长超过30个时,就会有抛弃请求的情况出现,这也就导致如上文所说的warning日志出现。笔者最后将max_children调大后再次做压力测试的同时更新索引,就再没有出现丢请求的问题,搜索为空的情况也没有再出现过了。



TAG:   sphinx warning maxed out

    评论
    • 提交

    分类

    标签

    归档

    最新评论

    Abyss在00:04:28评论了
    Linux中ramdisk,tmpfs,ramfs的介绍与性能测试
    shallwe99在10:21:17评论了
    【原创】如何在微信小程序开发中正确的使用vant ui组件
    默一在09:04:53评论了
    Berkeley DB 由浅入深【转自架构师杨建】
    Memory在14:09:22评论了
    【原创】最佳PHP框架选择(phalcon,yaf,laravel,thinkphp,yii)
    leo在17:57:04评论了
    shell中使用while循环ssh的注意事项

    我看过的书

    链接

    其他

    访问本站种子 本站平均热度:8823 c° 本站链接数:1 个 本站标签数:464 个 本站被评论次数:94 次