Я смотрю на PLE (продолжительность жизни страницы) через узлы NUMA на наших серверах SQL, и наткнулся на довольно странное распределение. Узел NUMA 000 имеет очень низкое PLE по сравнению с 001. Я не уверен, почему это так. Я проверил на нескольких других серверах SQL в нашей среде, и другие производственные серверы не имеют такого поведения.
Система работает под управлением SQL Server 2012 Enterprise Edition на Dell m620 с оперативной памятью 256 ГБ. Это 2-сокетная, 6-ядерная (с поддержкой HT) машина. MAXDOP установлен на 6. Модули памяти AFAIK установлены равномерно по банкам памяти процессоров.
Что-то подсказывает мне, что у узла NUMA 000 есть другие задачи SQL, которые нужно выполнять, другие узлы, но я забыл, где я слышал / видел это.
@@Version
показывает: Microsoft SQL Server 2012 (SP1) - 11.0.3412.0 (X64)
источник
stolen nodes memory KB
его значение составляет 97G, что является очень высоким значением IMO. Украденная память - это память, используемая не для целей базы данных, а для SQL Server для таких операций, как сортировка, хеширование и другие разные цели. С другой стороны, цель и общая память одинаковы. Это кажется странным. Вы должны применить SP2, но я чувствую, что PLE может быть неправильно рассчитанОтветы:
Если у вас есть запрос с интенсивным чтением, выполняющийся на одном узле NUMA (в данном случае 0), он может иметь меньшую ожидаемую продолжительность жизни страницы по сравнению с другими узлами NUMA.
Это совершенно нормально.
Чтобы увидеть, какие запросы выполняются прямо сейчас, вы можете использовать отличный sp_WhoIsActive Адама Мачаника . Это абсолютно бесплатно. Некоторые люди даже запускают его каждые X минут и записывают данные в таблицу, чтобы они могли вернуться назад, чтобы посмотреть, что работало в то время, когда PLE пикировался.
источник
Мое понимание архитектуры NUMA заключается в том, что каждый узел в значительной степени изолирует себя. В этом случае они могли бы сделать совсем другую работу. Например, 0 может выполнять запросы, требующие большого количества физического ввода-вывода, в то время как 1 везет и находит все свои данные в пуле буферов.
источник