Для создания отчетов по статистике ограниченного выделения ресурсов используется команда rcapstat. Создание отчетов командой rcapstat описано в разделе Контроль использования ресурсов командой rcapstat . В этом разделе также описываются заголовки столбцов отчета. Эта информация также представлена на справочной странице rcapstat(1).
В следующих подразделах приводятся примеры создания отчетов в различных целях.
В этом примере ограничения определены для двух проектов, связанных с двумя пользователями. Ограничение для user1 равно 50 Мб, а для user2 – 10 Мб.
Следующая команда создает пять отчетов с 5-секундным интервалом выборки.
user1machine% rcapstat 5 5 id project nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 50M 0K 3312K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id project nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id project nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K id project nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K id project nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K |
Первые три строки результата составляют первый отчет, содержащий информацию об ограничении и о двух рассматриваемых проектах, а также статистику подкачки страниц с момента запуска rcapd. В столбцах at и pg содержится положительное число для user1 и нуль для user2; это означает, что в определенный момент в истории демона user1 превысил ограничение, а в случае user2 этого не произошло.
В последующих отчетах особой активности не наблюдается.
В следующем примере показан проект user1, RSS которого превосходит ограничение.
Следующая команда создает пять отчетов с 5-секундным интервалом выборки.
user1machine% rcapstat 5 5 |
id project nproc vm rss cap at avgat pg avgpg 376565 user1 3 6249M 6144M 6144M 690M 220M 5528K 2764K 376565 user1 3 6249M 6144M 6144M 0M 131M 4912K 1637K 376565 user1 3 6249M 6171M 6144M 27M 147M 6048K 2016K 376565 user1 3 6249M 6146M 6144M 4872M 174M 4368K 1456K 376565 user1 3 6249M 6156M 6144M 12M 161M 3376K 1125K |
Три процесса проекта user1 активно используют физическую память. Положительные значения в столбце pg указывают, что rcapd постоянно выполняет подкачку страниц памяти, пытаясь реализовать ограничение путем снижения потребления физической памяти процессами проекта. Однако демону rcapd не удается удержать RSS ниже порогового значения. На это указывают переменчивые значения rss, не отражающие соответствующего снижения. Сразу же после выполнения постраничного вывода памяти она снова используется рабочей нагрузкой, и счетчик RSS снова увеличивается. Это означает, что активно используется вся резидентная память проекта, и размер рабочего набора (WSS) превышает ограничение. Таким образом, для поддержания ограничения демону rcapd приходится выполнять постраничный вывод части рабочего набора. В этих условиях в системе будет по-прежнему наблюдаться высокая частота ошибок отсутствия страниц и связанная с этим высокая нагрузка на ввод/вывод, пока не будет выполнено одно из перечисленных ниже действий:
уменьшение WSS;
повышение значения ограничения;
изменение приложением режима доступа к памяти.
В этой ситуации сокращение интервала выборки может привести к снижению расхождения между значением RSS и значением ограничения путем более частой выборки рабочей нагрузки и реализации ограничений демоном rcapd.
Ситуация отсутствия страницы возникает, когда требуется создать новую страницу или получить страницу из устройства подкачки.
Следующий пример служит продолжением предыдущего примера, и в нем используется тот же проект.
В предыдущем примере показано, что использование физической памяти проектом user1 превышает значение, допускаемое соответствующим ограничением. В этом примере показан объем памяти, требуемый под задачи проекта.
user1machine% rcapstat 5 5 id project nproc vm rss cap at avgat pg avgpg 376565 user1 3 6249M 6144M 6144M 690M 0K 689M 0K 376565 user1 3 6249M 6144M 6144M 0K 0K 0K 0K 376565 user1 3 6249M 6171M 6144M 27M 0K 27M 0K 376565 user1 3 6249M 6146M 6144M 4872K 0K 4816K 0K 376565 user1 3 6249M 6156M 6144M 12M 0K 12M 0K 376565 user1 3 6249M 6150M 6144M 5848K 0K 5816K 0K 376565 user1 3 6249M 6155M 6144M 11M 0K 11M 0K 376565 user1 3 6249M 6150M 10G 32K 0K 32K 0K 376565 user1 3 6249M 6214M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K |
В середине цикла ограничение для проекта user1 было увеличено с 6 ГБ до 10 ГБ. Это увеличение позволяет прекратить принудительное ограничение и нарастить размер резидентного набора, ограниченный только другими процессами и объемом памяти в компьютере. Столбец rss может стабилизироваться на размере рабочего набора проекта (WSS), в этом примере – 6247M. Это минимальное значение ограничения, позволяющее процессам проекта работать без постоянных ошибок отсутствия страниц.
Несмотря на то что для user1 установлено ограничение 6 Гб, в каждом 5-секундном интервале выборки RSS снижается, а ввод-вывод растет по мере постраничного вывода демоном rcapd части памяти рабочей нагрузки. Вскоре после завершения постраничного вывода задача, требующая наличия этих страниц для своей работы, выполняет обратный постраничный ввод. Цикл повторяется, пока ограничение не увеличивается до 10 Гб примерно в середине примера. RSS затем стабилизируется на 6,1 Гб. Поскольку RSS рабочей нагрузки теперь не превышает ограничение, подкачки страниц не происходит. Ввод-вывод, связанный с подкачкой страниц, также прекращается. Таким образом, для работы проекта в момент наблюдения требуется 6,1 Гб.
Также см. справочные страницы vmstat(1M) и iostat(1M).
Параметр -g команды rcapstat может использоваться для создания следующих отчетов:
текущее использование физической памяти как процент от физической памяти, установленной в системе;
Системный порог принудительного ограничения памяти, заданный командой rcapadm;
Параметр -g позволяет вывести строку использования памяти и принудительного ограничения в конце отчета по каждому интервалу.
# rcapstat -g id project nproc vm rss cap at avgat pg avgpg 376565 rcap 0 0K 0K 10G 0K 0K 0K 0K physical memory utilization: 55% cap enforcement threshold: 0% id project nproc vm rss cap at avgat pg avgpg 376565 rcap 0 0K 0K 10G 0K 0K 0K 0K physical memory utilization: 55% cap enforcement threshold: 0% |