Сравнение производительности MemCached с Кэшированием диска

Я хотел бы знать действия Memcached на удаленном сервере (на той же LAN) с Кэшированием диска. Помимо Memcached масштабируемое решение для кэша, там было бы любое преимущество использования Memcached относительно производительности по сравнению с кэшированием диска.

С уважением, Mugil.

6
задан Mugil Ragu 18 June 2010 в 01:05
поделиться

2 ответа

Из моего личного опыта я обнаружил, что memcached не так быстр, как дисковый кэш. Я считаю, что это происходит из-за кэширования дискового ввода-вывода в ОС, но memcached позволяет "масштабируемый" кэш, то есть если у вас более 1 сервера обращаются к одним и тем же данным кэша, он будет масштабироваться (тем более, что memcached имеет очень низкие накладные расходы процессора по сравнению с PHP). Единственный способ позволить более чем одной машине получить доступ к дисковому кэшу одновременно - это сетевое монтирование, которое, несомненно, убьет скорость доступа. Кроме того, еще одна вещь, о которой вы должны беспокоиться при кэшировании файлов - это сборка мусора для предотвращения перенасыщения диска.

По мере роста вашего сайта (сайтов) вы можете передумать, поэтому, какой бы выбор вы ни сделали, используйте обертку кэша, чтобы вы могли легко изменить свой метод. Zend предоставляет хороший API.

7
ответ дан 10 December 2019 в 02:42
поделиться

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

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

2
ответ дан 10 December 2019 в 02:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: