Lines Matching refs:config

52 static struct config {  struct
82 } config; argument
127 aeDeleteFileEvent(config.el,c->context->fd,AE_WRITABLE); in freeClient()
128 aeDeleteFileEvent(config.el,c->context->fd,AE_READABLE); in freeClient()
133 config.liveclients--; in freeClient()
134 ln = listSearchKey(config.clients,c); in freeClient()
136 listDelNode(config.clients,ln); in freeClient()
140 listNode *ln = config.clients->head, *next; in freeAllClients()
150 aeDeleteFileEvent(config.el,c->context->fd,AE_WRITABLE); in resetClient()
151 aeDeleteFileEvent(config.el,c->context->fd,AE_READABLE); in resetClient()
152 aeCreateFileEvent(config.el,c->context->fd,AE_WRITABLE,writeHandler,c); in resetClient()
154 c->pending = config.pipeline; in resetClient()
162 size_t r = random() % config.randomkeys_keyspacelen; in randomizeClientKey()
174 if (config.requests_finished == config.requests) { in clientDone()
176 aeStop(config.el); in clientDone()
179 if (config.keepalive) { in clientDone()
182 config.liveclients--; in clientDone()
184 config.liveclients++; in clientDone()
216 if (config.showerrors) { in readHandler()
244 if (config.requests_finished < config.requests) in readHandler()
245 config.latency[config.requests_finished++] = c->latency; in readHandler()
267 if (config.requests_issued++ >= config.requests) { in writeHandler()
273 if (config.randomkeys) randomizeClientKey(c); in writeHandler()
289 aeDeleteFileEvent(config.el,c->context->fd,AE_WRITABLE); in writeHandler()
290 aeCreateFileEvent(config.el,c->context->fd,AE_READABLE,readHandler,c); in writeHandler()
320 if (config.hostsocket == NULL) { in createClient()
321 c->context = redisConnectNonBlock(config.hostip,config.hostport); in createClient()
323 c->context = redisConnectUnixNonBlock(config.hostsocket); in createClient()
327 if (config.hostsocket == NULL) in createClient()
328 fprintf(stderr,"%s:%d: %s\n",config.hostip,config.hostport,c->context->errstr); in createClient()
330 fprintf(stderr,"%s: %s\n",config.hostsocket,c->context->errstr); in createClient()
344 if (config.auth) { in createClient()
346 int len = redisFormatCommand(&buf, "AUTH %s", config.auth); in createClient()
356 if (config.dbnum != 0) { in createClient()
358 (int)sdslen(config.dbnumstr),config.dbnumstr); in createClient()
368 for (j = 0; j < config.pipeline; j++) in createClient()
373 c->pending = config.pipeline+c->prefix_pending; in createClient()
378 if (config.randomkeys) { in createClient()
406 if (config.idlemode == 0) in createClient()
407 aeCreateFileEvent(config.el,c->context->fd,AE_WRITABLE,writeHandler,c); in createClient()
408 listAddNodeTail(config.clients,c); in createClient()
409 config.liveclients++; in createClient()
416 while(config.liveclients < config.numclients) { in createMissingClients()
435 reqpersec = (float)config.requests_finished/((float)config.totlatency/1000); in showLatencyReport()
436 if (!config.quiet && !config.csv) { in showLatencyReport()
437 printf("====== %s ======\n", config.title); in showLatencyReport()
438 printf(" %d requests completed in %.2f seconds\n", config.requests_finished, in showLatencyReport()
439 (float)config.totlatency/1000); in showLatencyReport()
440 printf(" %d parallel clients\n", config.numclients); in showLatencyReport()
441 printf(" %d bytes payload\n", config.datasize); in showLatencyReport()
442 printf(" keep alive: %d\n", config.keepalive); in showLatencyReport()
445 qsort(config.latency,config.requests,sizeof(long long),compareLatency); in showLatencyReport()
446 for (i = 0; i < config.requests; i++) { in showLatencyReport()
447 if (config.latency[i]/1000 != curlat || i == (config.requests-1)) { in showLatencyReport()
448 curlat = config.latency[i]/1000; in showLatencyReport()
449 perc = ((float)(i+1)*100)/config.requests; in showLatencyReport()
454 } else if (config.csv) { in showLatencyReport()
455 printf("\"%s\",\"%.2f\"\n", config.title, reqpersec); in showLatencyReport()
457 printf("%s: %.2f requests per second\n", config.title, reqpersec); in showLatencyReport()
464 config.title = title; in benchmark()
465 config.requests_issued = 0; in benchmark()
466 config.requests_finished = 0; in benchmark()
471 config.start = mstime(); in benchmark()
472 aeMain(config.el); in benchmark()
473 config.totlatency = mstime()-config.start; in benchmark()
490 config.numclients = atoi(argv[++i]); in parseOptions()
493 config.requests = atoi(argv[++i]); in parseOptions()
496 config.keepalive = atoi(argv[++i]); in parseOptions()
499 config.hostip = strdup(argv[++i]); in parseOptions()
502 config.hostport = atoi(argv[++i]); in parseOptions()
505 config.hostsocket = strdup(argv[++i]); in parseOptions()
508 config.auth = strdup(argv[++i]); in parseOptions()
511 config.datasize = atoi(argv[++i]); in parseOptions()
512 if (config.datasize < 1) config.datasize=1; in parseOptions()
513 if (config.datasize > 1024*1024*1024) config.datasize = 1024*1024*1024; in parseOptions()
516 config.pipeline = atoi(argv[++i]); in parseOptions()
517 if (config.pipeline <= 0) config.pipeline=1; in parseOptions()
520 config.randomkeys = 1; in parseOptions()
521 config.randomkeys_keyspacelen = atoi(argv[++i]); in parseOptions()
522 if (config.randomkeys_keyspacelen < 0) in parseOptions()
523 config.randomkeys_keyspacelen = 0; in parseOptions()
525 config.quiet = 1; in parseOptions()
527 config.csv = 1; in parseOptions()
529 config.loop = 1; in parseOptions()
531 config.idlemode = 1; in parseOptions()
533 config.showerrors = 1; in parseOptions()
541 config.tests = sdsnew(","); in parseOptions()
542 config.tests = sdscat(config.tests,(char*)argv[++i]); in parseOptions()
543 config.tests = sdscat(config.tests,","); in parseOptions()
544 sdstolower(config.tests); in parseOptions()
547 config.dbnum = atoi(argv[++i]); in parseOptions()
548 config.dbnumstr = sdsfromlonglong(config.dbnum); in parseOptions()
617 if (config.liveclients == 0) { in showThroughput()
621 if (config.csv) return 250; in showThroughput()
622 if (config.idlemode == 1) { in showThroughput()
623 printf("clients: %d\r", config.liveclients); in showThroughput()
627 float dt = (float)(mstime()-config.start)/1000.0; in showThroughput()
628 float rps = (float)config.requests_finished/dt; in showThroughput()
629 printf("%s: %.2f\r", config.title, rps); in showThroughput()
640 if (config.tests == NULL) return 1; in test_is_selected()
645 return strstr(config.tests,buf) != NULL; in test_is_selected()
659 config.numclients = 50; in main()
660 config.requests = 100000; in main()
661 config.liveclients = 0; in main()
662 config.el = aeCreateEventLoop(1024*10); in main()
663 aeCreateTimeEvent(config.el,1,showThroughput,NULL,NULL); in main()
664 config.keepalive = 1; in main()
665 config.datasize = 3; in main()
666 config.pipeline = 1; in main()
667 config.showerrors = 0; in main()
668 config.randomkeys = 0; in main()
669 config.randomkeys_keyspacelen = 0; in main()
670 config.quiet = 0; in main()
671 config.csv = 0; in main()
672 config.loop = 0; in main()
673 config.idlemode = 0; in main()
674 config.latency = NULL; in main()
675 config.clients = listCreate(); in main()
676 config.hostip = "127.0.0.1"; in main()
677 config.hostport = 6379; in main()
678 config.hostsocket = NULL; in main()
679 config.tests = NULL; in main()
680 config.dbnum = 0; in main()
681 config.auth = NULL; in main()
687 config.latency = zmalloc(sizeof(long long)*config.requests); in main()
689 if (config.keepalive == 0) { in main()
693 if (config.idlemode) { in main()
694 …printf("Creating %d idle connections and waiting forever (Ctrl+C when done)\n", config.numclients); in main()
697 aeMain(config.el); in main()
713 } while(config.loop); in main()
719 data = zmalloc(config.datasize+1); in main()
721 memset(data,'x',config.datasize); in main()
722 data[config.datasize] = '\0'; in main()
835 if (!config.csv) printf("\n"); in main()
836 } while(config.loop); in main()