WAMP 스택/실버스트라이프, 높은 TTFB이지만 빠른 PHP 실행? 답은 어디서 찾을 수 있나요?

WAMP 스택/실버스트라이프, 높은 TTFB이지만 빠른 PHP 실행? 답은 어디서 찾을 수 있나요?

내 프로덕션 서버는 Windows Server 2012 R2, Apache 2.4, PHP 5.6 및 MariaDB입니다(버전이 확실하지 않으며 아마도 관련이 없을 수 있음). Silverstripe 3.5에서 실행되는 사용자 정의 사이트가 있습니다.

최근에는 특정 작업, 특히 로그인(30초 이상) 또는 때로는 백엔드를 검색하는 동안 무작위로 터무니없는 TTFB가 표시됩니다. 흥미롭게도 유사하게 구성된 개발 서버에서는 이런 일이 발생하지 않으며, IT 부서에서 문제가 될 수 있는 차이점이 있는지 확인할 httpd.conf예정 입니다.php.ini

도움이 되길 바라면서 Zend OpCache 확장 기능을 활성화했지만 별다른 개선이 보이지 않습니다.

XDebug를 설치하고 로그인하는 동안 프로파일링을 트리거했지만(DOM 검사기를 통해 XDEBUG_PROFILE이라는 숨겨진 양식 필드를 추가하여) WinCachegrind에서 볼 때 출력에 따르면 PHP 실행에 누적 시간은 5초를 넘지 않았습니다. 즉, 총 누적 시간 main.php은 4.x초. 프레임워크 논리나 데이터베이스 액세스에 눈에 띄는 병목 현상은 없는 것 같습니다.

httpd.exe요청 기간 동안 내 CPU의 14%를 차지합니다. Powershell의 로그를 보면 응답이 전송될 때까지 gci -Wait요청이 로그인되지 않으며(정상적인 동작인지 확실하지 않음) 오류가 표시되지 않는 것으로 나타 났습니다.access.log

PHP가 논리를 수행하는 데 4초밖에 걸리지 않는다고 주장하는 요청을 Apache가 처리하는 데 왜 그렇게 오랜 시간이 걸리는지 알 수 없습니다. 잠재적인 해결책은 높이 평가될 수 있지만 진단 측면에서 파일 액세스, 실행 추적 등 Apache의 속도가 느려지는 원인이 무엇인지 파악하기 위해 진단 측면에서 다른 곳을 볼 수 있는지 알고 싶습니다. 나는 어디에서 보기 시작해야 할지 가장 모호하지 않습니다.

답변1

데이터베이스는~ 아니다병목 현상. 아이러니하게도 그랬다.은닉처- 그것은Zend_Cache_Backend_File사이트에 캐시할 데이터, 템플릿 및 이미지가 많은 경우 기반 캐시가 역겹도록 느리다는 알려진 문제. 확실히 서버에 있는 Silverstripe-cache 폴더에는 5,000개가 넘는 파일이 들어 있었습니다.

캐싱을 비활성화하기 위해 다음 줄을 추가하면 ./mysite/_config.php즉각적이고 압도적인 개선이 이루어졌습니다(로그인 시 35초 TTFB가 0.5초 미만으로 줄었습니다!).

SS_Cache::set_cache_lifetime('default', -1, 100);

하지만, 이는 임시 수정사항입니다. 우리는 파일 시스템 백엔드와 함께 램디스크를 사용하거나 XCache 또는 Memcached와 같은 메모리 풀을 사용하는 백엔드를 활용하는 등 캐싱 처리를 위한 보다 영구적이고 더 나은 솔루션 구현을 모색할 것입니다. .Zend_Cachesymfony/cache

하지만 내 사무실은 관료주의가 모든 일을 방해하는 것을 좋아하기 때문에... 그런 일이 일어나기까지는 시간이 조금 걸릴 수도 있습니다.

관련 정보