문제

Linux에서 디버깅하는 응용 프로그램에서 성능 병목 현상의 원인을 추적하려고합니다. 관련된 다양한 프로세스는 I/O 요청에 대해 많은 시간을 차단하는 것처럼 보이며, 누군가가 당신이 볼 수있는 Linux 트릭을 알고 있는지 궁금했습니다. 특정 프로세스가 차단/어떤 자원이 기다리고 있습니까? 유용한 것이 있습니까? /proc 예를 들어?

도움이 되었습니까?

해결책

어떤 과정이든, 당신은 사용합니다 top 상태를 확인합니다. 그런 다음 실행할 수 있습니다 트러스 또는 스트라스. 무슨 일이 일어나고 있는지 자세히 설명해야합니다. 그것이 불가능하다면, 훅 그것 까지 GDB. 도구와 같은 도구 ISTAT 일반적으로 무슨 일이 일어나고 있는지 보여줄 수 있습니다 (예 : 디스크가 병목 현상 인 경우).

다른 팁

당신은 사용할 수 있습니다 strace 귀하의 프로세스가 무엇인지 확인하도록 명령하십시오. 실행하는 것이 유용하다고 생각할 수도 있습니다 lsof 프로세스에서 사용중인 파일과 소켓을 확인하십시오.

Strace는 각 시스템 호출에 소요되는 시간을 얻을 수 있기 때문에 친구입니다. 또한 파일 설명자 및 시스템 호출을 선택할 수 있습니다. 그러나 커널에서 지원할 수도 있습니다. 대기 시간

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top