Windows не освобождает кэш-память для кэшированных файлов и приложений
На сервере Windows 2008R2 у меня есть следующие свойства:
- Oracle 10G
- Lotus Notes / Domino 5
- Большое количество файлов PDF/DOC, доступ к которым осуществляется через сетевые диски
Время от времени сервер останавливается, и единственный способ решить его - перезапустить сервисы (особенно Lotus Notes).
Сервер имеет 16 ГБ ОЗУ и, глядя на использование памяти, я вижу, что в большинстве периодов активно используется только от 4 ГБ до 5 ГБ памяти. Остальная часть памяти кэшируется. Смотрите скриншот PerfMon ниже:
Кроме того, я использовал инструмент под названием RamMap, как рекомендовано в этой статье, https://support.microsoft.com/en-us/help/976618/you-experience-performance-issues-in-applications-and-services-when-th
Вот несколько скриншотов RamMap - отсортировано по памяти в режиме ожидания
Глядя на вышесказанное, я вижу, что объем "резервной" памяти, используемой для "Mapped file", касается (11 ГБ).
Вопросы:
1. Верно ли, что кэшируемая память - это файлы, которые кэшируются для последующего использования, а не обязательно для приложений (сервер обрабатывает миллионы файлов PDF).
2 - Что может быть причиной того, что Windows не выпускает этот кеш? Согласно Google, это было проблемой в более ранних версиях Win2008, но не должно быть проблемой с Win2008R2.
3 - Некоторые из файлов, показанных на вкладке "Сводка файлов", возможно, могут быть решены путем модификации приложения. Например, размер файла журнала заметок лотоса (пункт 2 на снимке экрана с кратким описанием файла). Я не уверен, хотя, если я исправлю файлы, показанные в списке, это решит проблему. Разве освобожденная память не будет использоваться чем-то другим? например, файлы PDF, которые кэшируются
4 - Большинство показанных файлов, которые кэшируются, являются файлами, используемыми Lotus Notes. Есть ли способ, которым я могу ограничить Lotus Notes, чтобы использовать только определенный объем памяти? Lotus Notes или Windows решают кэшировать файлы?
редактировать
Я не упомянул, как это вызывает проблему, поэтому я постараюсь привести пример. Основное действие, которое выполняют пользователи, - прикрепление больших документов. Они прикрепляются через веб-интерфейс и обрабатываются, а затем сохраняются в файловой системе.
Когда система работает с нормальной скоростью, документ может быть прикреплен в течение нескольких минут. Как только объем свободной памяти (см. Снимок экрана perfMon) падает до <20 МБ, может потребоваться до 20 минут, чтобы прикрепить один документ размером 10 МБ. Единственный способ исправить это - перезапустить приложение. Я предполагаю, что система не освобождает кеш, даже когда поступают новые запросы, которым необходимо использовать память (например, для прикрепления новых файлов).
В некоторых случаях количество свободной памяти уменьшается до 0, и я вижу следующую ошибку:
22/03/2017 06:59:59 HTTP Web Server: Lotus Notes Exception - Insufficient memory. [/IES/iesMain.nsf/iesDoc?openForm&type=ref&template=US-510k]
“22/03/2017 16:09:19 HTTP Server: Error - Memory allocation error, out of system memory’
Редактировать 2
Я также забыл упомянуть, что сервер является виртуальной машиной, а не выделенным сервером. Я подозреваю, что это может также способствовать производительности.