2017-01-18 2 views
1

PHP 함수를 사용하여 이미지를 자르고 크기를 조정할 때 imagecreatefromjpeg(), imagecrop(), imagecopyresampled() 등과 같이 높은 메모리 사용량에 대한 알림을받습니다.PHP 이미지를 사용하여 메모리 사용량이 많아졌습니다.

이 자르기 모듈을 CMS에 구현하고 동시에 50 명이 자르기 기능을 호출하면 메모리 사용이 50 배로 증가하여 서버 메모리 리소스에 과부하가 걸리겠습니까?

그렇다면 요청을 대기열에 추가하거나 과부하를 방지하는 좋은 방법은 무엇입니까?

답변

0

이 질문에 대한 직접적인 대답이 아닐지라도, 내 경험에 비추어 볼 때 한 명의 사용자가 몇 개의 이미지가있는 전체 웹 서버를 죽이기를 원하지 않으므로 항상 다른 서버에서 이미지 조작을 처리하는 것이 좋습니다.

이미지가 다른 서버에서 처리되어 죽는 경우 가장 나쁜 것은 이미지가 404를 반환하지만 웹 서버 자체가 계속 정상적으로 작동한다는 것입니다.

어쨌든 ImageMagick과 같은 라이브러리를 사용하는 것이 좋습니다. 사용하기 쉽고 초과 할 수없는 메모리 제한을 설정할 수 있다고 생각합니다.

내가 지금까지 이미지 조작을 위해 찾은 최선의 방법은 AWS Lambda입니다. 이미지를 다운로드하고 수정 한 후 다시 서버에 업로드하는 serverless nodeJS 스크립트를 쉽게 작성할 수 있습니다. 매일 수천 개의 이미지를 처리해야하는 경우가 아니면 무료로 거의 실행할 수 있으며 동시에 최대 100 개의 동시 호출을 처리 할 수 ​​있습니다 (기본적으로 최대 100 개의 서버를 동시에 시작합니다). 따라서 이론적으로는 요청을 대기열에 넣어야합니다.