CPU 급증 이유
PHP中文网
PHP中文网 2017-05-16 13:27:40
0
1
631

통신 하단에서 epoll 모델을 사용합니다. 그런 다음 epoll이 요청을 처리할 때 스레드 풀의 스레드가 상위 계층 서비스를 호출합니다. 네트워크 통신이 필요하므로 대략적으로 처리됩니다. 한 요청에 10ms도 걸리지 않습니다

이러한 모델은 트래픽이 증가하면 CPU의 급격한 급증을 유발합니까?

배경: 내 CPU 사용량은 약 75%(트래픽: 20~22Mbps)입니다. 트래픽이 25Mbps로 증가하면 CPU가 바로 가득 찼습니다. . 트래픽 증가율은 15% 미만인데 CPU가 25%나 급증하기 때문에 이는 예상과 크게 다르지 않습니다.

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(1)
阿神

참고용으로 내 관점을 간략하게 설명하겠습니다.
1: 먼저 요청이 IO 집약적인지 아니면 CPU 집약적인지 고려하세요. 제가 말하는 IO 집약적이란 메시지를 보내고 받기 위해 읽기와 쓰기가 필요한 네트워크 IO를 말합니다. 즉, CPU 집약적인 통신은 결과를 생성하기 위해 계산이 필요하고 시간이 오래 걸립니다.
2: 첫 번째 유형의 IO 집약적이라면 처리를 위해 모든 요청을 스레드 풀에 넘길 필요는 없을 것 같습니다. 파일 읽기, 쓰기 등 시간이 많이 걸리는 디스크 IO 작업이 없으면 스레드 풀을 사용하지 않을 수도 있습니다. 이런 방식으로 스레드당 하나의 루프 모델이 의심할 여지 없이 가장 효율적입니다. 직설적으로 말하면 모든 읽기 및 쓰기(파일 읽기가 아닌 네트워크 데이터 읽기 및 쓰기)와 예약된 이벤트가 단일 EPOLL에서 완료됩니다.
3: CPU를 많이 사용하는 경우 thread_pool을 사용하는 데 문제가 없습니다. 구성한 스레드 수와 코드에 따라 다릅니다.

이 질문은 실제 환경이 없으면 대답하기 어렵습니다. 단지 몇 가지 아이디어를 끌어내고 실수가 있으면 지적하려고 합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿