2012-08-09 11 views
2

이것이이 질문에 적합한 장소인지 확실하지 않지만 어쨌든 할 것입니다.업로드가 너무 빠를 수 있습니까?

사람들이 한 번에 파일 대기열을 업로드 할 수있게 해주는 Umbraco CMS 업 로더를 개발했습니다. 이것은 .NET ashx를 호출하여 한 번에 하나씩 파일을 업로드하는 간단한 플래시 응용 프로그램을 사용합니다. 하나 완료되면, 다음 하나가 시작됩니다.

최근에 사용자가 1 ~ 2 개의 업로드가 정상적으로 진행되지만 나머지는 실패하는 문제가 발생했습니다. 이것은 자신과 자신의 클라이언트를 위해 발생합니다. 일부 디버깅 후, 그는 문제를 발견했다고 생각하지만, 이상하게 보입니다. 그래서 다른 누군가가이 문제를 겪고 있는지 궁금해하고 있었습니까?

그와 그의 클라이언트 모두 광섬유 광대역 연결을 사용하므로 매우 빠른 업로드 속도가 있습니다. 속도가 느린 광대역 연결에서 테스트했을 때 모든 파일이 아무런 문제없이 업로드되었습니다. 그의 개발자 친구 중 한 사람에 따르면, 그들은 전에 그것을 건너 왔고 업로드 스크립트에 약간의 지연을 가해서 작동시켜야했다.

이 소리가 들릴 수 있습니까? 다른 누구도이 문제를 겪었습니까? 업로드가 실패하지 않도록하는 알려진 해결 방법이 있습니까?

답변

0

전에 정확한 문제를 겪지는 않았지만 이전에 DSL 및 광대역 문제 해결에 대한 많은 진단을 수행 했으므로이 문제에 최선을 다합니다.

이 두 가지 원인은 네트워크 컨트롤 외부에있는 두 가지 원인에 있습니다.

1) 패킷 손실 일부 트래픽은 매우 많은 트래픽을 수신하지만 물론 많은 데이터를 덤프하도록 선택할 수 있습니다 (예 : 링크 최대 설정 크기를 초과하는 모든 패킷). TCP/IP는 그것을 제어하고, 때때로 그런 종류의 일이 떨어질 것으로 예상하기 때문에 이것은 덜 가능성이 있습니다.

2) 수신 서버 해당 서버 또는 수신 서버 CPU/RAM 등에 대한 HTTP 병목 현상이있을 수 있습니다. 이러한 증상은 (이론적으로는), 그들이 사실을 존재하지해야하고, 당신이 정말로 그것을 모든 작업을 얼마나 이해하는 데 필요한 경우 특정

다음 단계를 경우에도 문제 해결의 관점에서

, (WireShark와 같은) 패킷 스니퍼 (packet sniffer)를 패킷 레벨에서 정확히 무엇이 일어나고 있는지 알아 내려고하는 것일 수 있습니다.

또한 소켓 프로그래밍 할 수있는 당신이받는 서버를 제어 할 경우 다음 낮은 네트워크 계층에서 처리하고, 응답 및 대기 시간 등 또한

을 볼 수있을 것입니다, 그래서 직접 TCP/IP 소켓 종종 프로그램, 당신은 그 끝에서 똑같이 할 수 있습니다. 또는 적어도 오류 로그를 검토하여 무엇이 문제가되었는지 확인할 수 있습니다.

실제로 가능한 기본 경로는 수신 서버에 경로 지정을 보낼 수 있으며 서버를 가져 오는 느린 노드 또는 로컬 컴퓨터와 최종 서버 간의 패킷 손실을 강조 할 수 있습니다.

? 업로드 코드에 속도 저하 기능을 넣으면 최소한 코드가 작동해야합니다.

WireShark에 대한 분석이 필요한 경우 연락하십시오.

0

Flash 업 로더 및 Firefox를 사용하는 MVC2 웹 사이트에서 비슷한 문제가 발생했습니다. 서버는 Big-IP로드 밸런서를 사용하여로드 밸런스되었습니다. 디버깅에서 발견 한 사실은 Firefox에서 Flash가 연속 요청에서 세션 ID를 보내지 않았으며로드 밸런서가 연속 요청을 다른 서버로 보냈다는 것입니다. 사용자가 새 서버에서 세션을 가지지 않았기 때문에 요청이 실패했습니다.

파일을 하나의 청크로 보낼 수 있으면 잘 업로드됩니다. 두 번째 청크가 필요한 경우 실패했습니다. 이 때문에 업로드되지 않은 파일 수가 업로드 된 후에 업로드가 실패합니다.

수정하려면 Silverlight 업 로더를 작성했습니다.