2009-11-17 6 views
5

나는 기존 사이트에서 약 1,000 만 페이지의 새로운 페이지를 만드는 프로젝트에 참여하고 있습니다. 이 사이트와 새로운 프로젝트는 CodeIgniter로 구축되었으며 MySQL에 연결됩니다.PHP 사이트에 다수의 페이지 캐싱

나는 전에이 크기의 사이트를 다뤄 본 적이 없으며 캐싱을 어떻게 처리해야하는지에 대해 우려하고 있습니다. 누가 포인터를 줄 수있는이 크기의 PHP 사이트에서 캐싱을 다루는 사람이 있습니까? 필자는 CodeIgniter 캐싱 시스템 및 그와 유사하지만 익숙하지 않은 캐시 파일 수에 익숙합니다.

의견을 보내 주시면 감사하겠습니다.

답변

1

PHP와 CodeIgniter에서 사용할 수있는 캐싱 레이어가 여러 개 있지만 표준 Linux 서버에서 캐시 된 파일 수에 대해 걱정할 필요가 없습니다 (다양한 파일 시스템이 마운트 지점 당 수억 개의 파일을 처리 할 수 ​​있습니다) . 그러나 캐싱 방법을 선택하려면주의 깊게 측정해야합니다.

옵션 :

  • 연산 코드 캐싱 (젠드, eAccelerator, and more)
  • CodeIgniter는보기 캐싱은
  • CodeIgniter의 쿼리 캐싱을 읽기 (보기별로 구성)
  • 일반 웹 캐싱 (more info)
  • 데이터베이스 최적화 (more info)

(등등)

또한 메모리 파일 시스템과 메모리 내 테이블을 사용하여 파일 캐시를 향상시킬 수 있습니다.

실제 질문은 캐싱 전략을 어떻게 선택합니까? 용량 계획. 최상의 이론을 토대로 시스템 (사용자, 계정, 페이지, 파일)을 모델링하고, 시뮬레이션하고, 측정하고, 캐시를 추가합니다. 다시 측정하십시오. 원하는 척도에 맞는 접근법을 얻을 때까지 새로운 이론과 측정을하십시오.

필자의 경험에 따르면,보기 캐싱과 웹 캐싱은 널리 읽혀지는 사이트 (예 : WPSuperCache)에서 큰 이익을 얻습니다. Opcode 캐싱 (및 다른 형태의 min-imisation)은 데이터베이스 성능 튜닝과 같이 매우 동적 인 사이트에 유용합니다.

2

나는 그 규모에서 아무 것도하지 않았지만 캐싱 메커니즘이 완전히 바보가 아니며 최신 파일 시스템을 사용하는 한 파일 기반 캐싱에 문제가 나타나지 않습니다. 디렉토리 트리 전체에 캐시 파일을 분산시키는 것만으로도 충분히 똑똑합니다.

걱정된다면 좋을 것입니다. 물론, 나는 CI의 빌트인 (built-in) 메카니즘을 감싸는 래퍼 (wrapper)를 작성하여 다른 것들을 쉽게 바꿀 수 있도록 제안한다. (Zend_Cache, 아마도 memcached 서버, 또는 더 스마트 한 파일 기반의 자신 만의 시스템) .

0

FYI : 시스템이 Windows 서버에서 실행되는 경우 : Windows는 (최대 수)? 약있다. 캐시 폴더를 포함하여 폴더의 65.000 개 파일 최신 버전에서이 상한이 수정되었는지 확실하지 않습니다.

0

모든 큰 사람들은 APC을 사용합니다. 웹 페이지 수와 관련이 없습니다. 관련 숫자는 조회수 (페이지 뷰)입니다. 그리고 당신이 속도 도랑을 위해 디자인하는 경우에 Windows 기계.