memcached против tmpfs

Есть ли какие-либо преимущества использования memcached локально по сравнению с использованием смонтированного tmpfs?

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

1 ответ

Решение

Моя интуиция предполагает, что memcached будет заметно эффективнее, поскольку файловая система будет поддерживать флаги владения и прав доступа для каждого объекта при каждом создании и проверять их в каждом файле, открытом для чтения. Кроме того, вы, вероятно, обнаружите, что структуры memcached лучше индексируются, чем файловая система tmpfs, в которой IIRC использует неупорядоченный линейный список для списков каталогов, поэтому ему приходится сканировать (в среднем) половину списка каталогов, чтобы найти объект, вместо того, чтобы выполнять более эффективный поиск типа "разделяй и властвуй".

В вышеизложенном я предполагаю, что вы имеете в виду хранение многих кэшированных результатов, большинство из которых являются относительно небольшими по размеру, каждый в своем собственном файле в файловой системе на основе ОЗУ. Если вы хотите хранить множество результатов в одном файле в tmpfs, то база данных sqlite на основе памяти будет более эффективной и избавит вас от необходимости изобретать колесо с точки зрения управления индексами и эффективного поиска.

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

Какой метод лучше, во многом будет зависеть от того, для чего вы его используете, поэтому, возможно, было бы неплохо добавить более подробную информацию о вашем проекте к вопросу. Как запрос оптимизации кода / данных, это могут быть вопросы для StackOverflow, а не для ServerFault (администратор сервера вряд ли сможет выбрать вариант кеширования проекта, если только программисты не реализовали более одного варианта). - вы можете найти людей, которые оценили memcached / sqlite / tmpfs / custom_solution для своего проекта и могут дать вам несколько полезных сравнительных данных.

Другие вопросы по тегам