Что "под капотом" и сколько стоит Minor Page Faults?
От: VladCore  
Дата: 26.05.20 18:39
Оценка:
1. Вот смотрю я некую фоновую службу

За 10 минут работы у нее натикало 270 тыс minor page faults и оно растет постоянно.

А сколько стоит в ЦПУ эти minor page faults?

Или другими словами что именно еще дополнительно происходит когда обращение к сранице памяти инкрементит minor page faults?
Оно просто какой-то флаг для страницы меняет?

смотрел доки и по /proc/pid/stat и по getrusage но там ничего и совершенно пусто.

2. У той же фоновой службы при старте "натикало" 137 (НЕ тысяч) page faults и больше не "тикают". почему так мало? сами (elf и readonly mmf) весят десяток мегабайт. должно же быть 256 major page faults на каждый мегабайт отображенный в память?
Отредактировано 28.05.2020 22:39 VladCore . Предыдущая версия . Еще …
Отредактировано 26.05.2020 18:40 VladCore . Предыдущая версия .
Re: Что "под капотом" и сколько стоит Minor Page Faults?
От: ononim  
Дата: 26.05.20 23:34
Оценка: 3 (1)
VC>За 10 минут работы у нее натикало 270 тыс minor page faults и оно растет постоянно.
VC>А сколько стоит в ЦПУ эти minor page faults?
VC>смотрел доки и по /proc/pid/stat и по getrusage но там ничего и совершенно пусто.
Первая же ссылка в гугле:

A minor page fault occurs when a process needs data that is in memory and is assigned to another process. Minor page faults share memory pages between multiple processes — no additional data needs to be read from disk to memory


VC>2. У той же фоновой службы при старте "натикало" 137 (НЕ тысяч) page faults и больше не "тикают". почему так мало? сами (elf и readonly mmf) весят десяток мегабайт. должно же быть 256 major page faults на каждый мегабайт отображенный в память?

Например потому что do_fault_around
Или может эти все мегабайты просто не нужны.
Как много веселых ребят, и все делают велосипед...
Re: Что "под капотом" и сколько стоит Minor Page Faults?
От: lunc  
Дата: 06.07.20 19:14
Оценка: 3 (1)
Здравствуйте, VladCore, Вы писали:

VC>1. Вот смотрю я некую фоновую службу


VC>За 10 минут работы у нее натикало 270 тыс minor page faults и оно растет постоянно.


VC>А сколько стоит в ЦПУ эти minor page faults?


Плюс к предыдущему ответу, это маппинг страницы в page table текущего процесса — здесь как повезет: сама page tables на x86-64 из 4х уровней — может на самый нижний уровень замапится, а может и новыя ветка дерева от корня вырасти. Каждый уровень дерева — это страница памяти, т.е. будет салоцированна страница памяти. В свою очередь, это дергается buddy allocator, который может позвать сканирование зон памяти. В общем, может быть довольно тяжелый процесc.

VC>Или другими словами что именно еще дополнительно происходит когда обращение к сранице памяти инкрементит minor page faults?

VC>Оно просто какой-то флаг для страницы меняет?

VC>смотрел доки и по /proc/pid/stat и по getrusage но там ничего и совершенно пусто.


VC>2. У той же фоновой службы при старте "натикало" 137 (НЕ тысяч) page faults и больше не "тикают". почему так мало? сами (elf и readonly mmf) весят десяток мегабайт. должно же быть 256 major page faults на каждый мегабайт отображенный в память?


Я бы посоветовал запустить perf top дял event'а minor-faults
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.