【问题标题】:Php7.0-fpm high load cpuphp7.0-fpm 高负载cpu
【发布时间】:2017-08-05 13:37:53
【问题描述】:

我有一个错误。他随机出现。工作可能 2-3 天是正常的,但在某些事件之后开始高负载 cpu screen

当它出现时,我会在 php-fpm 上进行 strace

    --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=695, si_uid=33, si_status=0, ...} ---
getpid()                                = 10154
write(8, "C", 1)                        = -1 EAGAIN (Resource temporarily unavailable)
rt_sigreturn()                          = 56
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c688b6a10) = 707
clock_gettime(CLOCK_MONOTONIC, {760605, 823753717}) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=701, si_uid=33, si_status=0, si_utime=0, si_stime=0} ---
write(8, "C", 1)                        = -1 EAGAIN (Resource temporarily unavailable)
rt_sigreturn()                          = 140034873437968
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=698, si_uid=33, si_status=0, si_utime=0, si_stime=0} ---
write(8, "C", 1)                        = -1 EAGAIN (Resource temporarily unavailable)
rt_sigreturn()                          = 140034873437968
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED, NULL) = 32743
clock_gettime(CLOCK_MONOTONIC, {760605, 824399822}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c688b6a10) = 708
clock_gettime(CLOCK_MONOTONIC, {760605, 825037147}) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED, NULL) = 32744
clock_gettime(CLOCK_MONOTONIC, {760605, 825227552}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c688b6a10) = ? ERESTARTNOINTR (To be restarted)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=702, si_uid=33, si_status=0, si_utime=0, si_stime=0} ---
getpid()                                = 10154
write(8, "C", 1)                        = -1 EAGAIN (Resource temporarily unavailable)
rt_sigreturn()                          = 56
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c688b6a10) = 710
clock_gettime(CLOCK_MONOTONIC, {760605, 827677677}) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED, NULL) = 32747
clock_gettime(CLOCK_MONOTONIC, {760605, 827886974}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c688b6a10) = 711
clock_gettime(CLOCK_MONOTONIC, {760605, 828755896}) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED, NULL) = 32748
clock_gettime(CLOCK_MONOTONIC, {760605, 828921349}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c688b6a10) = 712
clock_gettime(CLOCK_MONOTONIC, {760605, 829779218}) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED, NULL) = 32749
clock_gettime(CLOCK_MONOTONIC, {760605, 829951780}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c688b6a10) = 713
clock_gettime(CLOCK_MONOTONIC, {760605, 830916994}) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED, NULL) = 32750
clock_gettime(CLOCK_MONOTONIC, {760605, 831123550}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c688b6a10) = ? ERESTARTNOINTR (To be restarted)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=707, si_uid=33, si_status=0, si_utime=0, si_stime=0} ---
getpid()                                = 10154
write(8, "C", 1)                        = -1 EAGAIN (Resource temporarily unavailable)
rt_sigreturn()                          = 56
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c688b6a10) = ? ERESTARTNOINTR (To be restarted)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=708, si_uid=33, si_status=0, si_utime=0, si_stime=0} ---
getpid()                                = 10154
write(8, "C", 1)                        = -1 EAGAIN (Resource temporarily unavailable)
rt_sigreturn()                          = 56
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5c688b6a10) = ? ERESTARTNOINTR (To be restarted)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=710, si_uid=33, si_status=0, si_utime=0, si_stime=0} ---

更新内核不能解决这个问题? 仅帮助 重启 php-fpm 进程 你能给我什么建议?谢谢

【问题讨论】:

  • apt-get upgrade 是巧合还是您在这些随机事件中看到的?
  • @YvesLeBorg 我做 apt-get upgrade 毫无意义,看不出巧合

标签: php linux nginx debian


【解决方案1】:

这是因为你的套接字在他不能写的时候试图写:

write(8, "C", 1)                        = -1 EAGAIN (Resource temporarily unavailable)
rt_sigreturn()                          = 56

由于您没有任何方法可以更改源代码,因此您需要降级您的 php 版本,看看它是否能够在没有此套接字问题的情况下完成任务。

查看更多:

Why STRACE shows EAGAIN (Resource temporarily unavailable)

【讨论】:

  • 需要什么版本?