Linux-内存和磁盘管理

内存使用率查看

  • free -b | -k | -m | -g 分别代表 以 BYTE KB MB GB 为单位显示使用率
  • top 动态查看内存使用情况

磁盘使用率查看

  • fdisk 用于创建和维护分区
    fdisk -l 查看所有分区
  • df查看磁盘使用统计情况.
  • du 查看实际占用磁盘空间.

    du == disk usage (磁盘使用量,占用的磁盘空间)
    du 的基本使用
    du -s     #s参数是可以统计占硬盘空间大小的
    如 du -skh b.txt
    -k或--kilobytes 以1024 bytes为单位。
    -h或--human-readable 以K,M,G为单位,提高信息的可读性
    -s或--summarize 统计目录或文件

    $$ 文件磁盘占用空间 ≠ 文件大小 $$

    linux的文件系统有 '块' (block)这个概念,一般默认块的大小是4k,即一个文件大小只有1byte,那么它仍会独自占用一个块,文件为6k它会占用两个块,所以在块大小为4k的linux系统中,每个文件所占用的磁盘空间都会是n*4k,这样一般情况下一个文件的磁盘使用了会比文件实际大小高出(0k~4k).
    使用命令 ls -l 查看的就是文件的实际大小,使用du 查看的就是文件的磁盘占用.
    但是也有特殊情况,当文件有比较大的 '黑洞' 时,磁盘的占用空间会比文件实际大小 小

    黑洞产生的原因
    在向一个文件中写数据的时候,文件偏移量可以大于文件的当前长度,在这种情况下,
    对该文件的下一次写将加长该文件,并在文件中构成一个空洞,这一定是允许的。
    位于文件中但没有写过的字节都被读为0.文件中的空洞并不要求在磁盘上占用存储区。
    具体处理方式与文件系统的实现有关,当定位超出文件尾端之后写时,对于新写的数据
    需要分配磁盘块,但是对于原文件尾端和新开始写位置之间的部分则不需要分配磁盘块。
     
    例如:
    用dd if=/dev/zero of=a.out seek=1023 bs=1M count=1创建a.out文件后,
    用ls查看a.out的文件大小为1G,用du查看a.out文件大小为1M。
    

你可能感兴趣的:(linux操作系统程序员运维)