Я хотел бы реализовать кеш в памяти (определенного типа) в моем приложении linux для пользовательского пространства.с использованием памяти пользовательского пространства linux для кэширования
то, что мне нужно, по существу такое же поведение, как и буферный буфер файловой системы linux: любая память не используется ничем другим, используется моими процессами, которые кэшируются.
Если бы я написал это с жестким кодированным ограничением на размер моего кеша, я должен существенно ограничить свой кеш некоторым предопределенным значением, а не увеличиваться, если остальные процессы не будут использовать столько же память или ее сжатие, если используются воздушные шары использования памяти.
Что бы я хотел, это linux для вызова своего рода обратного вызова, который уведомляет меня о том, чтобы удалить некоторые записи из моего кеша, когда на самом деле нужна память.
Таким образом, любая память, необходимая процессам, может быть удалена из моего кеша, и все, что осталось от памяти, предназначено для моего кеша.
есть ли способ сделать это в Linux?
- лучший способ сделать это только для мониторинга/proc/meminfo и увеличения моего размера кеша, чтобы используемая физическая память была едва меньше полной физической памяти?
Это зависит от того, что вы хотите сделать. Если вы делаете что-то с файлами, возможно, лучше, чтобы linux кешировал их. –
Этот вопрос напоминает мне HTTP-кеш-ускоритель Varnish, который пытается сделать то же самое. –
>>> только меньше общей памяти. Использование почти 100% [или даже 90%] на самом деле не очень хорошая идея, так как время обслуживания приближается к бесконечности экспоненциально. См. Любой документ теории очередей или http://www.johndcook.com/blog/2009/01/30/server-utilization-joel-on-queuing/ – Fakrudeen