Кэширование большого количества страниц на php-сайте

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

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

Мы ценим любые предложения.


person bradym    schedule 17.11.2009    source источник


Ответы (4)


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

Опции:

(и так далее)

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

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

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

person Bruce Alderson    schedule 18.11.2009

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

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

person timdev    schedule 18.11.2009

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

person Kristoffer Bohmann    schedule 18.11.2009

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

person Elzo Valugi    schedule 18.11.2009