哪个内核结构代表 free/top/vmstat 报告的 tmpfs 和 cached/buffer 的内存?

哪个内核结构代表 free/top/vmstat 报告的 tmpfs 和 cached/buffer 的内存?

好的,这是接下来的问题关联。当我在 t 上创建 tmpfs 文件系统并分配 100MB 的空间时,为什么我在 slabtop 或 /proc/slabinfo 中看不到它。我想可能是因为它会被 malloc-2048 等以小块的形式分配,但我没有看到任何证据。

接下来我尝试查看它是否是内核线程,但使用以下命令也无济于事:

ps -eF --sort vsize

那么,tmpfs 使用什么样的 slab 缓存?

最好检查一下以下内容:

 Active / Total Objects (% used)    : 25717 / 34292 (75.0%)
 Active / Total Slabs (% used)      : 1497 / 1497 (100.0%)
 Active / Total Caches (% used)     : 94 / 140 (67.1%)
 Active / Total Size (% used)       : 4825.17K / 5860.13K (82.3%)
 Minimum / Average / Maximum Object : 0.01K / 0.17K / 128.00K

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME                   
  6728   2476  36%    0.13K    232  29   928K dentry_cache
  3240   3223  99%    0.05K     45  72   180K buffer_head
  3024   2949  97%    0.04K     36  84   144K sysfs_dir_cache
  2162   2137  98%    0.08K     47  46   188K vm_area_struct



[root@krite ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           249        187         62          0          2        153
-/+ buffers/cache:         31        218
Swap:         3074          0       3074 

那么问题是,这些记忆从何而来?

另外,也许这是一个单独的问题,但是如何查看 free/top/vmstat 报告的缓存/缓冲区的细分情况?这三个程序都使用来自 procps 的相同库。有没有办法查看缓冲/缓存的内存连接到哪些磁盘/io 操作(即哪个磁盘)?

答案1

Tempfs 根据需要使用交换空间。在您向其中放入某些内容之前,它可能只分配了挂载结构。

相关内容