Назад | Перейти на главную страницу

Общее количество элементов RSS намного превышает физическую память + свопинг в Solaris

Может ли сумма всего rss значения активных процессов (состояние S или O) быть когда-нибудь намного больше, чем общая физическая память + своп?

Под физической памятью я подразумеваю результат prtdiag | grep Memory

И размер свопа, я имею в виду результат swap -l.

Без труда.

Физическая память, совместно используемая между процессами - либо разделяемая память IPCS, либо некоторые из mmap()d физическая память, используемая разделяемыми объектами - будет учитываться в RSS каждого процесса, который отображает эту память в свое адресное пространство. Нет простого способа учесть это, когда отправной точкой для подсчета использования памяти является перечисление процессов - вам нужно будет выполнить сопоставление виртуальных страниц с физическими для всех виртуальных страниц для каждого процесса, а затем устранить дубликаты, надеясь, что сопоставления памяти будут количество обследованных не изменилось при подсчете итогов.

Хорошим примером этого является сервер базы данных Oracle с большим SGA, который реализован в Solaris с использованием разделяемой памяти IPCS. Если 20 процессов сопоставляют SGA с общей памятью объемом 32 ГБ, это добавит 640 ГБ к сумме RSS процессов, даже если используется только 32 ГБ ОЗУ.