没有交换时 kswapd 在做什么

Nik*_*nov 7 linux swap top

顶部看起来像这样:

KiB Mem :  3989652 total,    30976 free,  1480440 used,  2478236 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  2276236 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND      
 3989 root      20   0   51680   3160   1288 D  19.8  0.1  13:13.86 mc           
 5949 root      20   0       0      0      0 D   3.6  0.0  41:33.92 [usb-storage]
  667 root      20   0       0      0      0 S   1.0  0.0   8:37.38 [kswapd0]    
Run Code Online (Sandbox Code Playgroud)

我故意关闭了交换。上面的输出是在“KiB Swap total”变成 0 几分钟后捕获的。 有一个正在运行的进程从 NFS 共享复制到 USB 硬盘驱动器(即 mc)

kswapd 继续使用大约 1% 的 CPU 时间。为什么?

Zaz*_*Zaz 12

许多进程具有由文件支持的内存。即使您没有交换空间,也可以将这些数据交换到文件中。

请参阅:AskUbuntu » 为什么 kswapd0 在没有交换的计算机上运行?

  • 换句话说,kswapd 不仅服务于 RAM 扩展又名“交换”,而且还服务于 linux 中的 mmap 和其他与内存分页相关的功能。 (2认同)