4
My Elixir 앱은 CPU의 약 50 %를 사용하지만 실제로는 < 1 % 만 사용해야합니다. 무엇이 높은 CPU 사용량을 일으키는 지 알아 내려고하고 있는데 문제가 있습니다.Elixir/Erlang : 높은 CPU 사용량을 찾는 방법은 무엇입니까?
원격 콘솔에서, 나는
- 이
Process.info
- 감소 수에 의해 프로세스를 정렬과 프로세스 정보를 살펴보면
Process.list
- 모든 프로세스를 나열 시도 메시지 큐에 의해 프로세스를 정렬
- 길이
메시지 대기열은 모두 0이지만 감소 계수는 일부 프로세스에서 매우 높습니다. file_server_2
- 이름이 지정됩니다 code_server을
(1)과 (3) 내 다른 애플 리케이션에 존재하는 모두, 그래서 나는 그것이 반드시 있어야한다고 생각합니다 (2). 내가 붙어있는 곳이야. 더 멀리 가서 (2) CPU를 많이 사용하는 이유를 알아 내려면 어떻게해야합니까?
나는 ReactPhoenix이 react-stdio을 사용한다는 것을 알고 있습니다. top
을 보면 react-sdtio는 리소스를 사용하지 않지만 빔은 사용합니다.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 87 53.2 1.2 2822012 99212 ? Sl Nov20 580:03 /app/erts-9.1/bin/beam.smp -Bd -- -root /app -progname app/releases/0.0.1/hello.sh -- -home /root -- -noshell -noshell -noinput -boot /app/
root 13873 0.0 0.0 4460 792 ? Rs 13:54 0:00 /bin/sh -c deps/react_phoenix/node_modules/.bin/react-stdio
나는 표준 입력 자원 문제가 발생할 수 있습니다 this StackOverflow post에서 본,하지만 여기에 적용되는 경우 내가 확실 해요. 어쨌든, 어떤 도움을 크게 주시면 감사하겠습니다!
나는 무엇 prod''에서 사용할 수 있도록 할 것? 'iex'에 연결하고': etop.start'를 실행하면 "** (UndefinedFunctionError) function : etop.start/0가 정의되지 않았습니다 (모듈 : etop을 사용할 수 없습니다)"라는 결과가 발생합니다. – mudasobwa
링크 된 문서에 따르면'etop'을 연결할 노드를 지정할 수 있습니다 :'etop -node testnode @ myhost -setcookie MyCookie' – Kernael
@Kernael 이것이 내 질문에 대한 답 이었으면, 문제는 지정된대로 오류 메시지 "module'etop' in not available."노드를 지정하는 것이 마술처럼이 모듈을 사용할 수 있을지 의심 스럽습니다. – mudasobwa