summaryrefslogtreecommitdiff
path: root/src/bio.c
diff options
context:
space:
mode:
authorzhenwei pi <pizhenwei@bytedance.com>2020-04-13 09:58:35 +0800
committerzhenwei pi <pizhenwei@bytedance.com>2020-04-18 11:17:21 +0800
commit5010da6ab068cab4ee19591ebaf7112b9ec5f375 (patch)
tree042184f5f54578f46ac4876f0f2958da5086931d /src/bio.c
parentc479eace4512193bcfe3dcab3ab238486f6f9405 (diff)
downloadredis-5010da6ab068cab4ee19591ebaf7112b9ec5f375.tar.gz
Threaded IO: set thread name for redis-server
Set thread name for each thread of redis-server, this helps us to monitor the utilization and optimise the performance. And suggested-by Salvatore, implement this feature for multi platforms. Currently support linux and bsd, ignore other OS. An exmaple on Linux: # top -d 5 -p `pidof redis-server ` -H PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3682671 root 20 0 227744 8248 3836 R 99.2 0.0 0:19.53 redis-server 3682677 root 20 0 227744 8248 3836 S 26.4 0.0 0:04.15 io_thd_3 3682675 root 20 0 227744 8248 3836 S 23.6 0.0 0:03.98 io_thd_1 3682676 root 20 0 227744 8248 3836 S 23.6 0.0 0:03.97 io_thd_2 3682672 root 20 0 227744 8248 3836 S 0.2 0.0 0:00.02 bio_close_file 3682673 root 20 0 227744 8248 3836 S 0.2 0.0 0:00.02 bio_aof_fsync 3682674 root 20 0 227744 8248 3836 S 0.0 0.0 0:00.00 bio_lazy_free 3682678 root 20 0 227744 8248 3836 S 0.0 0.0 0:00.00 jemalloc_bg_thd 3682682 root 20 0 227744 8248 3836 S 0.0 0.0 0:00.00 jemalloc_bg_thd 3682683 root 20 0 227744 8248 3836 S 0.0 0.0 0:00.00 jemalloc_bg_thd 3682684 root 20 0 227744 8248 3836 S 0.0 0.0 0:00.00 jemalloc_bg_thd 3682685 root 20 0 227744 8248 3836 S 0.0 0.0 0:00.00 jemalloc_bg_thd 3682687 root 20 0 227744 8248 3836 S 0.0 0.0 0:00.00 jemalloc_bg_thd Another exmaple on FreeBSD-12.1: PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 5212 root 100 0 48M 7280K CPU2 2 0:26 99.52% redis-server{redis-server} 5212 root 38 0 48M 7280K umtxn 4 0:06 26.94% redis-server{io_thd_3} 5212 root 36 0 48M 7280K umtxn 6 0:06 26.84% redis-server{io_thd_1} 5212 root 39 0 48M 7280K umtxn 1 0:06 25.30% redis-server{io_thd_2} 5212 root 20 0 48M 7280K uwait 3 0:00 0.00% redis-server{redis-server} 5212 root 21 0 48M 7280K uwait 2 0:00 0.00% redis-server{bio_close_file} 5212 root 21 0 48M 7280K uwait 3 0:00 0.00% redis-server{bio_aof_fsync} 5212 root 21 0 48M 7280K uwait 0 0:00 0.00% redis-server{bio_lazy_free} Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Diffstat (limited to 'src/bio.c')
-rw-r--r--src/bio.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/bio.c b/src/bio.c
index 2af684570..0662c8c4c 100644
--- a/src/bio.c
+++ b/src/bio.c
@@ -154,6 +154,18 @@ void *bioProcessBackgroundJobs(void *arg) {
return NULL;
}
+ switch (type) {
+ case BIO_CLOSE_FILE:
+ redis_set_thread_title("bio_close_file");
+ break;
+ case BIO_AOF_FSYNC:
+ redis_set_thread_title("bio_aof_fsync");
+ break;
+ case BIO_LAZY_FREE:
+ redis_set_thread_title("bio_lazy_free");
+ break;
+ }
+
/* Make the thread killable at any time, so that bioKillThreads()
* can work reliably. */
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);