2013-04-22 3 views
3

Я использую Cache_Lite для html и массива Cache в моем проекте. Я обнаружил, что Cache_Lite может привести к высокой системной ошибке ввода-вывода. Может быть, потому что производительность Cache_Lite не очень хорошаяPHP Cache_Lite Альтернатива

Я спрашиваю, есть ли какой-либо стабильный php html/page cache для использования?

У меня уже установлен APC для кеша операций, Memcached установлен для общего кэша данных/массива.

+4

просто используйте кэширующий HTTP-обратный прокси-сервер .. PHP-прокси не имеют смысла. – mpm

+0

PHP должен замедляться. Вам нужно кэшировать, прежде чем запросы даже попадут в PHP. – TheHippo

ответ

0

Если вы говорите о https://pear.php.net/package/Cache_Lite тогда я мог бы рассказать вам историю. Мы использовали его один раз, но он оказался ненадежным для сайтов с большим количеством запросов.

Затем мы переключились на Zend_Cache (ZF1) в сочетании с memcached. Я могу использоваться как автономный компонент.

Однако вы должны настроить его немного, чтобы использовать теги.Есть несколько реализаций, чтобы выполнить эту работу: https://github.com/bigwhoop/taggable-zend-memcached-backend

1

Без дополнительной информации трудно узнать, испытываете ли вы в настоящее время проблему ввода-вывода или, вероятно, столкнетесь с проблемой ввода-вывода в будущем. (Если ваш сайт не получает большого трафика или вы используете SSD, у вас вряд ли возникнут проблемы)

Кэши Lite, похоже, являются файловыми системами кэширования. Это может привести к проблемам ввода-вывода, если ваш сайт испытывает большую нагрузку/много одновременных пользователей/размещается на общем сервере/имеет другие программы, сильно использующие файловую систему.

Альтернативой Cache Lite является memcache, который является хранилищем ключей/значений, которое хранит данные в памяти. Это может оказаться неприемлемым, если вы храните большие объемы данных или у вас нет резервной ОЗУ, поскольку он хранит всю свою информацию в памяти. Еще одним преимуществом памяти является то, что она намного быстрее, чем доступ к файлам с диска. Если вы используете только небольшой объем данных или одни и те же данные, это вряд ли будет проблемой, хотя из-за кэширования диска/ОС.

Я предлагаю проверить, чтобы увидеть, если ваша система в настоящее время испытывает какие-либо проблемы с IO, прежде чем беспокоиться о производительности ввода-вывода (если вы не планируете получать slashdotted или что-то) Вы можете установить инструмент, как Munin http://munin-monitoring.org/ и контролировать систему, чтобы увидеть если IO является проблемой или становится проблемой. После установки проверьте график процессора и посмотрите данные iowait.

РЕДАКТИРОВАТЬ: Только что увидел комментарий выше, в зависимости от ваших потребностей обратные прокси - еще одна отличная проверка инструмента https://www.varnish-cache.org/. На работе мы используем комбинацию из двух (memcache и лака). У нас есть 1 машина, обслуживающая более 900 000 просмотров страниц в месяц, этот сайт включает статический и динамический контент.

2

У меня была точная проблема с Cache Lite, так как библиотека неправильно реализует блокировки файлов.

Решено использовать новую библиотеку и заменить ее на Cache Lite.

https://github.com/mpapec/simple-cache/blob/master/example_clite1.php https://github.com/mpapec/simple-cache/blob/master/example_clite2.php https://github.com/mpapec/simple-cache/blob/master/example_clite3.php

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

Алгоритм, который используется для блокировки файлов следует этой схеме, concurrent read/writes to cache files

Смежные вопросы