У меня установлен сервер Windows 2008 x64 с 8 ГБ оперативной памяти.
Диспетчер задач и монитор ресурсов настаивают на использовании 7,5 ГБ ОЗУ. Однако список памяти в разделе «Процессы (байты частной памяти)» не складывается. У меня есть проверенные процессы Show Processes от всех пользователей, и я вручную добавляю полученные числа, и у меня есть около 3,5 ГБ ОЗУ.
Я также посмотрел последнюю копию SysInternals Process Explorer. И ни частные байты, ни рабочий набор не составляют более 3,5 ГБ используемой оперативной памяти.
В чем дело?
=====
Обновить: Я отскочил от сервера, чтобы посмотреть, что произойдет с использованием памяти. После загрузки и начала регулярных операций он занимал 3 ГБ ОЗУ. 18 часов спустя он снова использует до 6,8 ГБ без указания того, где используются дополнительные 3,5 ГБ ОЗУ.
Вот ссылки на снимки экрана монитора ресурсов и диспетчера задач:
Обновление 2: Ну, я считаю, что обнаружил проблему. Когда я отсоединил одну из больших баз данных от моего сервера sql, количество оперативной памяти, показанное как «используется», резко упало. Счетчик частных байтов памяти практически не изменился. Итак, я предполагаю, что у SQL-сервера есть способ выделить память там, где она не отображается ни на одном из мониторов.
Я пошел дальше и создал новый файл базы данных, а затем перенес все данные из той, которую я отсоединил. Несмотря на то, что он имеет те же данные и те же транзакции, которые проходят через него, объем используемой памяти остается низким. Может быть, в БД было какое-то повреждение? Оставлю это богам БД и пойду искать другую "проблему";)
Сегодня я нашел эту статью, в которой подробно обсуждаются заблокированные страницы, AWE и 64-битные системы. http://blogs.msdn.com/psssql/archive/2009/09/11/fun-with-locked-pages-awe-task-manager-and-the-working-set.aspx
Один из пунктов маркированного списка (№3) - это заголовок «Почему диспетчер задач не показывает всю память, выделенную для SQL Server».
Это очень хорошее объяснение. В конце концов, причина, по которой это не отображается, заключается в том, что сервер sql «заблокировал» эти страницы в памяти. Заблокированные страницы НЕ являются частью рабочего набора, поэтому они не отображаются в диспетчере задач и даже не отображаются как часть набора памяти приложений.
Если ты бежишь select * from sys.dm_os_process_memory
вы можете увидеть поле locked_page_allocations_kb, которое сообщит вам, сколько оперативной памяти sql-сервер выделил на этих страницах.
У меня похожая проблема. Наткнулся на эту техническую статью - 907877. Попробуйте использовать команду SQL DBCC MEMORYSTATUS и проверьте, соответствует ли выделенная AWE запись вашей недостающей памяти.
Диспетчер задач имеет полосу / график памяти под полосой / графиком ЦП. Это сумма, используемая приложениями.
Сумма суммы, указанной на этом графике, и суммы, указанной как «Доступно», должна равняться вашим общим 8 ГБ.
«Доступный» больше, чем «Свободный», потому что «Кэшированный» включен в «Доступный».
Скорее всего, вы используете оперативную память для своей видеокарты. Проверьте настройки BIOS.
Значит, понятия не имею. Некоторые предложения здесь - это проверить модули памяти.
Какие приложения у вас запущены? Может быть, у вас запущено приложение для разработки или сторонний программный пакет с утечками памяти?