Который более быстр/лучше для кэширования, File System или Memcached?

Я не думаю, что это ясно мне уже, это быстрее для чтения вещей из файла или из memcached? Почему?

27
задан tshepang 4 May 2014 в 23:34
поделиться

3 ответа

Memcached быстрее, но память ограничена. HDD огромен, но ввод-вывод медленный по сравнению с памятью. Вы должны поместить самые горячие вещи в memcached, а все остальные могут пойти в кэш файлов.
(Или взять себя в руки и вложить немного денег в больше памяти, как эти парни :)

Для некоторых бенчмарков см: Сравнение производительности кэша (File, Memcached, Query Cache, APC)

В теории:

Read 1 MB sequentially from memory       250,000 ns
Disk seek                             10,000,000 ns

http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf

31
ответ дан 28 November 2019 в 05:04
поделиться

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

Очевидно, что чтение файловой системы будет не быстрее (при условии, что это жесткий диск). Даже SDD будет заметно медленнее, чем чтение в памяти.Причина этого в том, что HDD / FileSystem рассчитаны на емкость, а не на скорость, а память DDR особенно быстра по этой причине.

Хорошее кэширование означает хранение часто используемых частей в памяти и не так часто используемых вещей на диске (постоянное хранилище). Таким образом, нормальный случай будет значительно улучшен вашей реализацией кеширования. Это твоя цель. Убедитесь, что вы хорошо понимаете свою идеальную политику кэширования. Это потребует обширного тестирования и тестирования.

1
ответ дан 28 November 2019 в 05:04
поделиться

Есть довольно много разных аспектов, которые могут благоприятствовать тому или иному:

  • Вам нужно / хотите поделиться этими данными между несколькими серверами? Файловая система является локальной, доступ к memcached осуществляется по сети.
  • Какого размера элементы, которые вы кешируете? Файловая система, вероятно, лучше подходит для больших объектов.
  • Сколько запросов memcached может быть на странице? TCP-соединения и разрыв могут занять больше времени, чем простая функция stat () файловой системы на локальном компьютере.

Я бы посоветовал вам взглянуть на свой вариант использования и профилировать оба подхода. Если вы можете обойтись без файловой системы, то я бы это сделал. Добавление memcached добавляет еще один уровень сложности и потенциальных точек отказа (memcached клиент / сервер).

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

14
ответ дан 28 November 2019 в 05:04
поделиться
Другие вопросы по тегам:

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