매우 느린 클립으로 업로드 (유니콘)
-
28-10-2019 - |
문제
여기에 간단한 갤러리 모델이 있고 각 갤러리에 많은 이미지가있는 간단한 레일 3 앱이 있습니다. 이미지 모델은 클립과 다음 옵션으로 확장됩니다. 라코 디스
내 galleries_controller에는 jQuery-File을 사용하기 위해 구현 된 다음 작업이 있습니다. -업로드 플러그인. 따라서 json 응답. 라코 디스
저에게 이것은 매우 간단합니다. 그러나 여기에 문제가 있습니다. mongrel의 개발에서는 모든 종류의 업로드가 약 500-1000ms / 업로드로 잘 작동합니다.
하지만 프로덕션으로 푸시하면 유니콘 작업자의 시간 초과가 계속 발생하고 이미지를 통해 이미지를 보낼 때 한 파일에 대해 30 ~ 55 초가 걸립니다.
내가 업로드하는 파일의 크기는 약 10 만입니다.
ipref를 사용하여 VPS와 개발 컴퓨터 간의 대역폭을 테스트했으며 평균 속도가 약 77kbps이므로 업로드가 문제가되지 않습니다.
참고 저는 아바타가있는 사용자 모델과 동일한 앱을 사용하여 비 ajax 파일 업로드로 테스트를 수행했습니다. 개발=> 693ms 안에 302 개 완료 생산=> 21618ms에 302 개 발견 완료
누군가 (rails3, unicorn) 파일 업로드와 유사한 문제를 경험 했습니까?
해결책
그래서 주위를 파헤친 후 내 VPS에서 ImageMagick의 OpenMP 옵션이 매우 느린 작업을 일으키는 것을 확인했습니다. 그래서 첫 번째 시도는 --disable-openmp 플래그가 추가 된 네이티브 Ubuntu 10.04 패키지를 다시 빌드하는 것이 었습니다. 이것은 어떤 이유로 실패했으며 패키지가 openMP가 여전히 활성 상태로 계속 나오는 이유를 잘 모르겠습니다. 내 현재 솔루션은 이제 Ubuntu 10.10에서 ImageMagick을 백 포트하는 것입니다. 다음은 내가 취한 단계입니다.
1 단계 다음 파일을 다운로드합니다.
- imagemagick_6.6.2.6-1ubuntu1.1.dsc
- imagemagick_6.6.2.6.orig.tar.bz2
- imagemagick_6.6.2.6-1ubuntu1.1.debian.tar.bz2
여기 에서
2 단계 패키지 포장 풀기 라코 디스
3 단계 규칙 수정 라코 디스
25-39 행의 ./configure 구문에 다음 행을 추가하십시오. 34 행에 제 것을 추가했습니다. 라코 디스
4 단계 종속성 추가 및 빌드 (이러한 종속성 필요) 라코 디스
5 단계 기존 방식과 새로운 방식 라코 디스
6 단계 다시 한번 빠른 이미지 변환 라코 디스
다른 팁
처리에 시간이 오래 걸리는 경우 별도의 작업자에서 미리보기 이미지를 처리하는 것이 좋습니다.
요청 : 파일 수락;디스크에 저장하십시오.대기열에 작업 게시 작업자 : 대기열에서 작업을 팝합니다.썸네일 만들기;반복
Delayed :: Job 및 Resque는이를위한 훌륭한 솔루션입니다.