2012-11-26 5 views
1

시나리오 : ASP.NET MVC 웹 응용 프로그램은 2 년 동안의 데이터를 요청하는 Java 웹 서비스를 호출합니다. 웹 서비스의 응답 크기는 다음과 같습니다.웹 서비스 성능 최적화

Request Count: 1 
Bytes Sent:  937  (headers:396; body:541) 
Bytes Received: 689,300  (headers:338; body:688,962) 

약 2 분이 걸립니다. 이로 인해 ASP.NET이 느리게 실행되고 결과적으로 사용자에게 불만이 생깁니다. 자바 녀석들과 얘기 해보면 성능을 최적화하기 위해 최선을 다한 이 있습니다.

제 3 자에게 웹 서비스 호출을 최적화하는 최선의 방법을 알려주시겠습니까?

  1. 이 ASYC 호출로 일년 각각에 2 년 데이터를 세분화 : 아래 것들의 목록은 내가 해봤 도움이되지 않은 것입니다.
  2. 메시지 크기를 줄여야 페이로드가 이되도록 Java 팀원에게 요청했습니다.

여전히 성능이 향상되지 않았습니다.

단순히 2 년 데이터를 요청하고 캐시를 채우는 비동기 VOID 방법을 만드는 경우이 방법이 효과가 있습니까? 주요 관심사는이 VOID 메소드를 완료하기 위해 로그인 프로세스가 을 기다려야하는지 여부입니다.

+1

나는 비슷한 작업을 많이했고 asp.net은 느리게 실행되지 않습니다. 어쩌면 당신은 그것이 느리게 실행되는 지점을 조사해야합니다. 하드웨어에 메모리 문제가 있습니까, 사용자의 나머지 부분을 잠그는 SQL 데이터에 어떤 종류의 잠금이 있습니까? 또한 천천히 정의 할 필요가 있고, 작업이 끝날 때까지 돌아 오지 않는다. 반환 값은 무엇인가? 당신이 SQL 스레드 우선 순위를 변경하는 경우에도 나쁜 SQL 설치, 그것을 할 수 있습니다. 느린 것을보고 서버에 액세스 할 수 있습니까? – Aristos

+0

각 사용자마다 서로 다른 2 년간의 데이터가 필요합니까? – dove

+1

먼저 http 채널을 모니터링하여 요청을 보낸 시간과 응답의 첫 번째 바이트가 반환 된 시간을 강조 표시해야합니다. 그런 다음 응답 전송 시간 및 처리량을 측정하십시오. 그러면 정확히 무엇이 시간이 걸리는지 보여줄 것입니다. –

답변

1

이러한 종류의 문제는 원격지에서 디버그하기가 쉽지 않지만, 대부분의 시간을 잃어버린 곳에서 먼저 측정해야합니다. 귀하의 처리중인 자바 서비스에 대한 호출에 있습니까? 코드에 performace 카운터를 추가하거나 로깅을 개선하여 어디에서 가장 향상시킬 수 있는지 확인하십시오. 다음으로 웹 서비스 호출과 같은 부분을 스텁과 교환하고 성능이 더 좋은지 확인하면 성능을 변경해야하는 위치를 알 수 있습니다.

+0

Theperformace는 Java에서 속도가 느리고 비동기 호출을 만들고 login.but의 일부로 로컬 캐시를 채울 필요가 있습니다.하지만이 호출은 백그라운드에서 실행되어야하며 fire와 forget.it는 Henderson 로그인 프로세스가 아니어야합니다. 사용자가 2 년이 적은 페이지를 클릭하면 그런 다음 로컬 캐시 –

+0

에서로드 할 수 있습니까? 내가 모르는 것은 asp.net에서 백그라운드 비동기 호출을 실행하는 방법이다. –

+0

예, 세션 또는 캐시에 데이터를 넣는 사이트에 사용자가 로그온 할 때 스레드를 시작할 수 있습니다. – Peter