Hyperic SIGAR сообщает о различном использовании свопа в Windows 2012 R2

Я использую Hyperic SIGAR через Java на Windows 2012 R2. Используя API Swap sigar ( http://cpansearch.perl.org/src/DOUGM/hyperic-sigar-1.6.3-src/docs/javadoc/org/hyperic/sigar/Swap.html), я могу получить следующее: общая сумма свопа = 5032562688, использованный своп = 1541095424 и свободный своп = 3491467264. Это показывает, что текущее использование свопа составляет ~30%. Тем не менее, проверка использования подкачки в Window с помощью счетчика Paging File -> % Usage в системном мониторе, как описано здесь https://serverfault.com/questions/399855/how-much-swap-is-being-used-on-windows показывает, что использование свопа составляет 0%. (% Пик использования также 0%). Использование свопа в 0% представляется более правильным, поскольку оконный сервер вообще не слишком загружен. Кто-нибудь знает, почему SIGAR сообщает другое / неправильное значение?

1 ответ

Решение

Sigar сообщает об обмене, используя:

ullTotalPageFile -> Всего подкачки

ullAvailPageFile -> Swap Free

ullTotalPageFile - ullAvailPageFile -> Используемый своп

http://msdn.microsoft.com/en-us/library/aa366770(VS.85).aspx

WMI сообщает об обмене, используя:

swapTotal -> SizeStoredInPagingFiles (Общее количество килобайт, которое может быть сохранено в файлах подкачки операционной системы - 0 (ноль) означает, что файлов подкачки нет. Имейте в виду, что это число не соответствует фактическому физическому размеру файла подкачки на диске.)

swapFree -> FreeSpaceInPagingFiles (Число в килобайтах, которое можно сопоставить с файлами подкачки операционной системы, не вызывая подкачки других страниц.) https://msdn.microsoft.com/en-us/library/aa394239(v=vs.85).aspx

Проблема в том, что: мне кажется, что то, что Windows возвращает Sigar с ullTotalPageFile, представляет собой комбинацию всей виртуальной и физической памяти, а не только виртуальной памяти, как подразумевается в метрике "Всего файла подкачки". ( https://communities.vmware.com/thread/354362)

Более подробно: из-за того, как функции Windows API сообщают о метриках памяти, невозможно точно получить размеры подкачки (виртуальной памяти), поскольку Windows сообщает об общем объеме выделенной памяти, который представляет собой физическую память плюс размеры файла подкачки. Единственным разрешением, которое можно было применить, было расчетное вычитание размеров подкачки с учетом размера страницы и физической памяти.

Другие вопросы по тегам