2011-08-07 3 views
0

저는 제 젠드 애플리케이션에 2 개의 비누 웹 서비스를 개발했습니다. 내 개발 환경 (맥 8 기가 바이트 램 i7 프로세서에 MAMP) 성능이 정말 좋습니다. 우분투 램프 서버 (1GB RAM 1 프로세서)에 배포하면 성능이 크게 떨어집니다. 그것보다 10 배 더 천천히.램프의 성능 젠드 비누 서비스

나는 자바 클라이언트 (일식 자동 생성 클라이언트 wsdl에서) 문제는 첫 번째 호출 항상 두 번째 것보다 4 배 느린 것입니다. 이것은 내 MAMP와 LAMP 모두에 해당됩니다.

MAMP - 최초의 400 MS 전화 - 두 번째 전화 100 밀리

LAMP - 퍼스트 콜이 000 밀리 - 두 번째 전화 (400) MS

요청이 exactley 그래서 나는 단순히 요청을 중복

첫 번째 및 두 번째 호출과 동일합니다.

수동으로 LAMP 클라이언트를 여러 번 실행하면 첫 번째 호출이 약 900ms에서 수행됩니다. Zend 응용 프로그램이 첫 번째 호출 중에 "시작"해야하는 것처럼 느껴집니다.

아무도 내가이 문제를 해결할 수있는 방법에 대한 단서가 있습니까? 나는 무엇을 시도했다 :

  • 읽기 튜닝 사전에

감사 tutroials는 WSDL이 캐시 (LAMP와 함께 제공되지 않음)

  • 설치된 XCache를를 확인하십시오!

  • 답변

    0

    이 성능 문제는 종종 wsdl 세대에 Zend_Soap_AutoDiscovery를 사용할 때 발생합니다. 이것이 코드의 경우라면, 생성 된 wsdl을 별도의 XML 파일로 저장하고 Zend_Soap_Server 생성자에로드하는 것을 고려해야합니다.

    +0

    내 공용 폴더에 wsdl을 저장하고 ./wsdl/my.wsdl 및 wsdl/my.wsdl을 사용하여 생성자 봇에로드하려고했습니다. 이 문제는 서비스가 몇 초 동안 액세스하지 않았을 때 발생하는 것으로 보입니다. 행을 여러 번 실행하면 soap-ui (wsdl 캐시)에서 150ms로 호출이 수행되고 wsdl을 메모리에 캐시하는 Java 클라이언트에서 약 900ms 이내에 호출이 수행됩니다. 그러나 경우에 따라 서비스가 몇 분/초 동안 액세스하지 않은 경우 Java 클라이언트는 2-5 초 걸리고 soap-ui는 1-2 초 걸립니다. 다른 아이디어? – Jake142

    +0

    xdebug와 kcachegrind를 사용하여 서버 코드를 프로파일 링하여 정확히 병목 현상이있는 곳을 확인하십시오. –

    0

    opcode 캐시에 문제가있는 것 같습니다. opcode 캐시가 없으면 Zend가 정말 느립니다. 그리고 그것을 사용할 때 ncie boost를 얻습니다. 내가 젠드 최적화, eAccelerator, 또는 simillar를 찾을 것

    ... 그것까지 유휴 시간 후 속도가 느려 왜 것

    이 (클래스/파일 IO 캐시에서 닦아된다).

    +0

    감사합니다. xCache를 사용합니다. 내 앱을 계속 실행하기 위해 튜닝하는 방법에 대한 조언을 해줄 수 있습니까? – Jake142

    +0

    죄송합니다, XCache에 대한 실제 경험이 없습니다. 해결책은 모든 캐시의 수명을 연장하는 것이지만 어떻게 ... 잘 모르겠습니다. 그냥 포인터 일뿐입니다;) –

    +0

    fastcgi를 옵션으로 사용할 수 있습니까? 필자가 램프 설치를 완료하고 mod_cgi가로드 된 것을 확인한 경우 어떻게 그 파일을 fastcgi로 만들 수 있습니까? – Jake142