이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 12915|회답: 0

[웹마스터 소통] 알리바바 클라우드 SLB 부하 분산을 사용해 php-fpm CPU 사용량 90% 이상을 해결하기

[링크 복사]
게시됨 2015. 5. 8. 오후 8:22:09 | | | |
5월 연휴 기간 동안 서비스팀은 Yitao방 웹사이트의 서버 환경을 PHP5.3에서 PHP5.6으로 업그레이드했으며, 성공적인 업그레이드 후 서버 CPU가 90% 이상으로 상승해 높은 수준을 유지하고 있습니다. 서버를 확인해 보니 여러 PHP-FPM 프로세스가 CPU 부하를 너무 높게 만들어 웹사이트에 정상적으로 접근할 수 없게 됩니다. 서버 환경과 PHP 버전을 여러 번 재설치하고, PHP를 HHVM으로 바꿔도 높은 CPU 부하 문제를 해결할 수 없습니다.


E-Taobang 서버 운영 프로세스(서비스 아키텍처 다이어그램): 사용자 클라이언트→ Baidu Cloud Acceleration Node(CDN/캐싱/안티-DDOS/CC 공격)→→ Alibaba Cloud Shield 노드(CCC/DDOS/WAF 공격 방지), ECS 소스 서버(CSS, JS, CDN 전환용 이미지)→ 도메인 이름 해석을 합니다. Alibaba Cloud Cloud Shield는 공격 정보가 없으므로 공격으로 완전히 배제할 수 있습니다.

nginx 로그, php-fpm 로그, 느린 로그를 살펴보면 이상 요인이 없고, netstat -n 명령어에서 여러 TIME_WAIT 정보가 나오는데, 이는 100.97.x.x의 IP 세그먼트(마지막 IP 세그먼트는 Alibaba Cloud SLB 도청 서비스의 IP 주소)에서 발생합니다.


더 이상 지체하지 않고, 구체적인 해결책에 대해 이야기해 보겠습니다. 이 해결책은 결국 이타오강(V 스테이션 파워) 전문 운영 및 유지보수팀이 처리했으며, 최종 결과는 SLB의 서비스 모니터링 설정으로 인한 CPU 부하가 너무 높다는 것이었습니다.
원래 SLB 서비스는 HTTP 프로토콜 포트 80을 수신하며, HTTP 프로토콜 건강 검사는 여러 헤드에서 정기적으로 HTTP 요청을 보내 HTTP 읽기 접근이 연속되어 php-fpm 때문에 CPU 부하가 오랜 시간 90% 이상에 도달하게 되며, 특정 CPU 부하 할당량은 ECS 구성에 따라 달라집니다. 건강 점검 서비스를 변경하면 CPU 사용률이 오프라인 상태가 됩니다.

이 상황이 발생한다면, SLB 서비스 리스닝의 건강 체크 구성을 HTTP 프로토콜 80에서 TCP 프로토콜 80 구성으로 다음과 같이 변경하세요:






이전의:마이크로소프트는 IE를 포기하고 22만 줄의 코드를 만들겠다고 결심했습니다
다음:서버를 점령할 외계 힘
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com