멀티 스레드 서비스의 병목 현상을 찾으려고합니다. 나는 -c 100으로 ab를 사용했고 350 주변의 TPS를 관찰했다. 질문은 CPU 사용률이 최대 70 %이고 메모리가 10 %라는 것이다. 그래서 그것은 마치 CPU 나 메모리가 아닌 것처럼 보입니다. 디스크 또는 네트워크 I/O를 수행하지 않습니다. 병목 현상이 무엇인지 어떻게 알 수 있습니까?다중 스레드 서비스에서 병목 현상을 어떻게 찾을 수 있습니까?
답변
교착 상태에있는 스레드가 서로 기다리고 있습니까? 데이터베이스 잠금 대기중인 스레드가 있습니까? 대기중인 스레드는 종종 시스템이 느려지거나 대기하는 것처럼 보일 수도 있지만 리소스가 소비되는 것을 항상 보지는 못합니다.
@Chis Aldrich - cseric이 어떻게 그 스레드를 찾을 수 있습니까? – MaasSql
@MaasSql - 비싸다는 것을 알고 있지만 VS2010 프로파일 러에는 데드 록을 찾는 데 도움이되는 몇 가지 멋진 기능이 있습니다. – ChaosPandion
ChaosPandion은 프로파일 러 (또는 잠재적으로 스레딩을 표시 할 수있는 코드 디버거)를 사용해야한다고 말했습니다. 그러나 프로파일 러가 가장 좋은 방법입니다. 어떤 시스템이 사용되고 있는지 또는 어떤 언어인지 알지 못하면 프로파일 러 도구를 추천하는 것이 더 어렵습니다. 우리 회사에서는 Java 및 IBM 스택 제품을 사용하는 경향이 있으므로 IBM 프로파일 러를 사용합니다. 희망이 도움이되었다. –
- 1. 라이브러리에서 성능 병목 현상을 측정하십시오.
- 2. Flex 애플리케이션 최적화 - 병목 현상을 찾을 수있는 곳
- 3. iPhone에서 성능 병목 현상을 발견하는 방법
- 4. mySQL 병목 현상을 측정하는 방법은 무엇입니까?
- 5. OpenMP 병목 현상을 프로파일 링하는 방법
- 6. iPhone 앱에서 성능 병목 현상을 찾는 방법은 무엇입니까?
- 7. SQL Server 실행 계획 : 병목 현상을 표시하는 필터?
- 8. 다중 스레드 메모리에 큰 사전 개체 액세스 - 병목 현상?
- 9. 카산드라와 웹 서버 병목 현상을 피하는 방법은 무엇입니까?
- 10. 레일 앱을 계측하고 메모리/성능 병목 현상을 식별하는 방법은 무엇입니까?
- 11. 어떻게 렌더링시 화면 깜빡임 현상을 줄일 수 있습니까?
- 12. Java GC 스레딩 병목 현상이 있습니까?
- 13. SQL을 호출하면 멀티 스레드 응용 프로그램에 병목 현상이 발생합니까?
- 14. 어떻게 shp2pgsql을 찾을 수 있습니까?
- 15. nodeType을 어떻게 찾을 수 있습니까?
- 16. 이것을 어떻게 찾을 수 있습니까?
- 17. WCF 서비스에서 .cs 파일을 찾을 수 없습니다.
- 18. 다중 포트를위한 다중 스레드?
- 19. .NET 다중 스레딩 병목 현상 찾기
- 20. PowerShell에 병목 현상이 있습니까?
- 21. 웹 서비스에서 상태를 어떻게 유지할 수 있습니까?
- 22. 다중 스레드 클래스 로딩이 가능합니까?
- 23. 아이폰 애플리케이션의 성능 병목 현상을 찾아내는 데 유용한 도구 나 유용한 기술이 있습니까?
- 24. 다중 스레드 #
- 25. 병목 현상이 있습니까?
- 26. 다중 스레드 WMI 호출 -이를 어떻게 처리해야합니까?
- 27. 어떻게 다중 UI 스레드 윈폼 응용 프로그램
- 28. Log4j의 다중 스레드
- 29. 다중 스레드 및 메모리
- 30. 다중 스레드 및 GDB
프로세스에 대한 세부 정보를 추가 할 수 있습니까? 디스크 또는 네트워크 I/O가 없다는 사실은 조금 벗어난 것처럼 보입니다. – ChaosPandion
기본적으로 서비스는 6 개의 스레드 (ExecutorSevice 풀 사용)를 시작하여 들어오는 요청마다 캐시에서 6 회의 읽기를 수행합니다. 나는 ehcache를 사용하고 있으며 오직 4 개의 자원에 접근하고있다. 첫 번째 패스를 제외하고 모든 액세스가 캐시 히트임을 확인했습니다. 리소스는 실제로 크기가 5KB 이하인 매우 작습니다. 나는 JProfiler를 사용했고 sun.misc.unsafe.park에서 보낸 시간의 90 %를 보았고 나머지 10 %는 나의 방법이었다. 이/debug를 어떻게 해석해야합니까? – extraeee