2012-09-05 5 views
2

난 그냥 내 dev 컴퓨터에서 약 2.1 초 걸린 nginx/php fastcgi를 통해 mongodb에 1000 비 영구 연결을 만드는 테스트를 실행. 그런 다음 같은 결과를 지속적으로 사용하여 동일한 테스트를 시도했습니다. 필자는 어딘가에서 PHP 드라이버의 지속성이 이제는 항상 가능하다고 읽었습니다. 다음으로, APC에 대한 연결을 저장하려고 시도하여 첫 번째 요청 이후에 7-9ms 응답 시간이 소요되었습니다. 지금은 여기에 몇 가지 궁금 해서요 :Mongodb and PHP APC

  1. 내가 한 번 내 응용 프로그램에서 둘 이상의 연결을 만들려 할 위치의 생각에서 지속적인 연결 수있는 거의 결코 시간이 무엇 I mongo 드라이버가 필요에 따라 새로운 연결을 생성한다는 것을 이해합니다.

  2. 단일 연결을 만들면 APC에서 저장된 연결 개체를 당기는 것과 거의 같은 시간이 걸리는 것으로 보입니다. 연결 개체 캐싱이 실제로 이점을 제공합니까?

  3. 물론 연결을 캐시해도 여전히 유효한 연결인지 확인하는 데는 일종의 검사가 필요합니다.이 검사를 매번 수행 할 때 성능 게인이 부과되는지 여부가 궁금합니다. 그것을 캐시에서 꺼내는 것에서.

나는이 모든 것을 실제로 다루는 어떤 물질도 찾을 수 없으므로 나는 내 이해에 혼란 스럽다고 생각한다. 이 실험을 해 본 사람이 있습니까?

감사합니다.

답변

1

처음으로, 제가 아는 한, APC는 데이터를 저장하는 동안 데이터를 직렬화합니다. APC에 연결을 저장하는 것은 의미가 없습니다.

그런 다음 지속 요청 연결은 다양한 요청에 대해 php 프로세스에 의해 재사용됩니다. 따라서 비 지속 연결은 PHP 프로세스가 수신하는 각 요청에 대해 다시 설정됩니다.

+0

그래, 내가 온 결론에 관한거야. 지속성은 이미 관리되었지만 메모리에서 객체를 가져 오는 성능상의 이점과 연결이 존재하는지 드라이버에게 묻고 연결 객체를 다시 빌드하는 경우에 나는 궁금했다. – Xealgo