浅析ext3删除文件慢的原因


做运维的估计都知道使用ext3文件系统时删除大文件很慢,那么大家有没有想过为什么呢?我也有过同样的疑问,于是查了相关资料并找到了一些理由。

在ext系列的文件系统中有一个很重要的概念inode(它与文件独立存在),它维护了文件的相关属性信息。

  1. struct ext3_inode {  
  2.  __u16 i_mode;    /* File mode */  
  3.  __u16 i_uid;     /* Low 16 bits of Owner Uid */  
  4.  __u32 i_size;    /* 文件大小,单位是 byte */  
  5.  __u32 i_atime;   /* Access time */  
  6.  __u32 i_ctime;   /* Creation time */  
  7.  __u32 i_mtime;   /* Modification time */  
  8.  __u32 i_dtime;   /* Deletion Time */  
  9.  __u16 i_gid;     /* Low 16 bits of Group Id */  
  10.  __u16 i_links_count;          /* Links count */  
  11.  __u32 i_blocks;               /* blocks 计数 */  
  12.  __u32 i_flags;                /* File flags */  
  13.  __u32 l_i_reserved1;          /* 可以忽略 */  
  14.  __u32 i_block[EXT3_N_BLOCKS]; /* 一组 block 指针 */  
  15.  __u32 i_generation;           /* 可以忽略 */  
  16.  __u32 i_file_acl;             /* 可以忽略 */  
  17.  __u32 i_dir_acl;              /* 可以忽略 */  
  18.  __u32 i_faddr;                /* 可以忽略 */  
  19.  __u8  l_i_frag;               /* 可以忽略 */  
  20.  __u8  l_i_fsize;              /* 可以忽略 */  
  21.  __u16 i_pad1;                 /* 可以忽略 */  
  22.  __u16 l_i_uid_high;           /* 可以忽略 */  
  23.  __u16 l_i_gid_high;           /* 可以忽略 */  
  24.  __u32 l_i_reserved2;          /* 可以忽略 */  
  25. };  
  • 1
  • 2
  • 下一页

相关内容