2009-08-30 2 views
1

젠드 프레임 워크에 따라 새로운 PHP 프레임 워크를 만들고 있습니다. 웹 개발을위한 범용 MVC 프레임 워크입니다.새로운 프레임 워크에서 일반적인 로깅, 캐싱 및 성능 정보

  1. 로깅 : 내가 로그인 사용해야
    내가 두 측면에 대한 걱정 ? 로깅을 사용할 때 상당한 성능 문제가 있습니까?

  2. 캐싱 데이터베이스 쿼리 :
    데이터베이스에서 일부 쿼리를 캐싱하려고합니다. 사용자 관련 정보를 캐싱하는 것에 대해 우려하고 있습니다. 사용자와 관련된 몇 가지 정보가 있다고 가정합니다. 그들의 개인 정보와 마찬가지로. 이러한 데이터를 캐시하면 모든 사용자에 대해 캐시 파일이 내 데이터 폴더에 생성됩니다. 이제 2 시간 동안 10,000 - 20,000 명의 온라인 사용자가 있다고 가정합니다. 이는 내 폴더에 20000 개의 파일이 있음을 의미합니다.
    내 질문은, 내 서버의 성능에 영향을 미칠 것입니다. 폴더가 서버에 가질 수있는 파일의 수에 상한선이 있습니까?

답변

2

파일 기반 캐시를 사용하지 마십시오. 파일 시스템 작업은 매우 느립니다 : http://imgur.com/X1Hi1.gif. memcached를 사용하면 위의 게시물이 말하는 것과 반대되는 많은 메모리가 필요하지 않습니다. 필요한 메모리 양은 저장할 물건의 양과 memcached가 액세스 빈도에 따라 데이터를 추출 할 수있는 정도에 비례합니다.

1

1) 확실하게 로깅을 원한다면 http://www.xdebug.org/에서 xdebug를 사용하는 것이 좋습니다. 해당 사이트의 성능 오버 헤드에 대해 자세히 읽을 수 있습니다. (더하여 이클립스의 PHP 버전과 잘 어울린다.)

2) 나는 많은 사용자 정보를 캐시하고 싶지만, memcache는 아마도 PHP (http://se2.php.net/memcache)에서 캐싱하기에 더 좋은 선택 중 하나 일 것이다. 그리고 네, 파일 번호에 제한이 없습니다. 아마도 여러분은 아마도 32 비트 파일 크기 제한을 넘지 않을 것입니다. =)

+0

로깅을 사용하는 경우. 그렇다면 왜 Zend_Log를 사용하지 않아야합니까? 거기에 문제가 있습니까? –

0

캐싱은 사용자/프로그래머의 관점에서 볼 때 거의 불가능합니다. . 나는 사물을 사용자 데이터만큼 단순하게 캐시하지 않을 것이다. 이미 데이터베이스에 캐시되어 있습니다. 복잡한 검색어 및 웹 페이지 전체 (또는 그 일부)에 더 집중하십시오.

stackoverflow와 같은 페이지가없는 한, 캐시 할 수있는 몇 가지 방법이 있습니다. 사용자가 사이트에서 수행하는 작업에 대해 로그 파일을 확인하고 곧바로 핫 스폿을 볼 수 있습니다.

컴퓨터에 많은 메모리 (> 8GB)가 없으면 Memcache를 사용하지 않는 것이 좋습니다. Memcache는 Memcache 서버에 16GB를 넣으면 아무 것도하지 않고 캐싱 할 때 가장 잘 작동합니다.

작은 사이트, 하드웨어 및 요구 사항에 대해 APC는 데이터에 대한 오버 헤드가 매우 적기 때문에 동시에 PHP 실행 속도가 빨라집니다 (APC없이 프로덕션 서버를 실행하지 않으려는 경우). 바이트 코드 캐쉬).