Linux性能优化实战学习笔记:第二十三讲=====文件系统和磁盘IO

Linux性能优化实战学习笔记:第二十三讲

一、索引节点和目录

1、索引节点

2、目录项

3、关系

为了帮助你理解目录项、索引节点以及文件数据的关系,我画了一张示意图,你可以对照这张图,来回忆刚刚讲过的内容,把只知识和细节串联起来

 

4、Slabs

5、系统格式化

二、虚拟文件系统

1、Linux文件系统的架构图

 

这里、我画了一张Linux文件系统的架构图,帮你更好地理解系统调用、VFS、缓存、文件系统以及块存储之间的关系图

2、基于磁盘的文件系统

2、基于内存的文件系统

3、网络文件系统

三、文件系统I/O

1、cat过程解析

2、标准库缓存

3、操作系统页缓存

4、是否阻塞自身运行

5、等待响应结果

四、性能观测

1、容量

1、查看文件系统的磁盘空间使用情况

?

1

2

3

[root@luoahong ~]# df /dev/sda1

Filesystem     1K-blocks  Used Available Use% Mounted on

devtmpfs         4010852     0   4010852   0% /dev

2、df -h获得更好的可读性

?

1

2

3

[root@luoahong ~]# df -h /dev/sda1

Filesystem      Size  Used Avail Use% Mounted on

devtmpfs        3.9G     0  3.9G   0% /dev

3、查看索引节点使用情况

?

1

2

3

[root@luoahong ~]# df -i /dev/sda1

Filesystem      Inodes IUsed   IFree IUse% Mounted on

devtmpfs       1002713   401 1002312    1% /dev

4、小结

2、缓存

1、free输出的Cache是页缓存和可回收Slab缓存的和

?

1

2

3

4

[root@luoahong ~]# cat /proc/meminfo | grep -E "SReclaimable|Cached"

Cached:           314664 kB

SwapCached:            0 kB

SReclaimable:      37348 kB

2、所有目录项和各文件系统索引节点的缓存情况:

?

1

2

3

4

5

6

7

8

9

10

11

[root@luoahong ~]# cat /proc/slabinfo | grep -E '^#|dentry|inode'

# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>

ovl_inode             98     98    664   49    8 : tunables    0    0    0 : slabdata      2      2      0

xfs_inode           7740   8424    896   36    8 : tunables    0    0    0 : slabdata    234    234      0

mqueue_inode_cache     36     36    896   36    8 : tunables    0    0    0 : slabdata      1      1      0

hugetlbfs_inode_cache     53     53    608   53    8 : tunables    0    0    0 : slabdata      1      1      0

sock_inode_cache    2550   2550    640   51    8 : tunables    0    0    0 : slabdata     50     50      0

shmem_inode_cache   1764   1833    696   47    8 : tunables    0    0    0 : slabdata     39     39      0

proc_inode_cache    2945   3038    656   49    8 : tunables    0    0    0 : slabdata     62     62      0

inode_cache        25746  25872    584   56    8 : tunables    0    0    0 : slabdata    462    462      0

dentry             39767  42966    192   42    2 : tunables    0    0    0 : slabdata   1023   1023      0

3、找到内存占用最多的缓存类型

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

[root@luoahong ~]# slabtop

 

 Active / Total Objects (% used)    : 384466 / 393627 (97.7%)

 Active / Total Slabs (% used)      : 7262 / 7262 (100.0%)

 Active / Total Caches (% used)     : 95 / 140 (67.9%)

 Active / Total Size (% used)       : 107507.27K / 111249.76K (96.6%)

 Minimum / Average / Maximum Object : 0.01K / 0.28K / 16.62K

 

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME                  

 48420  48420 100%    0.13K    807   60  6456K kernfs_node_cache

 43008  39809  92%    0.19K   1024   42  8192K dentry

 33799  33799 100%    0.05K    463   73  1852K Acpi-Parse

 25872  25746  99%    0.57K    462   56     14784K inode_cache

 25536  23690  92%    0.50K    399   64     12768K kmalloc-512

 21760  21760 100%    0.03K    170  128   680K kmalloc-32

 18688  18688 100%    0.02K     73  256   292K kmalloc-16

 12800  12764  99%    0.20K    320   40  2560K vm_area_struct

 12352  11907  96%    0.06K    193   64   772K anon_vma_chain

 10248  10248 100%    0.07K    183   56   732K Acpi-Operand

  9920   9211  92%    0.06K    155   64   620K kmalloc-64

  9786   9786 100%    0.09K    233   42   932K kmalloc-96

  9728   9728 100%    0.01K     19  512        76K kmalloc-8

  9024   8704  96%    0.25K    141   64  2256K filp

  8992   8844  98%    2.00K    562   16     17984K kmalloc-2k

  8424   7740  91%    0.88K    234   36  7488K xfs_inode

  8262   8262 100%    0.04K     81  102   324K Acpi-Namespace

  7590   7590 100%    0.09K    165   46   660K anon_vma

  5208   5208 100%    0.57K     93   56  2976K radix_tree_node

  4128   3841  93%    1.00K    129   32  4128K kmalloc-1k

  3904   3904 100%    0.12K     61   64   488K pid

  3776   3520  93%    0.25K     59   64   944K skbuff_head_cache

  3740   3740 100%    0.05K     44   85   176K ftrace_event_field

  3276   3276 100%    0.19K     78   42   624K cred_jar

  3038   2945  96%    0.64K     62   49  1984K proc_inode_cache

  2880   2288  79%    0.12K     45   64   360K kmalloc-128

4、小结

 

作者:罗阿红 出处:http://www.cnblogs.com/luoahong/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值