![当没有交换时 kswapd 在做什么](https://linux22.com/image/1486091/%E5%BD%93%E6%B2%A1%E6%9C%89%E4%BA%A4%E6%8D%A2%E6%97%B6%20kswapd%20%E5%9C%A8%E5%81%9A%E4%BB%80%E4%B9%88.png)
顶部看起来像这样:
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]
我故意关闭了交换。上面的输出是在“KiB Swap total”变为 0 几分钟后捕获的。有一个正在运行的进程,它将从 NFS 共享复制到 USB 硬盘(即 mc)
kswapd 持续使用大约 1% 的 CPU 时间。为什么?
答案1
许多进程的内存都由文件支持。即使没有交换空间,这些数据也可以交换到文件中。