编辑
2023-11-15
redis
00
请注意,本文编写于 542 天前,最后修改于 542 天前,其中某些信息可能已经过时。
c
ubuntu@VM-8-16-ubuntu:~$ strace redis-server // 切换到了执行文件 execve("/usr/local/bin/redis-server", ["redis-server"], 0x7fff26814f30 /* 27 vars */) = 0 brk(NULL) = 0x5575ff3bb000 arch_prctl(0x3001 /* ARCH_??? */, 0x7ffe24c54730) = -1 EINVAL (Invalid argument) mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f1c37962000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=24629, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 24629, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f1c3795b000 close(3) = 0 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 .............一堆系统和动态库调用逻辑................................................输出Redis启动ART图 ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 getpid() = 3420418 write(1, " _._ "..., 1024 _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 7.2.3 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 3420418 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | https://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-) = 1024 write(1, "._ _.-' "..., 58._ _.-' ) = 58 write(1, " `-.__.-' "..., 70 `-.__.-' ) = 70 write(1, "\n", 1 ) = 1、 ...................................开始设置监听Socket............................................. openat(AT_FDCWD, "/proc/sys/net/core/somaxconn", O_RDONLY) = 6 newfstatat(6, "", {st_mode=S_IFREG|0644, st_size=0, ...}, AT_EMPTY_PATH) = 0 read(6, "4096\n", 1024) = 5 close(6) = 0 socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 6 setsockopt(6, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 bind(6, {sa_family=AF_INET, sin_port=htons(6379), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 listen(6, 511) = 0 fcntl(6, F_GETFL) = 0x2 (flags O_RDWR) fcntl(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0 fcntl(6, F_GETFD) = 0 fcntl(6, F_SETFD, FD_CLOEXEC) = 0 socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP) = 7 setsockopt(7, SOL_IPV6, IPV6_V6ONLY, [1], 4) = 0 setsockopt(7, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 bind(7, {sa_family=AF_INET6, sin6_port=htons(6379), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::", &sin6_addr), sin6_scope_id=0}, 28) = 0 listen(7, 511) = 0 fcntl(7, F_GETFL) = 0x2 (flags O_RDWR) fcntl(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0 fcntl(7, F_GETFD) = 0 fcntl(7, F_SETFD, FD_CLOEXEC) = 0 epoll_ctl(5, EPOLL_CTL_ADD, 6, {events=EPOLLIN, data={u32=6, u64=6}}) = 0 epoll_ctl(5, EPOLL_CTL_ADD, 7, {events=EPOLLIN, data={u32=7, u64=7}}) = 0 rt_sigaction(SIGRT_1, {sa_handler=0x7f1c376dd8f0, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f1c3768e520}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1c36316000 mprotect(0x7f1c36317000, 8388608, PROT_READ|PROT_WRITE) = 0 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 ..............................初始化Bio里面的微型线程池,默认三个,调用三次clone................................................. # clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f1c36b16910, parent_tid=0x7f1c36b16910, exit_signal=0, stack=0x7f1c36316000, stack_size=0x7ff480, tls=0x7f1c36b16640} => {parent_tid=[3420419]}, 88) = 3420419 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1c35b15000 mprotect(0x7f1c35b16000, 8388608, PROT_READ|PROT_WRITE) = 0 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 # clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f1c36315910, parent_tid=0x7f1c36315910, exit_signal=0, stack=0x7f1c35b15000, stack_size=0x7ff480, tls=0x7f1c36315640} => {parent_tid=[3420420]}, 88) = 3420420 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1c35314000 mprotect(0x7f1c35315000, 8388608, PROT_READ|PROT_WRITE) = 0 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f1c35b14910, parent_tid=0x7f1c35b14910, exit_signal=0, stack=0x7f1c35314000, stack_size=0x7ff480, tls=0x7f1c35b14640} => {parent_tid=[3420421]}, 88) = 3420421 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0 mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1c34b13000 mprotect(0x7f1c34b14000, 8388608, PROT_READ|PROT_WRITE) = 0 rt_sigprocmask(SIG_BLOCK, ~[], ~[KILL STOP RTMIN RT_1], 8) = 0 # clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f1c35313910, parent_tid=0x7f1c35313910, exit_signal=0, stack=0x7f1c34b13000, stack_size=0x7ff480, tls=0x7f1c35313640} => {parent_tid=[3420422]}, 88) = 3420422 rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1], NULL, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 getpid() = 3420418 getpid() = 3420418 write(1, "3420418:M 15 Nov 2023 10:09:24.2"..., 563420418:M 15 Nov 2023 10:09:24.217 * Server initialized ) = 56 newfstatat(AT_FDCWD, "appendonlydir", 0x7ffe24c54660, 0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "dump.rdb", O_RDONLY) = -1 ENOENT (No such file or directory) getpid() = 3420418 getpid() = 3420418 ...........................................开始epoll_wait事件循环................................................................... write(1, "3420418:M 15 Nov 2023 10:09:24.2"..., 693420418:M 15 Nov 2023 10:09:24.217 * Ready to accept connections tcp ) = 69 epoll_wait(5, [], 10128, 0) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 8 read(8, "3420418 (redis-server) R 3420415"..., 4095) = 341 close(8) = 0 epoll_wait(5, [], 10128, 100) = 0 ..................................无限................................................

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!