Я хотел бы уменьшить использование памяти на клиентах, так как они
постоянно производит данные, и это замедляет их.
Откуда ты это знаешь? Большая часть клиентской памяти находится в кэше страниц, что совершенно нормально, и даже улучшение буферизации на сервере не предотвратит агрессивное кэширование этих данных на стороне клиента.
Пробовали ли вы очистить кеш страницы (в качестве теста) и посмотреть, как ваше приложение работает без использования кеша страницы?
NFS имеет то, что известно как согласованность «близко к открытию», что означает, что содержимое данных и метаданных действительно гарантированно будет стабильным только тогда, когда вы не открыли файл активно (то есть другой клиент может изменить файл на другом). система, и вы не будете мудрее).
Из-за этого ограничения согласованности приложения клиентских систем NFS полагаются на кэш страниц, чтобы обеспечить доступность данных для обратного чтения, если это станет необходимым.
Все это, как говорится, не зная, что происходит в вашем /etc/экспорт
один из способов выгрузки большего количества данных на сервер может заключаться в том, чтобы убедиться, что вы монтируете NFS на своих клиентах с синхронизировать
вариант монтирования и на вашем сервере экспортируйте пути с асинхронный
вариант крепления.
Это приведет к тому, что записи будут зафиксированы на сервере на стороне клиента, в то время как сервер всегда будет отвечать «готово» до того, как он зафиксирует данные на диске.
Это повлияет на пропускную способность клиентов, поскольку вы будете вызывать задержку из-за проверки каждого запроса на стороне клиента, но сервер будет буферизовать гораздо больше данных, поскольку он не будет ждать, пока данные сначала попадут на диск.
Вы также, вероятно, захотите покрутить dirty_write_centisecs
и другие биты на сервере, чтобы он мог буферизовать больше данных для обратной записи.
Вот в чем загвоздка - это может привести к замедлению работы клиентов и снижению целостности серверов перед лицом сбоя. В случае сбоя сервера вы можете потерять данные.
Кроме того, это не повлияет на использование памяти для кеша страниц на клиентах, над которыми NFS не имеет реального контроля.
В целом, я скептически отношусь к тому, что уменьшение использования памяти клиентами (если это кеш страниц, который вы измеряете здесь) улучшит производительность ваших клиентов.