TPM*_*TPM 6 bash terminal page-fault
我正在尝试下载 Xcode(到 El Capitan 版本),但它似乎卡住了。当我运行“top”时,我看到一个名为“storedownloadd”的进程,“STATE”列在睡眠、卡住和运行之间交替。'FAULTS' 有一个快速增加的数字,后面有一个加号。'FAULTS' 列现在超过 400,000 并且还在增加。除了“顶部”,我看不到下载活动的迹象。这是否表明有什么不对劲?这是一个屏幕截图:
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+
Run Code Online (Sandbox Code Playgroud)
当top
报告 FAULTS 时,它指的是“页面错误”,更具体地说:
任务发生的主要页面错误数。当进程试图读取或写入当前不在其地址空间中的虚拟页面时,就会发生页面错误。主要页面错误是指在使该页面可用时涉及磁盘访问。
如果应用程序尝试访问当前不在物理 RAM 中的内存页面上的地址,则会发生页面错误。当这种情况发生时,虚拟内存系统调用一个特殊的页面错误处理程序来立即响应错误。页面错误处理程序停止执行代码,定位物理内存的空闲页面,从磁盘加载包含所需数据的页面,更新页表,最后将控制权返回给程序——然后程序可以正常访问内存地址. 此过程称为分页。
次要页面错误可能很常见,具体取决于尝试执行的代码和系统上当前的内存可用性,但是,也有需要注意的不同级别(次要、主要、无效),详细描述请参见下面的链接。