nginx에서 서버최적화할때
free -m으로
available 사이즈 구해서
php-fpm 평균메모리 사용량으로 나눈 값을
pm.max_children로 설정한다고 들었습니다.
제가 서버쪽은 문외한이라 개념을 잘 정립이 안되었는데, 제가 이해하기로는
사용자가 페이지.php를 클릭하였을 때마다 php가 실행되기 위해 필요한 메모리값이
php-fpm 평균메모리라고 이해했는데 맞을까요?
그래서 동시에 php 페이지를 열때 메모리부족을 방지하기위해 maxchidren 으로 제한을 거는 것.
일까요??
저같은 경우 플랫폼만 깔았는데 기본 28M정도 되네요 php-fpm 평균메모리값이
생각보다 많네요 ㄷㄷ
메모리 부족을 방지하기 위해서 제한하는 것은 맞습니다. 그러나 평균메모리가 아니라 최대메모리(memory_limit)도 감안해야 합니다. 사진 하나 썸네일 생성하는 데 100M 이상 사용하거든요. PHP-FPM 엔진의 메모리 사용량뿐 아니라 실제 PHP로 구현된 프로그램을 해석하여 실행할 때 사용하는 용량이 천차만별이라는 점도 감안해야 하기 때문에, 공회전 상태의 평균 메모리 사용량만 보시면 안됩니다.
보통 PHP에서 memory_limit을 128M로 해놓기 때문에, DB를 돌리고 남는 용량을 128M로 나누는 것이 가장 안전합니다. 이렇게 해놓으면 1년 내내 돌려도 다운되지 않아요. 그러나 RAM이 넉넉하지 않은 서버에서는 이렇게 계산하면 pm.max_children 값이 지나치게 낮아질 수도 있습니다. 썸네일 사용 빈도가 높지 않은 사이트라면 평균과 최대의 중간치(70~80MB)로 잡아서 약간의 스릴을 즐기셔도 됩니다. 오늘은 과연 서버가 버텨줄 것인가!! ㅋㅋ
이 글과 댓글을 참고하세요: https://xetown.com/board/943152#comment_943189