같은 호스트에서 MySQL과의 대화 속도가 느린 PHP 된대로 skip-name-resolve 또는 skip-networking을

Ubuntu 10.04를 실행하는 VPS (OpenVZ)가 있습니다.

  • 니 진스 1.0.5
  • PHP 5.3.5
  • MySQL의 5.1.41

WordPress를 설치하고 Firebug에서 index.php에 처음 연결하는 데 몇 초가 걸립니다 (한 번에 4 ~ 13 초).

MySQL에 문제가 있다고 생각하는 이유는 무엇입니까?

  • 데이터베이스를 우회하는 캐싱 플러그인을 설치하면 지연이 사라집니다.
  • 쿼리 자체는 몇 밀리 초 안에 실행됩니다

여기 에 제안 된대로 skip-name-resolve 또는 skip-networking을 my.cnf에 추가하려고 시도했지만 운이 없습니다.

내가 주목 한 또 다른 것은 페이지가 생성되는 동안 php-fpm 프로세스가 100 % CPU 부하로 급증한다는 것입니다.

나는 아파치 대신 아파치를 사용하려고 시도했지만 아파치 앞에서 nginx조차도 시도했지만 아파치 프로세스는 모든 CPU를 사용했습니다.

마지막으로, 비슷한 구성으로 다른 VPS에서이 동일한 응용 프로그램을 실행하며 지연이 없습니다. index.php는 0.5 초 안에로드됩니다.

문제가 무엇인지 어떻게 알 수 있습니까?



답변

  • MySQL에 연결할 때 호스트 이름 대신 IP를 사용하십시오 (DNS 문제를 진단하기 위해 dig 사용),
  • 사용하는 고성능의 MySQL 튜닝 스크립트 , MySQL 서버에서 몇 가지 문제에 대해 당신에게 아이디어를 줄 것이다,
  • strace 또는 tcpdump를 사용하여 문제를 디버깅하십시오 ( 여기 예제가 있습니다 ).
  • PHP와 MySQL을 업그레이드하고 문제가 지속되는지 확인하십시오.

답변

php-fpm이 CPU의 100 %를 사용하는 경우 이것은 MySQL 관련 문제가 아니며, PHP 코드를 검사하여 지연을 일으키는 코드를 찾아야합니다. XDebug를 사용하는 것이 좋습니다.


답변

방화벽, php-fpm에서 mysql 연결 (파이프 / 소켓으로 전환 고려)을 확인합니다.

이 모든 php-fpm이 제대로 설치 / 업그레이드되었다고 가정하고 일부 모듈을 비활성화 할 수 있습니다.

이것이 어떻게 든 도움이되기를 바랍니다.


답변