bugfix: 远端测试bug
This commit is contained in:
@@ -9,8 +9,8 @@
|
|||||||
6. 实现配置文件,把日志级别,端口ip,主从模式,持久化方案。 **完成**。
|
6. 实现配置文件,把日志级别,端口ip,主从模式,持久化方案。 **完成**。
|
||||||
7. 持久化落盘用io_uring,加载配置文件用mmap。 **完成**。
|
7. 持久化落盘用io_uring,加载配置文件用mmap。 **完成**。
|
||||||
8. 主从同步的性能,开启与关闭性能做到5%?。
|
8. 主从同步的性能,开启与关闭性能做到5%?。
|
||||||
9. 主从同步600w条,出现的coredump。 **完成**。
|
9. 主从同步600w条,出现的coredump。 **BUG FIX**。
|
||||||
10. 主从同步用ebpf实现。 **BUG FIX**。
|
10. 主从同步用ebpf实现。 **完成**。
|
||||||
11. 内存池测试qps与虚拟内存,物理内存。 **完成**。
|
11. 内存池测试qps与虚拟内存,物理内存。 **完成**。
|
||||||
12. 实现一个内存泄露检测组件。 **完成**。
|
12. 实现一个内存泄露检测组件。 **完成**。
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ sudo apt install libxml2 libxml2-dev
|
|||||||
# hiredis client
|
# hiredis client
|
||||||
sudo apt install -y libhiredis-dev
|
sudo apt install -y libhiredis-dev
|
||||||
# bpftrace
|
# bpftrace
|
||||||
sudo apt install -y bpftrace
|
sudo apt install -y bpftrace libelf libelf-dev clang
|
||||||
|
|
||||||
git clone git@gitlab.0voice.com:lianyiheng/9.1-kvstore.git
|
git clone git@gitlab.0voice.com:lianyiheng/9.1-kvstore.git
|
||||||
cd 9.1-kvstore/
|
cd 9.1-kvstore/
|
||||||
|
|||||||
@@ -413,10 +413,9 @@ int config_load(const char *filename, AppConfig *out_cfg)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* 用 xmlReadMemory 从内存解析。
|
* 用 xmlReadMemory 从内存解析。
|
||||||
* - "UTF-8":你原来指定了 UTF-8;如果希望自动探测,可以传 NULL。
|
* - "UTF-8":指定了 UTF-8;如果希望自动探测,可以传 NULL。
|
||||||
* - XML_PARSE_NONET:禁用网络访问(防 XXE/外部实体拉取)
|
* - XML_PARSE_NONET:禁用网络访问(防 XXE/外部实体拉取)
|
||||||
* - XML_PARSE_NOBLANKS:保持你原来的行为
|
* - XML_PARSE_NOBLANKS:保持你原来的行为
|
||||||
* 你也可以加 XML_PARSE_NOERROR | XML_PARSE_NOWARNING 减少噪音,但调试阶段不建议。
|
|
||||||
*/
|
*/
|
||||||
int parse_opts = XML_PARSE_NOBLANKS | XML_PARSE_NONET;
|
int parse_opts = XML_PARSE_NOBLANKS | XML_PARSE_NONET;
|
||||||
|
|
||||||
|
|||||||
@@ -224,8 +224,7 @@ static void* reader_thread_func(void *arg)
|
|||||||
|
|
||||||
// 序列号检查
|
// 序列号检查
|
||||||
if (h.seq != local_seq) {
|
if (h.seq != local_seq) {
|
||||||
DEBUGLOG("Reader: seq mismatch! h.seq=%lu, local_seq=%lu, off=%u\n",
|
// DEBUGLOG("Reader: seq mismatch! h.seq=%lu, local_seq=%lu, off=%u\n", h.seq, local_seq, read_off);
|
||||||
h.seq, local_seq, read_off);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -556,7 +556,6 @@ int resp_dispatch(const resp_cmd_t *cmd, resp_value_t *out_value) {
|
|||||||
return 0;
|
return 0;
|
||||||
case KVS_CMD_MEM_PRINT:{
|
case KVS_CMD_MEM_PRINT:{
|
||||||
int ret = kvs_mem_printf();
|
int ret = kvs_mem_printf();
|
||||||
printf("ret %d\n", ret);
|
|
||||||
*out_value = resp_int(ret);
|
*out_value = resp_int(ret);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -320,9 +320,11 @@ int mp_print(mp_pool_t *pool){
|
|||||||
printf("------\n");
|
printf("------\n");
|
||||||
for(int i = 0; i < MEMPOOL_NUM_CLASSES; i++){
|
for(int i = 0; i < MEMPOOL_NUM_CLASSES; i++){
|
||||||
mp_bucket_t *bucket = &pool->buckets[i];
|
mp_bucket_t *bucket = &pool->buckets[i];
|
||||||
if(bucket->page_count) ret += bucket->page_count;
|
if(bucket->page_count) {
|
||||||
|
ret += bucket->page_count;
|
||||||
printf("size:%ld, page:%d, empty:%d\n", bucket->block_size, bucket->page_count, bucket->empty_count);
|
printf("size:%ld, page:%d, empty:%d\n", bucket->block_size, bucket->page_count, bucket->empty_count);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
printf("------\n");
|
printf("------\n");
|
||||||
|
|
||||||
printf("page count: %d\n", ret);
|
printf("page count: %d\n", ret);
|
||||||
|
|||||||
@@ -274,7 +274,9 @@ int main(int argc, char **argv) {
|
|||||||
redisContext *c = redisConnect(host, port);
|
redisContext *c = redisConnect(host, port);
|
||||||
if (!c || c->err) die(c, "connect failed");
|
if (!c || c->err) die(c, "connect failed");
|
||||||
|
|
||||||
printf("Connected to %s:%d\n", host, port);
|
redisReply *reply = redisCommand(c, "MEMPRINT");
|
||||||
|
|
||||||
|
printf("Connected to %s:%d, %lld\n", host, port, reply->integer);
|
||||||
|
|
||||||
if(mode == 0){
|
if(mode == 0){
|
||||||
save(c);
|
save(c);
|
||||||
|
|||||||
Reference in New Issue
Block a user