우리는 하루에 수십만 개의 페이지 뷰를 얻는 중간 규모 사이트를 운영합니다. 지난 주말까지는 가상 시스템에서 일반적으로 0.2 미만의로드로 실행되었습니다. OS는 우분투입니다.Apache가 과도한 CPU를 사용합니다.
응용 프로그램의 최신 버전을 배포 할 때 배포하기 전에 apt-get dist-upgrade도 수행했습니다. 우리가 배치 한 후에 우리는 CPU로드가 급격히 증가했다 (때로는 10에 도달하고 페이지 요청에 응답하지 않는 것으로 나타남).
우리는 PHP에서 Xdebug 프로파일 링 데이터 1 분을 덤프하려고 시도했지만 약간의 느린 부분 만 보여 주었지만 거대한 점프를 설명 할 수는 없었습니다.
우리 웹 사이트의 새 버전에서는 문제가 발생하지 않는다고 확신하지만 확신 할 방법이 없습니다. 우리는 많은 변화를 되 돌렸지 만, 문제는 여전히 지속됩니다.
프로세스를 살펴보면 단일 Apache 프로세스가 엄격하게 필요한 것보다 오랜 시간 동안 상당히 많은 CPU를 사용한다는 것을 알 수 있습니다. 영향을받는 과정에서의 strace를 사용하는 경우 그러나, 우리는
accept(3,
하지만 아무것도 볼 수 없다 그것은 새로운 연결을 받기 전에 잠시 동안 응답하지 않는다, 그래서 우리는 실제로 문제를 일으키는 것을 볼 수 없습니다.
스택은 PHP 5, Apache 2 (prefork), MySQL 5.1입니다. 대부분은 Memcached를 통해 실행됩니다. APC와 eAccelerator를 사용해 보았습니다.
그래서 다음 단계는 무엇입니까? 우리가 간과하거나 모르는 프로파일 링 방법이 있습니까?
어떤 버전의 시스템을 업그레이드 했습니까? 나는 a) PHP, b) 아파치와 c) memcached를 의미한다. – Georgi
불행히도 그 기록이 없습니다. 내가 아는 한 적절한 apt-get/aptitude 로그가 없습니다. –