부여 : RHEL 5.3에서 멀티 스레드 (~ 20 스레드) C++ 응용 프로그램. 로드 상태에서 테스트 할 때 top은 CPU 사용량이 매초 10-40 % 범위로 점프한다는 것을 보여줍니다.C++ 프로세스 CPU 사용량 감지가 발생합니다.
디자인이 매우 간단합니다. 대부분의 스레드가 활성 객체 디자인 패턴을 구현합니다. 스레드는 스레드 안전 큐를 가지고 있고, 다른 큐의 요청은 큐에 푸시되며 스레드는 큐를 폴링하고 요청을 처리합니다 . 처리 된 요청으로 인해 새 요청이 다음 처리 스레드로 보내집니다.
이 프로세스는 높은로드에서 데이터를 수신/전송할 때마다 여러 개의 TCP/UDP 연결을 갖습니다.
충분한 자료를 제공하지 못했습니다. 이것은 꽤 큰 응용 프로그램이며, 모든 부분에 익숙하지 않습니다. 이제 Windows에서 ACE 라이브러리를 통해 Linux로 이식되었습니다 (네트워킹 부분에 사용됨).
문제는 응용 프로그램에있는 것이지 외부의 것이 아니라면 문제를 발견하는 데 사용할 수있는 기술/도구/접근 방법은 무엇입니까? 예를 들어, 아마도 이것은 뮤텍스 경합에 의한 것 같습니다.
그래서 정확히 무엇이 문제입니까? 높은 CPU 사용량? "부하가 적다"고 기대하지 않습니까? –
지속적으로 점프하는 동안 안정적인 CPU 사용을 기대합니다. – dimba
Windows에서 안정적 이었습니까? –