Currently, sheep calls a pthread_create for every I/O request, but the overhead is not so cheap. On my environment, it takes 320 microseconds for sheep to process 4 KB write, but I found that sheep spends 30~40 microseconds in pthread_create.
This series removes a short thread and implements a dynamic worker thread pool based on the previous work queue implementation. With this series, the 4 KB write performance was increased from 3100 IOPS to 3350 IOPS on my environment. MORITA Kazutaka (3): work: remove short thread work: enlarge the number of worker threads dynamically work: shrink the number of worker threads dynamically include/util.h | 2 +- lib/logger.c | 4 +- sheep/work.c | 168 +++++++++++++++++++++++++++---------------------------- sheep/work.h | 5 +- 4 files changed, 89 insertions(+), 90 deletions(-) -- 1.7.2.5 -- sheepdog mailing list sheepdog@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/sheepdog