Что такое столбец Faults в 'top'?
Я пытаюсь загрузить Xcode (на версию El Capitan), и он, кажется, застрял. Когда я запускаю "top", я вижу процесс с именем "storeownloadd", и столбец "STATE" чередуется между режимами ожидания, зависания и работы. "НЕДОСТАТКИ" имеют быстро увеличивающееся число со знаком плюс. Колонка "НЕДОСТАТКИ" теперь превышает 400 000 и увеличивается. кроме "top", я не вижу признаков активности загрузки. Означает ли это, что что-то не так? Вот снимок экрана:
Processes: 203 total, 2 running, 10 stuck, 191 sleeping, 795 threads 11:48:14
Load Avg: 4.72, 3.24, 1.69 CPU usage: 56.54% user, 6.41% sys, 37.3% idle SharedLibs: 139M resident, 19M data, 20M linkedit. MemRegions: 18620 total, 880M resident, 92M private, 255M shared. PhysMem: 7812M used (922M wired), 376M unused.
VM: 564G vsize, 528M framework vsize, 0(0) swapins, 512(0) swapouts. Networks: packets: 122536/172M in, 27316/2246K out. Disks: 78844/6532M read, 240500/6746M written.
PID COMMAND %CPU TIME #TH #WQ #PORT MEM PURG CMPRS PGRP PPID STATE BOOSTS %CPU_ME %CPU_OTHRS UID FAULTS COW MSGSENT MSGRECV SYSBSD SYSMACH
354 storedownloadd 0.3 00:47.58 16 5 200 255M 0B 0B 354 1 sleeping *3[1] 155.53838 0.00000 501 412506+ 54329 359852+ 6620+ 2400843+ 1186426+
57 UserEventAgent 0.0 00:00.35 22 17 378 4524K+ 0B 0B 57 1 sleeping *0[1] 0.23093 0.00000 0 7359+ 235 15403+ 7655+ 24224+ 17770
384 Terminal 3.3 00:12.02 10 4 213 34M+ 12K 0B 384 1 sleeping *0[42] 0.11292 0.04335 501 73189+ 482 31076+ 9091+ 1138809+ 72076+
1 ответ
Когда top
сообщает ОТКАЗЫ, это относится к "сбоям страницы", а именно:
Количество основных сбоев страниц, которые произошли для задачи. Ошибка страницы возникает, когда процесс пытается прочитать или записать виртуальную страницу, которой в данный момент нет в его адресном пространстве. Основная ошибка страницы - когда доступ к диску связан с тем, чтобы сделать эту страницу доступной.
Если приложение пытается получить доступ к адресу на странице памяти, который в данный момент не находится в физической памяти, происходит сбой страницы. Когда это происходит, система виртуальной памяти вызывает специальный обработчик ошибок страницы, чтобы немедленно отреагировать на ошибку. Обработчик сбоев страниц останавливает выполнение кода, находит свободную страницу физической памяти, загружает страницу, содержащую данные, необходимые с диска, обновляет таблицу страниц и, наконец, возвращает управление программе - которая затем может нормально обращаться к адресу памяти, Этот процесс известен как пейджинг.
Незначительные сбои страниц могут быть распространены в зависимости от кода, который пытается выполнить, и текущей доступности памяти в системе, однако, существуют также разные уровни (второстепенный, главный, недействительный), которые более подробно описаны в ссылки ниже.