2010-05-05 3 views
3

Windows Vista 머신에서 wampserver를 실행 중입니다. 나는 이것을 오랫동안 해왔으며 위대한 일을 해왔다. 이 설정으로 많은 프로젝트를 완료했습니다.Httpd 프로세스 메모리 사용량이 많고 페이지로드가 느리다.

하지만 오늘은 아무 것도 변경하지 않고 (구성 등이 없음) PHP 코드 만 변경되었으므로 사이트 (사용자 세션이 있거나 데이터베이스에 액세스하는 페이지)를로드 할 때마다로드 속도가 느려집니다. 30 초, 그들은 1 ~ 2 초 걸립니다.

작업 관리자를 살펴보면 페이지로드시 httpd 프로세스가 10MB에서 30MB, 90MB, 120MB, 250MB 사이에서 점프 한 다음 다시 아래로 내려가는 것을 볼 수 있습니다.

나는 이전 PHP 코드 프로젝트를 테스트했으며 모두 느린 것으로 보입니다!

무슨 일입니까?

이 혼란 문제에 도움을 주신 모든 분들께 감사드립니다! 다음

+0

memory_limit의 ini 설정은 무엇입니까? PHP 코드에서 이런 일이 일어나지 않도록 32M을 넘지 않아야합니다. – symcbean

+0

이것은 정확하게 문제를 해결하지 못합니까? 모든 일은 PHP가 할당 할 수없는 메모리의 치명적인 오류를 줄 것입니다. 나는 아직도 이것을 일으키는 문제를 가지고있다! – Abs

+0

데이터베이스 액세스 라이브러리가 업데이트 되었습니까? (귀하의 세션도 여기에 저장된다고 가정하고 있습니다)? 데이터베이스에서 캐시하도록 구성을 변경 했습니까? httpd 구성에 압축 또는 다른 항목을 추가 했습니까? – marr75

답변

1

확인 :

  • 확인 당신이 당신의 데이터베이스에 액세스하는 데이터 액세스 라이브러리가 변경된 경우/최근 업데이트 (하나를 사용하는 경우).
  • 지난번에 프로젝트를 확인한 이후로 바이러스 백신/방화벽 (또는 설정)을 변경 했습니까? 더 적극적인 보안 수 있습니다 느린 것들.
  • WAMPSERVER 메뉴에서 Apache/PHP/MySQL 버전을 변경 했습니까?
  • 어쩌면 당신은 WAMPSERVER를 재설치하려고 할 수 있습니다. (이것이 마지막으로 도움이 될 것입니다. 정말로 힘든 경우가 있습니다.

그러나 경험과 당신이 당신의 질문에 설명 메모리 사용에서 당신의 SQL 쿼리가 실행 및/또는 정말 큰 데이터 세트를 반환 할 길이 보인다.

쿼리 최적화를 시도해보십시오. 결과 집합이 동일 할 경우 속도는 높이지만 실제로는 메모리 사용량을 줄이는 데 도움이됩니다. 메모리의 경우 아마도 LIMIT을 사용하여 반환 데이터 세트를 줄일 수 있습니다 (디자인에서 허용하는 경우).

데이터로 무엇을하는지 모르기 때문에 대용량 데이터 세트를 사용하여 "재생"(큰 XML 문서를 파싱하는 것)보다 메모를하는 것이 많은 시간과 메모리를 소비 할 수 있습니다 이 모든 데이터).

이 게시물의 아무 것도 도움이되지 않으면 설정이 느리고 속도가 느릴 때 코드 샘플을 사용하여 정확히 무엇을 할 것인지 알려주세요.

1

wamp 로그 파일의 크기를 확인하십시오.

때때로
C:\wamp\logs 

, 그들은 정말 큰 얻을 때, 그들은 천천히 아파치가 발생할 수 있습니다.

1

최근에 네트워크 구성을 변경했거나 시스템을 업그레이드 했습니까? 이로 인해 네트워크 구성 또는 안티 바이러스/보안 소프트웨어를 통해이 문제가 발생할 수 있습니다. 예를 들어 사람들은 과거에 zonealarm에 문제가 발생했습니다.

또한 최근에 "127.0.0.1"을 "localhost"로 바꾸거나 네트워크를 통해 이동 한 경우 C : \ Windows \ System32 \ drivers \ etc \ hosts에서 IPV6 로컬 호스트 설정을 제거하면 도움이 될 수 있습니다 당신이 한 경우 :

# ::1    localhost 
1

::1    localhost 

변화 라인을 나는 아무도이 제안하지 않았다 놀라지입니다. 상황이 실제로 느려지는 이유를 항상 확인해야합니다.

병목 현상이 발생한 위치를 먼저 확인하려면 성능 모니터를 사용하십시오. (perfmon.exe) 하드 페이지 오류 이 실제로 병목 현상입니까? 하드 드라이브가 페이지 파일을 읽고 쓰는 중입니까? 하드 디스크의 IO 대기열 길이를 확인하십시오. CPU가 사용 중입니까?

바쁜 것처럼 보이지 않으면 procmon을 사용하여 일부 시스템 호출에서 PHP 프로세스가 차단되었는지 확인하십시오.

희망이 도움이됩니다. 당신이 실행하는 데 오래 걸립니다 PHP 코드의 일부를 찾을 수 있도록 할 수있는 cachegrind 뷰어 (예를 들어 WebGrind, WinCacheGrind)와 함께 데이터베이스 병목 현상, XDebug을 찾는 관련이없는 불구하고

1

.

+0

+1 모두에게 다음과 같은 설치 질문이있는 경우 – Xeoncross

관련 문제