이미지 업로드 문제

안녕하세요,

이 수정 사항 FIX: automatically timeout long running image magick commands (#12670) · discourse/discourse@5deda5e · GitHub 가 여러 이미지 업로드 기능을 깨뜨린 것 같습니다. 3개의 ~5-6mb 이미지를 업로드하려고 하면 작동하지 않으며, 매번 다음과 같은 오류가 표시됩니다. 20초 타임아웃 때문이라고 생각합니다.

lib/discourse.rb:93:in 'exec': An error happened when converting from PNG to JPG.

감사합니다 :slight_smile:

이 사이트에서 실패하나요? (아동에게 적합한 경우) 이미지를 업로드해 보실 수 있나요?

여기에는 제한이 필요합니다. 20초를 크게 넘기기는 어렵습니다.

1개의 좋아요

샘, 안녕하세요.
지난번에 제가 시도했을 때 여기에서도 실패해서 버그로 분류했었는데, 지금은 업로드가 되었습니다. 제 사이트에서는 항상 실패합니다. 사진 1개당 약 6MB입니다.

음, 이거 좀 까다롭네요. 로컬에서 디버깅을 해보고 싶은데, 다양한 ImageMagick 명령어가 얼마나 걸리는지 테스트할 수 있도록 원본 이미지 중 하나를 어딘가에 올려서 제가 다운로드할 수 있게 해줄 수 있나요?

“긴 타임아웃” 사이트 설정을 추가하는 것도 고려해볼 수 있지만, 이렇게 단순한 이미지를 PNG에서 JPG로 변환하는 데 10초 이상 걸린다는 점이 좀 걱정됩니다.

3개의 좋아요

감사합니다! 메가에 몇 가지 이미지를 업로드했습니다: File folder on MEGA

표준 Docker 설치 환경인지 확인해 주시겠어요?

아래에 언급하신 이미지 중 하나를 직접 테스트해 보았습니다. 컨테이너에서 2개의 명령어를 실행했는데요.

timeout -k 10.0 5 identify -format %Q image.jpg

그리고

timeout -k 40.0 20 convert jpeg:original.jpg -auto-orient -background white -interlace none -flatten -quality 90 jpg:/tmp/target.jpg

첫 번째 명령어는 제 로컬 시스템에서 할당된 5초 중 0.27초가 소요되었습니다.

두 번째 명령어는 할당된 20초 중 1.3초가 소요되었습니다.

설치 환경에 대해 조금 더 자세히 알려 주실 수 있을까요? 그리고 해당 서버의 구체적인 성능은 어떤가요?

1개의 좋아요

확인해 주셔서 감사합니다, Sam. 맞습니다, 표준 Docker 설치입니다. 어제 서버를 업그레이드했는데, 전체 웹사이트가 너무 느려졌기 때문이에요… 그리고 재빌드도 했습니다. 서버 업그레이드 후로는 잘 작동합니다. 방금 테스트해 봤어요. Digital Ocean에서 약 2개월 전에 Premium Intel CPU를 사용하는 새로운 플랜을 출시했는데, 우리가 사용하던 Regular CPU는 성능이 많이 떨어졌더라고요.

구 서버 :arrow_down_small:
Basic - Shared CPU 2 vCPUs 4 GB 60 GB

신규 서버 :arrow_down_small:
Basic - Premium Intel Shared CPU 2 vCPUs 4 GB 60 GB

이 주제에 대해 죄송합니다. 20초면 충분하네요. 다시 한번 감사합니다! :slightly_smiling_face:

1개의 좋아요

네, 여기서는 우리가 올바르게 작동하고 있다고 생각합니다.

타임아웃을 설정하지 않으면, 성능이 낮은 인스턴스가 이미지 업로드를 하는 사용자들에게 장악당할 위험이 큽니다. 이미지 리사이징에 20초라는 CPU 시간을 주는 것은 매우 큰 시간입니다.

3개의 좋아요

이 주제는 15시간 후 자동으로 닫혔습니다. 새로운 답글은 더 이상 허용되지 않습니다.