Я работаю с выделенными серверами SQL Server для Windows 2008 R2 и 2003; в течение дня и ночи мне нужно копировать большие файлы с компьютеров в сетевые папки для резервного копирования и доставки журналов.
Существует задокументированная проблема, когда ОС выделяет много памяти для файлового кэша для обработки этих копий, и это потенциально лишает память других функций. (В конечном итоге на Win2k8 R2 диспетчер задач сообщает, что в результате этого поведения Свободная память = 0). Но эти конкретные файлы никогда не читаются после копирования, и "на всякий случай" кэширует данные файла. не имеет смысла для этой функции.
Существует ли простой .NET или PowerShell способ копировать файлы и не увеличивать этот файловый кеш? Самый большой файл, с которым я имею дело, это 300+ ГБ.
В настоящее время для этой функции мы используем RoboCopy в 2008 R2, xcopy в 2003 и собственное задание копирования файлов доставки журналов в SQL Server.
Я слышал о переключателе / J в XCOPY в win2k8R2 и специальной DLL от Exchange, которая, как утверждают некоторые, помогает решить эту проблему, но было бы неплохо иметь действительно чистое и простое решение.
См. Также http://blogs.msdn.com/b/ntdebugging/archive/2007/11/27/too-much-cache.aspx