조회 수 96 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄 첨부



Nignx, MariaDB, PHP-FPM, PHP 를 이용한 서버 운영시, PHP-FPM에서 child process가 부족하여 lock이 걸리는다는 에러가 발생하였고, 이를 해결하기 위해 일단 물리적인 서버램을 32기가로 상향하였습니다..

 

서버 로그에 아래와 같은 메시지가 뜹니다.

[26-Mar-2015 10:10:04] WARNING: [pool www] server reached pm.max_children setting (35), consider raising it 
[26-Mar-2015 12:04:52] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)

 

centos7서버이며, php7.2가 설치되어 있는 상태입니다.

 

php-fpm의 conf 파일을 보면, 아래와 같은 구성이 있습니다.

각 항목에 적절한 수치를 찾는 것이 관건입니다.

 

pm.max_children = 35 

pm.start_servers = 10 

pm.min_spare_servers = 10 

pm.max_spare_servers = 35
 

일단 현재 각 process가 얼마나 메모리를 소모하고 있는지를 확인할 필요가 있습니다.

 

아래 명령어로 찾아봅니다.

#ps -ylC php-fpm --sort:rss

 

이미지 2.png

 

RSS의 각항목의 평균값을 보면 알 수 있습니다. 약 60~70메가가 소모됩니다. 뭐가 많네요. ㅎㅎ

 

더 자세히 편하게 찾아보는 방법은 아래와 같습니다.

#ps --no-headers -o "rss,cmd" -C php5-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'

 

이미지 3.png

 

62M가 나왔네요. 

 

저는 32기가의 메모리를 갖추고 있고, 여기에 mysql DB에서 16기가를 사용하고 있습니다.

그럼 32-16=16기가가 되겠네요.

php-fpm에서 사용할 수 있는 메모리가 16기가가 됩니다.

 

만일 계산이 힘들면 아래 명령어로 쉽게 알아 볼 수 있습니다.

#free -h

 

이미지 5.png

23기가가 free한 상태로 있습니다.

 

저는 그냥 16기가로 php-fpm에 할당하려고 합니다.

 

 

평균 62M를 사용하는 processor를 기준으로 pm.max_children은 16000MB / 63MB = 254 로 계산이 됩니다.

즉 총 254개의 php-fpm processor를 띄울 수 있게 되겠네요.

 

그럼 다음과 같이 설정을 할 수 있겠습니다.

 

pm.max_children = 254 //동시 사용할수 있는 최대 프로세스 수

pm.start_servers = 75  //처음 시작할 때 

pm.min_spare_servers = 50 //최소 사용값

pm.max_sapre_servers = 125 //최대  사용값 (이 수가 넘어가면 프로세스 삭제)

 

 

최대 여유 메모리로 php-fpm을 사용할 수 있는 공식이 나왔습니다.

 

하지만, 최대로 사용할 수 있다고 해서 이걸 다 쓰면 서버가 항상 북적거리가 될 겁니다.

딱 기본 메모리만 가지고 있는 254개의 프로세서가 얼마나 빨리 주어진 요청을 해결할 수 있을까요.

63메가로 책정된 메모리값은 각 프로세서들이 아주 기본적인 작업을 할 때 사용하는 메모리용량입니다.

 

작업내용이 많은 요청이 주어진다면, php-fpm의 순간적인 메모리 사용량이 급격히 늘어날 수도 있기 때문에 최대 프로세스 값을 줄여서 적은 수의 프로세서가 넉넉한 메모리용량을 가지고 여유있게 사용할 수 있어야 더 안전하겠죠.

일 못하는 254개의 프로세서를 늘리는 것 보다, 일 잘하는 적은 프로세서 값을 찾아야 합니다.

 

각 프로세스당 63메가를 책정한 수치를 좀더 여유있게 최대 600메가 정도로 여유폭을 준다라고 생각을 해보겠습니다.

 

16000MB / 600MB = 26이 나왔네요.

 

pm.max_children = 26 //동시 사용할수 있는 최대 프로세스 수, 600메가 메모리 사용하는 유저가 동시에 26명이 클릭할 때까지는 문제가 없을 것으로 예상.

pm.start_servers = 8  //처음 시작할 때 max_children 30%선

pm.min_spare_servers = 5 //최소 사용값 max_children 20%선

pm.max_sapre_servers = 13 //최대  사용값 max_children 의 50% (이 수가 넘어가면 프로세스 삭제)

 

 

중요포인트 : php-fpm 프로세서를 많이 띄우려고 하지 말고, 빨리 처리하도록 하는 것이 중요. 그러기 위해서 각 프로세서의 메모리 사용 여유폭을 넉넉히 책정해야함.

 

max_children 이 최대 접속자를 의미한다고 생각하기 보다는, php-fpm의 프로세서가 최대 메모리 사용하면서 띄울 수 있는 가장 혹독한 상황을 가정하여 최대값을 책정하는 것이라고 이해하는 것이 좋습니다.




List of Articles
번호 분류 제목 날짜 조회 수 글쓴이
공지 공지 구글 무제한 드라이브 이용자 공지사항 5 2017.10.30 2448 운영자
공지 공지 구글 드라이브 무제한 클라우드 G-Suite 가입하실 분 모집합니다. 13 file 2017.10.30 4028 운영자
14474 UCC/영상 베트남 대 인도네시아 U22 남자축구 결승 생방송 영상 2019.12.10 63 운영자
14473 정보&강의 네이버 카페 오픈 API 토큰 발급 파이썬 소스 예제 네이버 개발자 카페 https://developers.naver.com/products/cafe/ 네이버 카페 오픈 API 이용신청 https://developers.naver.com/apps/#/register?api=cafe acce... file 2019.12.09 109 운영자
14472 정보&강의 네이버 밴드 오픈 API 토큰 발급 소스 2019.12.08 59 운영자
» 정보&강의 32기가 램을 부착한 서버 mariadb, nginx, php-fpm 설정하기 Nignx, MariaDB, PHP-FPM, PHP 를 이용한 서버 운영시, PHP-FPM에서 child process가 부족하여 lock이 걸리는다는 에러가 발생하였고, 이를 해결하기 위해 일단 ... file 2019.12.08 96 운영자
14470 질문글 호크마.cdb 파일을 구하고 싶습니다 2019.12.07 85 하샨떠
14469 정보&강의 파이썬 티스토리 API를 이용하기 위한 access_token 발급과 사용 예제 소스 티스토리에 자동으로 글을 쓰고 싶어서 예제를 찾아봤는데, 제대로된 예제를 찾아보기 힘들었습니다. 티스토리 자체의 api 설명도 부족하구요. 일단 access token... 3 file 2019.12.05 307 운영자
14468 정보&강의 엑셀 파일로 읍면동 주소를 만드는 파이썬 소스 2019.12.05 65 운영자
14467 정보&강의 전국 읍면동 주소 데이터 만들기 지인의 부탁으로 전국읍면동 주소록 데이터를 찾아봤는데, 쓸만한게 없어서 새로 엑셀 파일로 만들었습니다. 주소지는 매달 바뀌기 때문에 만드는 과정을 기록에 ... file 2019.12.05 53 운영자
14466 질문글 정회원이 되려면 어찌해야 하나요? 2 2019.12.04 116 하샨떠
14465 가입인사 귀한 곳에 가입했어요. 베들레헴 성경을 아주 잘 사용하고 있어요 2019.12.04 50 하샨떠
14464 정보&강의 자동 출석 프로그램 윈도우10 스케줄러 등록하기 오늘은 자동출석 프로그램을 만들어서 윈도우 10 스케줄러에 등록하도록 하겠습니다. 한달동안 자동출석으로 개근을 해보는 과정입니다. 일단 자동 출석 프로그램... file 2019.12.03 84 운영자
14463 정보&강의 네이버 Clova Voice 음성변환 파이썬 코드 secret 2019.11.21 2 운영자
14462 정보&강의 nwc 2.75 이상 버전에서 만든 nwc 파일을 musicxml로 변환하기 파이썬 소스 2019.11.17 171 운영자
14461 질문글 링크프라이스 애드온 문의드립니다 2019.11.10 68 -3340
14460 정보&강의 V2Ray 및 ShadowSocks 적용하기 2019.10.30 90 운영자
14459 정보&강의 SoftEther VPN 서버 설정 2019.10.30 108 운영자
14458 정보&강의 Edgerouter L2TP VPN 설정후 윈도우 10 클라이언트 접속 방법 보통 공유기에서 vpn 설정은 pptp를 지원하지만, 애플에서 pptp 지원을 하지 않으면서 l2tp 접속을 해야하는 경우가 있다. 오랜만에 vpn을 구성하였는데 윈도우도... file 2019.10.27 111 운영자
14457 알뜰구매 [옥션] 삼성전자 DDR4 PC4 21300 8G (스마일클럽)(28,850원) http://mobile.auction.co.kr/ego.aspx?t=vp&p=B563335619 스마일클럽 15% 중복 카드쿠폰 http://rpp.auction.co.kr/?exhib=31592 스마일클럽 매월주는 12%쿠폰이... file 2019.10.26 95 운영자
14456 알뜰구매 미국직배송 곰돌이 푸 위니 더 푸우 인형 헤팔럼 http://www.11st.co.kr/product/SellerProductDetail.tmall?method=getSellerProductDetail&prdNo=2477933220 file 2019.10.24 81 운영자
14455 알뜰구매 [인터파크] 프리즘코리아TV 65인치 (538,620/30,000) http://shopping.interpark.com/product/productInfo.do?prdNo=6793249437 티비 저렴하게 나왔네요. 65인치 50만원 초. file 2019.10.20 98 운영자
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 725 Next
/ 725