guoyande
guoyande
麻烦你试一下最新的gamma master,我这边测试是没问题。
1、重启前后调用health接口得到的数据量一样吗? 2、重启前向量索引dump下了吗?可以查看retrieval_model_index/2021-08-29-00:18:26/dump.done文件,如果索引没有dump,重启后将重新创建索引。配置文件中有控制自动调用dump频率的参数,也可手动调用curl -XPOFT http://router_server/$db_name/$space_name/_flush接口dump索引。
请问你使用的是批量插入数据接口吗?
麻烦你用最新gamma代码测试一下,之前批量插入接口有bug,现在已经修复了。
> INFO 2022-08-02 02:13:50,128 gamma_index_vearch.cc:375 vearch index trained successful ! ! !INFO 2022-08-02 02:13:50,128 gamma_engine.cc:1010 vector manager indexing success! 看着像数据量太少了,触发了core。方便用gdb调试一下吗?或者把coredump文件打开。
> index_size index_size太小了吧,设置成1000试试呢。
> @gyd-a 设置成1000可以了。 这里有什么规定么,是index_size需要大于ncentroids还是怎样的 可以参考faiss ivfpq ncentroids的设置范围, "nsubvector": 32, 这个参数太小了,建议为维度或者维度/2,因为scann暂时不支持精排,并且他是4bit量化,faiss ivfpq是8bit。
> thread_num指定为1 这个参数控制scann搜索时执行线程的最大数量,scann搜索使用线程池,这个是线程池的最大线程数量。使用线程池相比openmp,在高并发下性能提升了一大截。 之前gamma有一个问题,随着并发的提高,性能先是逐渐提升,过了一定阈值后,性能剧烈下降。使用线程池以后,随着并发的提高性能提高,达到一定阈值以后继续加大并发他的计算能力不变,计算不过来的超时丢弃。
> terminate called after throwing an instance of 'std::system_error' > what(): Resource temporarily unavailable > runtime/cgo: pthread_create failed: Resource temporarily unavailable 这个不应该这样,我们没有到这样的问题,训练时最好不要搜索,可以调节一下系统默认的最大线程数量。
> > terminate called after throwing an instance of 'std::system_error' > > what(): Resource temporarily unavailable > > runtime/cgo: pthread_create failed: Resource temporarily unavailable > > 这个不应该这样,我们没有到这样的问题,训练时最好不要搜索,可以调节一下系统默认的最大线程数量。 可以看一下当时线程数量