서버 정지의 근본 원인을 찾으려고 합니다.
프로세스 ID 14900으로 프로세스가 충돌한 것을 발견했으며 아래는 로그인 메시지입니다. 코어 덤프는 어떤 패키지와도 연결되어 있지 않기 때문에 저장되지 않습니다(ProcessUnpackaged=no).
May 25 15:31:41 myserver abrt[15298]: Saved core dump of pid 14900 (/NFS_share/work_dir/freac/FREAC.Linux-2.6-x86_64-Release) to /var/spool/abrt/ccpp-2016-05-25-15:31:41-14900 (11644928 bytes)
May 25 15:31:52 myserver abrtd: Sending an email...
May 25 15:31:52 myserver abrtd: Email was sent to: root@localhost
May 25 15:31:52 myserver abrtd: Duplicate: UUID
May 25 15:31:52 myserver abrtd: DUP_OF_DIR: /var/spool/abrt/ccpp-2016-05-17-10:25:46-48111
May 25 15:31:52 myserver abrtd: Problem directory is a duplicate of /var/spool/abrt/ccpp-2016-05-17-10:25:46-48111
May 25 15:31:52 myserver abrtd: Deleting problem directory ccpp-2016-05-25-15:31:06-12824 (dup of ccpp-2016-05-17-10:25:46-48111)
May 25 15:31:52 myserver abrtd: Failed to open connection to "system" message bus: Failed to connect to socket /var/run/dbus/system_bus_socket: Connection refused
May 25 15:31:52 myserver abrtd: Directory 'ccpp-2016-05-25-15:31:41-14900' creation detected
May 25 15:31:52 myserver abrtd: Executable '/NFS_share/work_dir/freac/FREAC.Linux-2.6-x86_64-Release' doesn't belong to any package
May 25 15:31:52 myserver abrtd: 'post-create' on '/var/spool/abrt/ccpp-2016-05-25-15:31:41-14900' exited with 1
May 25 15:31:52 myserver abrtd: Corrupted or bad directory /var/spool/abrt/ccpp-2016-05-25-15:31:41-14900, deleting
부하를 증가시키고 결국 서버를 정지시키는 중단된 14900의 하위 프로세스일 수 있는 또 다른 프로세스 14939가 있습니다.
May 25 15:33:44 myserver ntpd[4430]: synchronized to 10.171.8.5, stratum 3
May 25 15:35:10 myserver kernel: INFO: task FREAC.Linux-2.6:14939 blocked for more than 120 seconds.
May 25 15:35:10 myserver kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
May 25 15:35:10 myserver kernel: FREAC.Linux-2 D 00000000ffffffff 0 14939 14658 0x10000084
May 25 15:35:10 myserver kernel: ffff8835d4ebd988 0000000000000046 ffff8835d4ebd908 ffffffffa0844e00
May 25 15:35:10 myserver kernel: ffff8828a4b61440 ffff881fedd4a540 ffff8835d4000001 ffffffff81129607
May 25 15:35:10 myserver kernel: ffff883f4c39baf8 ffff8835d4ebdfd8 000000000000fb88 ffff883f4c39baf8
May 25 15:35:10 myserver kernel: Call Trace:
당시 dbus에 문제가 있었고 아직 고치지 않았으나 이것이 하위 프로세스 14939가 실패한 이유일 수 있습니다. dbus의 구체적인 용도가 무엇인지 모르겠습니다.
로드 증가로 인해 서버가 중단되어 서버를 다시 시작해야 했기 때문에 프로세스에 대한 세부 정보를 얻을 수 없습니다. 그러나 재부팅 후 dbus 문제를 해결했습니다.
편집 1:
이 링크를 간략하게 살펴본 후 최근에 이해된 내용은 다음과 같습니다.https://dbus.freedesktop.org/doc/dbus-tutorial.html
dbus는 IPC(프로세스 간 통신)에 필요합니다(상위 또는 하위 프로세스 호출에 관계없이 메시지를 보내기 위해 다른 프로세스와 통신하는 것을 의미).
다음과 같은 말이 있습니다.
시스템 전체 데몬과 사용자별 데몬은 별개입니다. 일반적인 세션 내 IPC는 시스템 전체 메시지 버스 프로세스를 포함하지 않으며 그 반대도 마찬가지입니다.
그렇다면 여기서 그 반대의 의미는 무엇입니까? IPC는 세션에서 dbus 프로세스(시스템 전체 또는 사용자)를 요구하지 않습니까?
이것이 맞다면 14939와 14900 사이의 통신에는 세션 중이므로 dbus가 전혀 필요하지 않습니까? 아니면 그렇지 않을 수도 있습니다. init가 하나 또는 두 개의 프로세스를 상속하므로 dbus가 필요할 수도 있습니다.
그런 다음 또 다른 문제가 나를 괴롭혔습니다. 실제로 이 서버를 최근 재부팅한 후 dbus 문제가 시작되었고 며칠 후에 서버가 중단되었습니다. 이러한 모든 프로세스가 dbus를 성공적으로 실행해야 한다면 다시 시작한 후 며칠 후에도 프로세스가 중단되지 않는 이유는 무엇입니까?
나머지 질문이 너무 광범위하다면 dbus에 대한 실제 질문에 답변해 보세요.
감사합니다!
편집 2:
이:왜 dbus가 필요한가요?dbus에 대한 몇 가지 사항을 명확하게 설명했습니다.