I'm using k8s client-go to stream pod log to a websocket, but for some reason, the CPU usage is 100% on two thread. pprof indicates most of the time were spent on interface casting (see attachment for the pprof file) and strace reported hugh number of SIGURG signals: 12 futex(0xc00060c148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...> 11 epoll_pwait(4, <unfinished ...> 10 futex(0x49859d8, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...> 9 futex(0x4985ba0, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...> 8 futex(0xc000110d48, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...> 6 restart_syscall(<... resuming interrupted read ...> <unfinished ...> 11 <... epoll_pwait resumed>[], 128, 0, NULL, 0) = 0 1 futex(0x4943a88, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...> 11 epoll_pwait(4, [{EPOLLIN|EPOLLOUT, {u32=3259498682, u64=9199583560586494138}}], 128, 310, NULL, 0) = 1 11 read(23, "\27\3\3\0$#\4\34\317W\3519KDk\34\254\207\347\326\v>\242B\300WP\25\211\245p\353\v\35Ghb\301lgg", 8192) = 41 11 read(23, 0xc000c14000, 8192) = -1 EAGAIN (Resource temporarily unavailable) 11 write(24, "[\"73.431415\",\"o\",\"\\r\\n\\u001b[?2004l\\r\"]", 39) = 39 11 write(24, "\n", 1) = 1 11 write(22, "\201q{\"Op\":\"stdout\",\"Data\":\"\\r\\n\\u001b[?2004l\\r\",\"SessionID\":\"cqakrrsbndmdkbss53tg\",\"ToastType\":\"\",\"Rows\":0,\"Cols\":0}\n", 115) = 115 11 epoll_pwait(4, [], 128, 0, NULL, 0) = 0 11 epoll_pwait(4, [{EPOLLIN|EPOLLOUT, {u32=3259498682, u64=9199583560586494138}}], 128, 309, NULL, 0) = 1 11 read(23, "\27\3\3\0Df\r\307\262)\374\27\322\332'\327\302\267\203\207Z\212#S\322=\\X\357\214\336\2YC\266\325keO\377b\25\274\261\375\327\261\246ZVD\362\276\f\17\20\231&\254\31\323\260,\321~\206\372#.nuZ\226", 8192) = 73 11 read(23, 0xc000c14000, 8192) = -1 EAGAIN (Resource temporarily unavailable) 11 write(24, "[\"73.433091\",\"o\",\"strace: Process 1 attached with 8 threads\\r\\n\"]", 65) = 65 11 write(24, "\n", 1) = 1 11 write(22, "\201~\0\213{\"Op\":\"stdout\",\"Data\":\"strace: Process 1 attached with 8 threads\\r\\n\",\"SessionID\":\"cqakrrsbndmdkbss53tg\",\"ToastType\":\"\",\"Rows\":0,\"Cols\":0}\n", 143) = 143 11 epoll_pwait(4, [], 128, 0, NULL, 0) = 0 11 epoll_pwait(4, <unfinished ...> 6 <... restart_syscall resumed>) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 53744384 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 0 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 824633982976 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 824633982976 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 824633982976 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 44008193 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 824633982976 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 824633982976 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 824633982976 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 824633982976 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> 6 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 7 <... rt_sigreturn resumed>) = 824633982976 6 <... nanosleep resumed>NULL) = 0 6 nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0 6 getpid() = 1 6 tgkill(1, 7, SIGURG <unfinished ...> 7 --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1, si_uid=0} --- 6 <... tgkill resumed>) = 0 7 rt_sigreturn({mask=[]} <unfinished ...> Any idea why?
-- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/7997076b-a7ac-49a4-97a0-079fed8abe44n%40googlegroups.com.
pprof.kube-term.samples.cpu.001.pb.gz
Description: GNU Zip compressed data