Кеширование большого количества страниц на php сайте - PullRequest
5 голосов
/ 18 ноября 2009

Я участвую в проекте, который в итоге создаст около 10 миллионов новых страниц на существующем сайте. Сайт и новый проект создаются с использованием CodeIgniter и подключаются к MySQL.

Раньше я никогда не имел дело с сайтом такого размера, и меня беспокоит, как мы должны обращаться с кэшированием. Кто-нибудь имел дело с кэшированием на PHP-сайте такого размера, который мог бы дать мне несколько советов? Я привык к системе кэширования CodeIgniter и тому подобному, но меня беспокоит количество файлов кэша, которые будут созданы.

Любые предложения будут оценены.

Ответы [ 4 ]

2 голосов
/ 18 ноября 2009

Я ничего не сделал в этом масштабе, но я не вижу проблемы с кэшированием на основе файлов, если механизм кэширования не совсем тупой, а вы используете современную файловую систему. Распределение файлов кэша по дереву каталогов достаточно разумно.

Если вы волнуетесь, это хорошо. Конечно, я бы предложил написать обертку вокруг встроенного механизма CI, чтобы вы могли легко поменять его на что-то другое (например, Zend_Cache, возможно, с мощным сервером memcached или какой-нибудь более умной файловой системой вашего собственного дизайна) .

1 голос
/ 18 ноября 2009

Существует несколько уровней кэширования, доступных для PHP и CodeIgniter, но вам не нужно беспокоиться о количестве кэшированных файлов на стандартном сервере Linux (различные файловые системы могут обрабатывать сотни миллионов файлов на точку монтирования). Но чтобы выбрать метод кэширования, вам нужно тщательно измерить.

Опции:

  • Кэширование кода операции (Zend, eAccelerator, и более )
  • Кэширование представлений CodeIgniter (настраивается для каждого представления)
  • CodeIgniter для чтения запросов кеширования
  • Общее веб-кэширование ( больше информации )
  • Оптимизация базы данных ( больше информации )

(и т. Д.)

Кроме того, вы можете улучшить файловые кэши, используя файловые системы памяти и таблицы в памяти.

Реальный вопрос в том, как вы выбираете стратегии кэширования? Планирование мощности. Вы моделируете свою систему (пользователей, учетные записи, страницы, файлы), моделируете, измеряете и добавляете кеши на основе лучших теорий. Мера снова. Создавайте новые теории и измерения, пока у вас не появятся подходы, соответствующие вашему желаемому масштабу.

По моему опыту, кэширование представлений и веб-кэширование являются большим преимуществом для широко читаемых сайтов (например, WPSuperCache). Кэширование кода операции (и другие формы минимизации) полезно для сильно динамичных сайтов, как и настройка производительности базы данных.

0 голосов
/ 18 ноября 2009

Все большие парни используют APC . Количество веб-страниц не имеет значения. Соответствующее число - это количество просмотров (просмотров страниц). И если вы разрабатываете для скоростных машин Windows.

0 голосов
/ 18 ноября 2009

К вашему сведению: если система работает на сервере Windows: Windows может (может?) Макс. иметь ок. 65.000 файлов в папке, включая папки кеша. Не уверен, что этот верхний предел был исправлен в более новых версиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...