Extra Form
PHP PHP 7.4
CMS XpressEngine

안녕하세요. 

 

XE를 사용해서 서버를 운영하고 있습니다. 

 

파일첨부(이미지 업로드)와 관련하여 궁금한 사항이 있습니다. 

파일 첨부 시, 아래와 같이 용량을 제한 중에 있습니다. 

----- 아 래 -----

파일 크기 제한: 2M

문서 첨부 제한: 3M

 

스마트폰에서 찍은 사진의 크기가 2M 이상이 되는 것들이 많아지면서 

사이트를 방문하시는 분들이 이미지 업로드 시 불편함을 겪고 계셔서요. 

욕심 같아선 파일 크기 제한을 5M까지도 높이고 싶지만...

아래와 같은 고민으로 선 뜻 결정을 못하고 있습니다. 

 

제가 추측하는 바에 의하면...(잘못 알고 있거나, 상상하는 것일 수도 있습니다. ^^;;;)

추측 1) 

만약 2메가짜리 파일을 업로드 한다면, 
서버에 우선 2메가짜리 파일이 업로드 되고

이후 원본 파일을 압축하여 축소된 이미지가 게시판을 통해 보여지는 것으로 알고 있습니다. 

또한 이렇게 축소가 완료되면 원본 파일은 삭제되는 것으로 알고 있습니다. 

 

이런 압축 과정에서 서버 리소스가 당연히 사용될 것이며 

파일 업로드가 많아지면 전체적으로 서비스가 느려지는 것으로 이해를 하고 있는데 

제가 이해하고 있는 것이 맞을까요? 


추측 2)

아니면...

파일을 올리면 서버에 올라가기 전
에디터(클라이언트, 사용자 pc 혹은 스마트폰)에서 압축하는 과정을 거치기 떄문에

서버의 리소스 사용 없이 어떤 용량의 파일이든 결국엔 축소된 이미지만 서버에 업로드 된다고 보면 될까요? 

만약 '추측 1'이 맞다면 허용 파일 크기 제한을 올리는 데 여전히 조심스러운 부분이 있을 것 같습니다. 
혹 '추측 2'가 맞다면 문서첨부제한을 그대로 유지하더라도 파일 크기 제한을 올리고 싶습니다. ^^

아니면 추측과 다른 무엇이 있는지도 궁금합니다. ^^

 

긴 글 읽어주시고 고민해 주신 모든 분들께 미리 감사드립니다. 

또한 이미지 프로세스 모듈을 제공해 주신 카르마님께도 다시 한번 감사드립니다. 

  • profile
    이미지의 처리는 서버에서 합니다. 따라서 서버의 자원이 사용됩니다.
  • profile ?
    답변 감사합니다.
    추측 1번이 맞았네요 ^^
  • profile
    사진을 시간당 수천개씩 올리는 사이트가 아니라면 리소스 얼마 만먹을텐데요. 스마트폰 사진도 압축률 높이면 크기 많이 줄일수 있습니다.
  • profile ?
    답변 감사합니다.

    네에. 아주 많은 양이 동시에 업로드 되지 않는다면 서버에 큰 영향을 주지 않을 수도 있겠군요.
    제가 테스트해보면 보통 2M 사진을 올리면 80-200K 정도로 압축되어 올라가는 것 같았습니다.
    용량의 문제라기 보다는 서버가 압축하는 과정에서 서버 리소스 사용이 많아지면서 서비스가 느려지는 게 아닐까하는 걱정이 있었습니다.
  • ? profile

    이미지 리사이즈시에는 메모리가 요구됩니다. 리사이즈시 이미지 사이즈(해상도)에 따라 요구되는 메모리가 결정되는데 서버에서 이미지 리사이즈에 맞춰 memory limit을 설정하기는 어렵습니다.

    보통은 256M 로 설정을 하거나 좀더 공격적으로는 512M 까지도 하죠. (업로드 허용 용량이 아닙니다.)

    이 메모리 리밋을 큰 사이즈로 하지 못하는 이유는 사용자들이 동시에 요청하는 경우가 흔하기 때문에 여러명이 동시에 한정되 메모리를 사용하면 메모리 부족으로 서버가 뻗을 수 있습니다.

    그래서 업로드 허용 이미지를 크게 해도 이 서버의 메모리 리밋을 크게 올리지 않으면 이미지 리사이즈나 섬네일 생성에 실패하는 이미지가 생겨납니다.(해상도가 굉장히 큰 이미지...)

    그렇다고 메모리 리밋을 최대치로 올릴수는 없어서 이는 사이트 운영자가 서버운영에 참고적으로 알고 대응할 수 밖에 없습니다.

    지금 우려하시는 부부분은 사이트 방문 사용자들이 한꺼번에 동시에 얼마나 많은 이미지처리 등 메모리 사용을 요청하는지에 따라 걱정하실 수도 있기도 합니다만 일반적으로는 이미지 처리에 서버 리소스가 부족한 상황이라면 서버의 사양을 키워야 합니다.

     

    지금 걱정하시는 부분과 실질적으로 연관이 있는 부분은 서버의  memory limit 설정입니다. 업로드 허용 용량과는 간접적인 영향밖에 없습니다.

     

    ps)만약 지금 웹호스팅 이시라면 작성분이 걱정하실 내용도 아닙니다. 아... 리소스 사용이 과다하면 쫒겨날 수는 있겠네요.

  • profile ?
    다시 한번 친절한 설명 감사드립니다.

    간혹 이미지 용량이 큰 파일(리사이즈 실패한 파일)들이 보여서
    어떤 이유에서 압축되지 않았는지 궁금했었는데, 말씀 주신 내용을 보고 이해했습니다.
    서버는 메모리가 16기가로 되어 있는데
    말씀하신 것처럼 이미지 압축을 위한 메모리 할당에 대해서는 아는 바가 없어서...ㅠㅜ
    우선은 현재와 같은 상태로 유지를 해야할 것 같습니다. ^^;;;;

    맛난 점심 시간 보내시길 바라겠습니다.
  • ? profile

    네. 16기가라도 서버 메모리리밋을 크게 올려서 설정하지 못한다는 것 입니다.

    제가 보기엔 업로드 허용 용량은 크게 올리셔도 무방합니다. 2M 정도면 방문자들이 많이 불편할 것입니다.

    (문서 허용 용량도 많이 부족해 보이네요..)

    메모리 리밋만 크게 올리지 않는다면 너무 큰 이미지가 업로드가 되더라도 이미지 처리시 리밋된 메모리 이상은 할당하지 않습니다. 단, 이미지 처리시 실패를 하지요.

  • ? profile

    글 작성빈도보다 조회되는 항목이 보통은 더 많습니다.

    글이 하루에 매번 끊이질 않고 업로드 한다 하더라도 그거 따로 빼놓은 상태에서 다른 조회를 위한 디비 쿼리 서버할당은 남아돕니다.

    정상적으로 PHP 메모리 리밋만 잘 설정해두었더라면 (메모리 리밋 기준 128mb 기본) 서버에 영향거의 없습니다.

    동접 100명이 이용한다 따졌을때 조회에 쓰이는 요청수 20개 정도 올라온다면 글작성 요청은 1개2개일까 말까 할꺼거든요.

     

    굳이 글 작성 하시는 분들이 많이 없고 cpu할당이 넘어가지 않는다면 굳이 그런 것 까지 신경쓰실 필요는 없습니다 ㅎㅎ

    방문객이 더더욱 없는 상황에서는 그런 성능이슈에 신경쓰기보단 방문객 늘리는 방안을 생각하시는 편이 훨신 더 낫습니다 ^^

     

    나중에 서버가 터져서 행복한 고민을 하시면 되겠습니다 :)

  • profile ?
    말씀주신 내용 중...

    업로드 허용 용량은 크게 올리셔도 무방합니다. <-- 이 부분은
    * 파일 크기 제한: 2M
    * 문서 첨부 제한: 3M
    위 2개의 옵션 중, 파일 크기 제한 부분을 말씀하시는 걸까요?

    최근 1-2년 사이에 출시된 스마트폰의 사진 사이즈가 최소 1-2메가 수준이고
    6-7메가 사진도 가끔보이는 터라 어디까지 허용해야할지도 고민스럽습니다.

    이미지 리사이즈 실패 후 쌓이는 파일이 주는 서버 용량에 대한 부담도 사실입니다.
    다시 한번 감사드립니다. 꾸벅 ^^~
  • profile ?
    친절한 답변 감사드립니다.

    말씀주신 것처럼 동접 100~200기준으로 글이 포스팅되는 수량을 고민해서
    파일 크게 제한을 고민/설정해 볼 수도 있을 것 같습니다.

    이곳에서 여러 고수님들이 주신 말씀을 바탕으로 용량을 조정해 봐야겠습니다.~
  • ? profile

    파일 크기 제한 <--- 10M
    문서 첨부 제한 <--- 20M

    이정도는 해야 불편이 어느정도는 해소가 될 거라 봅니다. 이정도도 부족한 상황인 많죠.

    요즘 보통 스마트폰의 사진 품질을 제한하더라도 용량이 제법 크게 찍히게 하는 경우가 대부분이라 특정 웹사이트 들 때문에 사진의 품질을 2M 이하로 설정하는 사람은 많지 않을 겁니다. 리사이즈 되기 전 큰 이미지가 업로드가 허용되어야 합니다. 리사이즈 후에는 용량이 줄어들죠. 첨부 하려다 제한 걸린 후 시도하지 않는 사람이 제법 많을 겁니다.

    이건 생각의 차이 일뿐입니다. 그냥 생각을 바꾸세요.
    이미지리사이즈 실패를 줄이려면 메모리 리밋을 조금만 더 높이면 됩니다.

    그리고 사용자로 인해 발생하는 용량을 아깝다고 생각하시면 사이트를 운영하면서 얻는 기회를 잡기 어렵습니다. 성장하기 어려운 상황을 만드시는 것 입니다.

    요즘 서버 스토리지 비용은 얼마 하지도 않습니다.

  • profile ?
    네에~
    말씀 주신 사항들 고려해서 조정해 봐야겠습니다.
    경험을 통해 얻은 소중한 노하우를 공유해 주셔서 너무 감사드립니다.