精华内容
下载资源
问答
  • Linux系统当进行文件写操作时,并不会将数据立马写入磁盘,而是写写到缓存,等待达到占用内存一定比例或超过一定时间才会批量将这些缓存数据写入磁盘,这样可以减少IO操作,提升性能和磁盘寿命。如果数据还没来得及...

    Linux系统当进行文件写操作时,并不会将数据立马写入磁盘,而是写写到缓存,等待达到占用内存一定比例或超过一定时间才会批量将这些缓存数据写入磁盘,这样可以减少IO操作,提升性能和磁盘寿命。如果数据还没来得及写入磁盘发生硬件掉电,这些数据就会丢失。应用可以调用sync实时将内容写入磁盘避免丢失。排查丢失问题可以在断电前执行sync命令,看能不能复现,若无法复现,说明就是缓存没有及时写入磁盘导致。

    我们可以调整系统一些参数来改善此问题,但需要均衡IO性能与数据安全。

    1. /proc/sys/vm/dirty_ratio

    这个参数控制文件系统的文件系统写缓冲区的大小,单位是百分比,表示系统内存的百分比,表示当写缓冲使用到系统内存多少的时候,开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。但是,当你需要持续、恒定的写入场合时,应该降低其数值

     

    2. /proc/sys/vm/dirty_background_ratio

    这个参数控制文件系统的pdflush进程,在何时刷新磁盘。单位是百分比,表示系统内存的百分比,意思是当写缓冲使用到系统内存多少的时候,pdflush开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。但是,当你需要持续、恒定的写入场合时,应该降低其数值

     

    3. /proc/sys/vm/dirty_writeback_centisecs 

    这个参数控制内核的脏数据刷新进程pdflush的运行间隔。单位是 1/100 秒。缺省数值是500,也就是 5 秒。如果你的系统是持续地写入动作,那么实际上还是降低这个数值比较好,这样可以把尖峰的写操作削平成多次写操作

     

    4. /proc/sys/vm/dirty_expire_centisecs

    这个参数声明Linux内核写缓冲区里面的数据多“旧”了之后,pdflush进程就开始考虑写到磁盘中去。单位是 1/100秒。缺省是 3000,也就是 30 秒的数据就算旧了,将会刷新磁盘。对于特别重载的写操作来说,这个值适当缩小也是好的,但也不能缩小太多,因为缩小太多也会导致IO提高太快
     

    缓存数据存入磁盘的最长时间,如果这段时间写不完,就会报异常停止写,这样缓存数据会不断积累,导致内存爆掉。

    echo 0 > /proc/sys/kernel/hung_task_timeout_secs

    调低百分比,让缓存尽早的写入磁盘,这样缓存不会积累大量的数据,才开始写入磁盘

    echo 5 > /proc/sys/vm/dirty_background_ratio

    echo 10 > /proc/sys/vm/dirty_ratio

     

    Android修改这些参数默认值:

    system/core/rootdir/init.rc    

    570     # Tweak background writeout
    571     write /proc/sys/vm/dirty_expire_centisecs 200
    572     write /proc/sys/vm/dirty_background_ratio  5

    另一方面可以修改mount 挂载参数,使用sync同步模式,直接将文件写入磁盘,但会降低性能

    参考:

    linux 磁盘cache参数设置_b779789251的博客-CSDN博客 https://blog.csdn.net/b779789251/article/details/94559911

    linux调整缓存写入磁盘的时间,减少磁盘爆掉的可能性 - 脚本小娃子 - 博客园 https://www.cnblogs.com/shengulong/p/9265145.html

    深入解析Linux下的磁盘缓存机制与SSD的写入放大问题_LINUX_操作系统_脚本之家 https://www.jb51.net/LINUXjishu/405114.html

    https://blog.csdn.net/chuanzhilong/article/details/76020517

    【集群实战】NFS网络文件共享服务2-mount挂载(参数,优化)--async sync dirsync等参数讲解

    https://www.cnblogs.com/zoe233/p/12018875.html

    展开全文
  • Linux下的磁盘缓存

    2014-09-01 00:37:10
    前段时间在开发一个使用SSD做缓存的系统,在高速写入数据时会出现大量的磁盘缓存。太多的磁盘缓存如果没有及时的写入磁盘中,在机器出现问题时是非常危险的,这样会导致很多的数据丢失,但是如果实时的将数据刷入...
     
    
    前段时间在开发一个使用SSD做缓存的系统,在高速写入数据时会出现大量的磁盘缓存。太多的磁盘缓存如果没有及时的写入磁盘中,在机器出现问题时是非常危险的,这样会导致很多的数据丢失,但是如果实时的将数据刷入磁盘中,这样写入效率有太低了。为了弄明白Linux系统的这种磁盘写入特性,最近深入的学习了一下。
        VFS(Virtual File System)的存在使得Linux可以兼容不同的文件系统,例如ext3、ext4、xfs、ntfs等等,其不仅具有为所有的文件系统实现一个通用的外接口的作用,还具有另一个与系统性能相关的重要作用——缓存。VFS中引入了高速磁盘缓存的机制,这属于一种软件机制,允许内核将原本存在磁盘上的某些信息保存在RAM中,以便对这些数据的进一步访问能快速进行,而不必慢速访问磁盘本身。高速磁盘缓存可大致分为以下三种:
    • 目录项高速缓存——主要存放的是描述文件系统路径名的目录项对象
    • 索引节点高速缓存——主要存放的是描述磁盘索引节点的索引节点对象
    • 页高速缓存——主要存放的是完整的数据页对象,每个页所包含的数据一定属于某个文件,同时,所有的文件读写操作都依赖于页高速缓存。其是Linux内核所使用的主要磁盘高速缓存。
    正是由于缓存的引入,所以VFS文件系统采用了文件数据延迟写的技术,因此,如果在调用系统接口写入数据时没有使用同步写模式,那么大多数据将会先保存在缓存中,待等到满足某些条件时才将数据刷入磁盘里。

    内核是如何将数据刷入磁盘的呢?在看完以下两点后就能得到答案。

    1. 把脏页写入磁盘
        正如我们所了解的,内核不断用包含块设备数据的页填充页高速缓存。只要进程修改了数据,相应的页就被标记为脏页,即把它的PG_dirty标志位置。
        Unix系统允许把脏缓冲区写入块设备的操作延迟执行,因为这种策略可以显著地提高系统的性能。对高速缓存中的页的几次写操作可能只需对相应的磁盘块进行一次缓慢的物理更新就可以满足。此外,写操作没有读操作那么紧迫,因为进程通常是不会因为延迟写而挂起,而大部分情况都因为延迟读而挂起。正是由于延迟写,使得任一物理块设备平均为读请求提供服务将多于写请求。
    一个脏页可能直到最后一刻(即直到系统关闭时)都一直逗留在主存中。然而,从延迟写策略的局限性来看,它有两个主要的缺点:
      一、如果发生了硬件错误或者电源掉电的情况,那么就无法再获得RAM的内容,因此,从系统启动以来对文件进行的很多修改就丢失了。
      二、页高速缓存的大小(由此存放它所需的RAM的大小)就可要很大——至少要与所访问块设备的大小不同。
    因此,在下列条件下把脏页刷新(写入)到磁盘:
    • 页高速缓存变得太满,但还需要更多的页,或者脏页的数量已经太多。
    • 自从页变成脏页以来已过去太长时间。
    • 进程请求对块设备或者特定文件任何待定的变化都进行刷新。通过调用sync()、fsync()或者fdatasync()系统调用来实现。
    缓冲区页的引入是问题更加复杂。与每个缓冲区页相关的缓冲区首部使内核能够了解每个独立块缓冲区的状态。如果至少有一个缓冲区首部的PG_Dirty标志被置位,就应该设置相应缓冲区页的PG_dirty标志。当内核选择要刷新的缓冲区时,它扫描相应的缓冲区首部,并只把脏块的内容有效的写到磁盘。一旦内核把缓冲区的所有脏页刷新到磁盘,就把页的PG_dirty标志清0。

    2. pdflush内核线程
        早期版本的Linux使用bdfllush内核线程系统地扫描页高速缓存以搜索要刷新的脏页,并且使用另一个内核线程kupdate来保证所有的页不会“脏”太长时间。Linux 2.6用一组通用内核线程pdflush替代上述两个线程。
    这些内核线程结构灵活,它们作用于两个参数:一个指向线程要执行的函数的指针和一个函数要用的参数。系统中pdflush内核线程的数量是要动态调整的:pdflush线程太少时就创建,太多时就杀死。因为这些内核线程所执行的函数可以阻塞,所以创建多个而不是一个pdflush内核线程可以改善系统性能。
    根据下面的原则控制pdflush线程的产生和消亡:
    • 必须有至少两个,最多八个pdflush内核线程
    • 如果到最近的1s期间没有空闲pdflush,就应该创建新的pdflush线程
    • 如果最近一次pdflush变为空闲的时间超过了1s,就应该删除一个pdflush线程
    所有的pdflush内核线程都有pdflush_work描述符,其数据结构如下:
    类型
    字段
    说明
    struct task_struct
    who
    指向内核线程描述符的指针
    void (*) (unsigned long)
    fn
    内核线程所执行的回调函数
    unsigned long
    arg0
    给回调函数的参数
    struct list head
    list
    pdflush_list链表的链接
    unsigned long
    when_i_went_to_sleep
    当内核线程可用时的时间(以jiffies表示)
    当系统没有要刷新的脏页时,pdflush线程会自动处于睡眠状态,最后由pdflush_operation()函数来唤醒。那么在这个过程中pdflush内核线程主要完成了哪些工作呢?其中一些工作与脏数据的刷新有关。尤其是pdflush通常执行下面的回调函数之一:
        1. background_writeout(): 系统地扫描页高速缓存以搜索要刷新的脏页。
    为了得到需要刷新的脏页,就要彻底的搜索与在磁盘上有映像的索引节点相应的所有address_space对象(是一棵搜索树)。由于页高速缓存可能有大量的页,如果用一个单独的执行流来扫描整个高速缓存,会令CPU和磁盘长时间繁忙,因此,Linux使用一种复杂的机制把对页高速缓存的扫描划分为几个执行流。当内存不足或者用户显式的(用户态进程发出sync()系统调用等)调用请求刷新操作时会执行wakeup_bdflush()函数。wakeup_bdflush()函数会调用pdflush_operation()唤醒pdflush内核线程,并委托它执行回调函数background_writeout()。background_writeout()函数有效的从页高速缓存中获得指定数量的脏页,并把它写回磁盘。此外,执行background_writeout()函数的pdflush内核线程只有在满足以下两个条件下才能被唤醒:一是对页高速缓存中的页内容进行了修改,二是引起脏页部分增加到超过某个脏背景阈值。背景阈值通常设置为系统中所有页的10%,不过可以通过修改文件/proc/sys/vm/dirty_background_ratio来调整该值。
        2. wb_kupdate():检查页高速缓存中是否有“脏”了很久时间的页,避免当一些页很久没有被刷新时发生饥饿危险。
     内核在初始化期间会建立wb_timer动态定时器,其的定时间距为dirty_writeback_centisecs文件中所规定的几百分之一秒(通常是500分之一秒,不过可以通过修改/proc/sys/vm/dirty_writeback_centisecs文件调整该值)。定时器函数会调用pdflush_operation()函数,然后将wb_kupdate()函数的地址传入。wb_kupdate()函数遍历页高速缓存搜索陈旧的脏索引节点,把已保持脏状态时间超过30秒的页都写到磁盘,之后重置定时器。
    展开全文
  • 前段时间在开发一个使用SSD做缓存的系统,在高速写入数据时会出现大量的磁盘缓存。太多的磁盘缓存如果没有及时的写入磁盘中,在机器出现问题时是非常危险的,这样会导致很多的数据丢失,但是如果实时的将数据刷入...
     
    

        前段时间在开发一个使用SSD做缓存的系统,在高速写入数据时会出现大量的磁盘缓存。太多的磁盘缓存如果没有及时的写入磁盘中,在机器出现问题时是非常危险的,这样会导致很多的数据丢失,但是如果实时的将数据刷入磁盘中,这样写入效率有太低了。为了弄明白Linux系统的这种磁盘写入特性,最近深入的学习了一下。
        VFS(Virtual File System)的存在使得Linux可以兼容不同的文件系统,例如ext3、ext4、xfs、ntfs等等,其不仅具有为所有的文件系统实现一个通用的外接口的作用,还具有另一个与系统性能相关的重要作用——缓存。VFS中引入了高速磁盘缓存的机制,这属于一种软件机制,允许内核将原本存在磁盘上的某些信息保存在RAM中,以便对这些数据的进一步访问能快速进行,而不必慢速访问磁盘本身。高速磁盘缓存可大致分为以下三种:
    • 目录项高速缓存——主要存放的是描述文件系统路径名的目录项对象
    • 索引节点高速缓存——主要存放的是描述磁盘索引节点的索引节点对象
    • 页高速缓存——主要存放的是完整的数据页对象,每个页所包含的数据一定属于某个文件,同时,所有的文件读写操作都依赖于页高速缓存。其是Linux内核所使用的主要磁盘高速缓存。
    正是由于缓存的引入,所以VFS文件系统采用了文件数据延迟写的技术,因此,如果在调用系统接口写入数据时没有使用同步写模式,那么大多数据将会先保存在缓存中,待等到满足某些条件时才将数据刷入磁盘里。

    内核是如何将数据刷入磁盘的呢?在看完以下两点后就能得到答案。

    1. 把脏页写入磁盘
        正如我们所了解的,内核不断用包含块设备数据的页填充页高速缓存。只要进程修改了数据,相应的页就被标记为脏页,即把它的PG_dirty标志位置。
        Unix系统允许把脏缓冲区写入块设备的操作延迟执行,因为这种策略可以显著地提高系统的性能。对高速缓存中的页的几次写操作可能只需对相应的磁盘块进行一次缓慢的物理更新就可以满足。此外,写操作没有读操作那么紧迫,因为进程通常是不会因为延迟写而挂起,而大部分情况都因为延迟读而挂起。正是由于延迟写,使得任一物理块设备平均为读请求提供服务将多于写请求。
    一个脏页可能直到最后一刻(即直到系统关闭时)都一直逗留在主存中。然而,从延迟写策略的局限性来看,它有两个主要的缺点:
      一、如果发生了硬件错误或者电源掉电的情况,那么就无法再获得RAM的内容,因此,从系统启动以来对文件进行的很多修改就丢失了。
      二、页高速缓存的大小(由此存放它所需的RAM的大小)就可要很大——至少要与所访问块设备的大小不同。
    因此,在下列条件下把脏页刷新(写入)到磁盘:
    • 页高速缓存变得太满,但还需要更多的页,或者脏页的数量已经太多。
    • 自从页变成脏页以来已过去太长时间。
    • 进程请求对块设备或者特定文件任何待定的变化都进行刷新。通过调用sync()、fsync()或者fdatasync()系统调用来实现。
    缓冲区页的引入是问题更加复杂。与每个缓冲区页相关的缓冲区首部使内核能够了解每个独立块缓冲区的状态。如果至少有一个缓冲区首部的PG_Dirty标志被置位,就应该设置相应缓冲区页的PG_dirty标志。当内核选择要刷新的缓冲区时,它扫描相应的缓冲区首部,并只把脏块的内容有效的写到磁盘。一旦内核把缓冲区的所有脏页刷新到磁盘,就把页的PG_dirty标志清0。

    2. pdflush内核线程
        早期版本的Linux使用bdfllush内核线程系统地扫描页高速缓存以搜索要刷新的脏页,并且使用另一个内核线程kupdate来保证所有的页不会“脏”太长时间。Linux 2.6用一组通用内核线程pdflush替代上述两个线程。
    这些内核线程结构灵活,它们作用于两个参数:一个指向线程要执行的函数的指针和一个函数要用的参数。系统中pdflush内核线程的数量是要动态调整的:pdflush线程太少时就创建,太多时就杀死。因为这些内核线程所执行的函数可以阻塞,所以创建多个而不是一个pdflush内核线程可以改善系统性能。
    根据下面的原则控制pdflush线程的产生和消亡:
    • 必须有至少两个,最多八个pdflush内核线程
    • 如果到最近的1s期间没有空闲pdflush,就应该创建新的pdflush线程
    • 如果最近一次pdflush变为空闲的时间超过了1s,就应该删除一个pdflush线程
    所有的pdflush内核线程都有pdflush_work描述符,其数据结构如下:
    类型
    字段
    说明
    struct task_struct
    who
    指向内核线程描述符的指针
    void (*) (unsigned long)
    fn
    内核线程所执行的回调函数
    unsigned long
    arg0
    给回调函数的参数
    struct list head
    list
    pdflush_list链表的链接
    unsigned long
    when_i_went_to_sleep
    当内核线程可用时的时间(以jiffies表示)
    当系统没有要刷新的脏页时,pdflush线程会自动处于睡眠状态,最后由pdflush_operation()函数来唤醒。那么在这个过程中pdflush内核线程主要完成了哪些工作呢?其中一些工作与脏数据的刷新有关。尤其是pdflush通常执行下面的回调函数之一:
        1. background_writeout(): 系统地扫描页高速缓存以搜索要刷新的脏页。
    为了得到需要刷新的脏页,就要彻底的搜索与在磁盘上有映像的索引节点相应的所有address_space对象(是一棵搜索树)。由于页高速缓存可能有大量的页,如果用一个单独的执行流来扫描整个高速缓存,会令CPU和磁盘长时间繁忙,因此,Linux使用一种复杂的机制把对页高速缓存的扫描划分为几个执行流。当内存不足或者用户显式的(用户态进程发出sync()系统调用等)调用请求刷新操作时会执行wakeup_bdflush()函数。wakeup_bdflush()函数会调用pdflush_operation()唤醒pdflush内核线程,并委托它执行回调函数background_writeout()。background_writeout()函数有效的从页高速缓存中获得指定数量的脏页,并把它写回磁盘。此外,执行background_writeout()函数的pdflush内核线程只有在满足以下两个条件下才能被唤醒:一是对页高速缓存中的页内容进行了修改,二是引起脏页部分增加到超过某个脏背景阈值。背景阈值通常设置为系统中所有页的10%,不过可以通过修改文件/proc/sys/vm/dirty_background_ratio来调整该值。
        2. wb_kupdate():检查页高速缓存中是否有“脏”了很久时间的页,避免当一些页很久没有被刷新时发生饥饿危险。
     内核在初始化期间会建立wb_timer动态定时器,其的定时间距为dirty_writeback_centisecs文件中所规定的几百分之一秒(通常是500分之一秒,不过可以通过修改/proc/sys/vm/dirty_writeback_centisecs文件调整该值)。定时器函数会调用pdflush_operation()函数,然后将wb_kupdate()函数的地址传入。wb_kupdate()函数遍历页高速缓存搜索陈旧的脏索引节点,把已保持脏状态时间超过30秒的页都写到磁盘,之后重置定时器。




    展开全文
  • linux开启swap(磁盘缓存)操作

    万次阅读 2014-04-26 14:41:15
    由于工作需要,要帮助同事查看linux服务器的缓存开启情况,经过查找资料,可确定通过以下方法确定Linux磁盘缓存是否已开启。 1.命令行下执行free命令,当显示如下红框内的信息(swap)时,说明swap处于启用状态...
    由于工作需要,要帮助同事查看linux服务器的缓存开启情况,经过查找资料,可确定通过以下方法确定Linux磁盘缓存是否已开启。
    


    1.命令行下执行free命令,当显示如下红框内的信息(swap)时,说明swap处于启用状态



    此时注意,开启时total和free处均有值。



    2.命令行下执行swapoff -a,关闭swap



    3.此时执行free命令



    此时注意,并闭时total和free处均为0,由此可知swap已经关闭。

    4.附swapon、swapoff参数说明

    swapon

    Usage:
     swapon -a [-e] [-v] [-f]             enable all swaps from /etc/fstab
     swapon [-p priority] [-v] [-f] <special>  enable given swap
     swapon -s                            display swap usage summary
     swapon -h                            display help
     swapon -V                            display version

    The <special> parameter:
     {-L label | LABEL=label}             LABEL of device to be used
     {-U uuid  | UUID=uuid}               UUID of device to be used
     <device>                             name of device to be used
     <file>                               name of file to be used


    swapoff

    Usage:
     swapoff -a [-v]                      disable all swaps
     swapoff [-v] <special>               disable given swap
     swapoff -h                           display help
     swapoff -V                           display version

    The <special> parameter:
     {-L label | LABEL=label}             LABEL of device to be used
     {-U uuid  | UUID=uuid}               UUID of device to be used
     <device>                             name of device to be used
     <file>                               name of file to be used


    Android开发板实战:

    手机终端su确认后输入:busybox free .可以查看Sawp分区情况。
    点击查看原图

    =============================================================================

    详解

    =============================================================================



    一.SWAP 说明

     

    1.1 SWAP 概述

    当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

     

    这个是SWAP 交换分区的作用。 实际上,我们更关注的应该是SWAP分区的大小问题。 设置多大才是最优的。

     

    一般来说可以按照如下规则设置swap大小

    4G以内的物理内存,SWAP 设置为内存的2倍。

    4-8G的物理内存,SWAP 等于内存大小。

    8-64G 的物理内存,SWAP 设置为8G。

    64-256G物理内存,SWAP 设置为16G。

     

    实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。

     

    1.2 系统在什么情况下才会使用SWAP?

     

    实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。

     

    [root@rhce ~]#  cat /proc/sys/vm/swappiness

    60

     

    该值默认值是60.

    swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间

    swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

     

    现在服务器的内存动不动就是上百G所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。

     

    1.3 如何修改swappiness参数?

     

    --临时性修改:

    [root@rhce ~]# sysctl vm.swappiness=10

    vm.swappiness = 10

    [root@rhce ~]# cat /proc/sys/vm/swappiness

    10

    这里我们的修改已经生效,但是如果我们重启了系统,又会变成60.

     

    --永久修改:

    在/etc/sysctl.conf 文件里添加如下参数:

    vm.swappiness=10

     

    或者:

    [root@rhce ~]# echo 'vm.swappiness=10' >>/etc/sysctl.conf

     

    保存,重启,就生效了。

     

    二.管理SWAP

     

    2.1 查看系统当前SWAP 空间大小

     

    [root@dave ~]# free -m

                total       used       free    shared    buffers     cached

    Mem:         1954       1923         31          0         21       1345

    -/+ buffers/cache:        555       1399

    Swap:        1999         21       1978

     

    2.2 释放SWAP 空间

     

    假设我们的系统出现了性能问题,我们通过vmstat命令看到有大量的swap,而我们的物理内存又很充足,那么我们可以手工把swap 空间释放出来。让进程去使用物理内存,从而提高性能。

     

    [root@dave ~]# vmstat 1 5

    procs -----------memory---------- ---swap-------io---- --system-- -----cpu-----

     r  b  swpd   free   buff cache   si   so   bi    bo   in  cs us sy id wa st

     0  0 22272  32620  22032 1378312    0   0    33    38   0   41 1  2 96  0  0

     0  0 22272  32612  22032 1378340    0   0     0     0 902 1627  0  5 95 0  0

     0  0 22272  32612  22032 1378340    0   0     0     0 905 1636  1  8 91 0  0

     0  0 22272  32612  22032 1378340    0   0     0    32 907 1616  0  6 94 0  0

     0  0 22272  32612  22032 1378340    0   0     0     0 924 1651  0  8 92 0  0

    [root@dave ~]#

     

    [root@dave ~]# free -m

                total       used       free    shared    buffers    cached

    Mem:         1954       1923         31          0         21       1345

    -/+ buffers/cache:        555       1399

    Swap:         1999         21       1978

    注意:free命令默认单位为k, -m 单位为M。 我们这里的swap使用了21M的空间。

     

    --查看当前swap 的使用

    [root@dave ~]# swapon -s

    Filename                                Type            Size    Used   Priority

    /dev/sda2                               partition       2047992 22272   -1

     

    [root@dave ~]# cat /proc/swaps

    Filename                                Type            Size    Used   Priority

    /dev/sda2                               partition       2047992 22272   -1

    [root@dave ~]#

     

    swapon –s 等于 cat/proc/swaps

     

    --关闭swap 交换分区:

    [root@dave ~]# swapoff/dev/sda2

    [root@dave ~]# swapon -s

    Filename                                Type            Size    Used   Priority

     

    --查看swap的使用情况:

    [root@dave ~]# free -m

                total       used       free    shared    buffers     cached

    Mem:         1954       1939         15          0         21       1343

    -/+ buffers/cache:        573       1381

    Swap:           0          0          0

     

    --启用swap分区:

    [root@dave ~]# swapon /dev/sda2

     

    --验证状态:

    [root@dave ~]# swapon -s

    Filename                                Type            Size    Used   Priority

    /dev/sda2                               partition       2047992 0       -1

     

    这里/dev/sda2是我们在安装操作系统时划分的磁盘分区。实际上,我们也可以使用文件来做为交换分区。具体后面会演示。

     

    我们上面写的是具体名称,也可是使用swapoff  -a进程,演示如下:

    [root@dave ~]# swapoff -a

    [root@dave ~]# swapon -s

    Filename                                Type            Size    Used   Priority

    [root@dave ~]# swapon -a

    [root@dave ~]# swapon -s

    Filename                                Type            Size    Used   Priority

    /dev/sda2                               partition       2047992 0       -1

    [root@dave ~]#

     

     

    我们查看/etc/fstab 文件,我们的swap 也配置到开启自动启动了。

    [root@dave ~]# cat /etc/fstab

     

    #

    # /etc/fstab

    # Created by anaconda on Wed Aug 15 00:09:26 2012

    #

    # Accessible filesystems, by reference, aremaintained under '/dev/disk'

    # See man pages fstab(5), findfs(8), mount(8)and/or blkid(8) for more info

    #

    UUID=beea0820-3ac3-4551-9bf0-1b2a462d3ab4 /                       ext4    defaults        1 1

    UUID=e5ec9543-143f-4e3b-b8a7-4fa05b01836a/boot                   ext4    defaults        1 2

    UUID=b256c0bb-9000-456b-b9eb-18239b5df5ddswap                    swap    defaults        0 0

    tmpfs                   /dev/shm                tmpfs   defaults        0 0

    devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

    sysfs                   /sys                    sysfs   defaults        0 0

    proc                    /proc                   proc    defaults        0 0

     

     

    简单的说:

    (1)ext分区是否启用由mount及umount控制。

    (2)swap分区是否启动,由swapon及swapoff控制。

     

    我们对swap 空间的释放,也是通过关闭swap分区,在启动swap 分区来实现的。

     

     

    2.3 使用文件来作为SWAP 交换分区

     

    我们这里使用文件添加一个交换区,具体操作如下:

     

    --在根目录下生成一个文件:swap-file,大小1G:

    [root@dave u01]# dd if=/dev/zero of=/swap-filebs=1M count=1024

    1024+0 records in

    1024+0 records out

    1073741824 bytes (1.1 GB) copied, 5.91518 s, 182MB/s

    [root@dave u01]# cd /

    [root@dave /]# ls

    bin  cgroup  etc   lib   lost+found  misc  net proc  sbin     srv       sys  u01  usr

    boot dev     home  lib64 media       mnt   opt root  selinux  swap-file tmp  u02  var

    [root@dave /]#

     

    --将生成的文件格式化成交换分区:

    [root@dave /]# mkswap /swap-file

    mkswap: /swap-file: warning: don't erase bootbitssectors

            onwhole disk. Use -f to force.

    Setting up swapspace version 1, size = 1048572 KiB

    no label, UUID=653bbeb5-4abb-4295-b110-5847e073140d

    --这里没有分区的lable,只有一个UUID。

     

     

    --启动swap分区并查看状态:

    [root@dave /]# swapon /swap-file

    [root@dave /]# swapon -s

    Filename                                Type            Size    Used   Priority

    /dev/sda2                               partition       2047992 0       -1

    /swap-file                              file            1048568 0       -2

    这里我们就看到了2个swap。

     

    但是这个只对当前有效,如果想下次重启系统后还继续有效,需要将配置写入到/etc/fstab文件中。

     

    在/etc/fstab文件中添加如下内容:

    UUID=653bbeb5-4abb-4295-b110-5847e073140d swap                    swap    defaults        0 0

    或者:

    /swap-file swap                    swap    defaults        0 0

     

     

    2.4 使用磁盘添加swap

     

    先划分一个1G的磁盘分区出来:

    [root@rhce /]# fdisk /dev/sdb

    Device contains neither a valid DOS partitiontable, nor Sun, SGI or OSF disklabel

    Building a new DOS disklabel with disk identifier0x65edb587.

    Changes will remain in memory only, until youdecide to write them.

    After that, of course, the previous content won'tbe recoverable.

     

    Warning: invalid flag 0x0000 of partition table 4will be corrected by w(rite)

     

    WARNING: DOS-compatible mode is deprecated. It'sstrongly recommended to

            switch off the mode (command 'c') and change display units to

            sectors (command 'u').

     

    Command (m for help): n

    Command action

       e   extended

       p   primary partition (1-4)

    p

    Partition number (1-4): 1

    First cylinder (1-652, default 1):

    Using default value 1

    Last cylinder, +cylinders or +size{K,M,G} (1-652,default 652): +1G

     

    Command (m for help): w

    The partition table has been altered!

     

    Calling ioctl() to re-read partition table.

    Syncing disks.

    [root@rhce /]# fdisk -l

     

    Disk /dev/sda: 21.5 GB, 21474836480 bytes

    255 heads, 63 sectors/track, 2610 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

    Sector size (logical/physical): 512 bytes / 512bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x000bcd24

     

       DeviceBoot      Start         End      Blocks  Id  System

    /dev/sda1  *           1         128    1024000   83  Linux

    Partition 1 does not end on cylinder boundary.

    /dev/sda2             128         511    3072000   82  Linux swap / Solaris

    Partition 2 does not end on cylinder boundary.

    /dev/sda3             511        2611   16874496   83  Linux

    Disk /dev/sdb: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

    Sector size (logical/physical): 512 bytes / 512bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x65edb587

     

       DeviceBoot      Start         End      Blocks  Id  System

    /dev/sdb1               1         132    1060258+  83  Linux

     

    注意这里fdisk ID的编号。 这里显示的83,它代表这个分区是ext的分区,这个是不能用来做swap的。

     

    在fdisk 命令可以看到具体数据的含义:

    Command (m for help): l

     

     0  Empty           24 NEC DOS         81  Minix / old Lin bf  Solaris       

     1  FAT12           39 Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-

     2  XENIX root      3c PartitionMagic  83  Linux           c4 DRDOS/sec (FAT-

     3  XENIX usr       40 Venix 80286     84  OS/2 hidden C:  c6 DRDOS/sec (FAT-

     4  FAT16 <32M      41 PPC PReP Boot   85  Linux extended  c7 Syrinx        

     5  Extended        42 SFS             86  NTFS volume set da  Non-FS data   

     6  FAT16           4d QNX4.x          87  NTFS volume set db  CP/M / CTOS / .

     7  HPFS/NTFS       4e QNX4.x 2nd part 88  Linuxplaintext de  Dell Utility  

     8  AIX            4f  QNX4.x 3rd part 8e  Linux LVM       df BootIt        

     9  AIX bootable    50 OnTrack DM      93  Amoeba          e1 DOS access    

     a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3 DOS R/O       

     b  W95 FAT32       52 CP/M            9f BSD/OS          e4  SpeedStor     

     c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs       

     e  W95 FAT16 (LBA) 54  OnTrackDM6      a5 FreeBSD         ee  GPT           

     f  W95 Ext'd (LBA) 55  EZ-Drive        a6 OpenBSD         ef  EFI (FAT-12/16/

    10  OPUS            56 Golden Bow      a7  NeXTSTEP        f0 Linux/PA-RISC b

    11  HiddenFAT12    5c  Priam Edisk     a8 Darwin UFS      f1  SpeedStor     

    12  Compaqdiagnost 61  SpeedStor       a9 NetBSD          f4  SpeedStor     

    14  HiddenFAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2 DOS secondary 

    16  HiddenFAT16    64  Novell Netware  af  HFS/ HFS+      fb  VMware VMFS   

    17  HiddenHPFS/NTF 65  Novell Netware  b7 BSDI fs         fc  VMware VMKCORE

    18  ASTSmartSleep  70  DiskSecure Mult b8  BSDI swap       fd Linux raid auto

    1b  HiddenW95 FAT3 75  PC/IX           bb Boot Wizard hid fe  LANstep       

    1c  HiddenW95 FAT3 80  Old Minix       be Solaris boot    ff  BBT           

    1e  HiddenW95 FAT1

     

    ext的分区ID号:0x83   

    swap的分区ID号:0x82

     

    --将/dev/sdb1分区改成swap 分区:

    [root@rhce ~]# fdisk /dev/sdb

     

    WARNING: DOS-compatible mode is deprecated. It'sstrongly recommended to

            switch off the mode (command 'c') and change display units to

            sectors (command 'u').

     

    Command (m for help): h

    h: unknown command

    Command action

       a   toggle a bootable flag

       b   edit bsd disklabel

       c   toggle the dos compatibility flag

       d   delete a partition

       l   list known partition types

       m   print this menu

       n   add a new partition

       o   create a new empty DOS partition table

       p   print the partition table

       q   quit without saving changes

       s   create a new empty Sun disklabel

      t   change a partition's system id

       u   change display/entry units

       v   verify the partition table

       w   write table to disk and exit

       x   extra functionality (experts only)

     

    Command (m for help): t

    Selected partition 1

    Hex code (type L to list codes): L

     

     0  Empty           24 NEC DOS         81  Minix / old Lin bf  Solaris       

     1  FAT12           39 Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-

     2  XENIX root      3c PartitionMagic  83  Linux           c4 DRDOS/sec (FAT-

     3  XENIX usr      40  Venix 80286     84 OS/2 hidden C:  c6  DRDOS/sec (FAT-

     4  FAT16 <32M      41 PPC PReP Boot   85  Linux extended  c7 Syrinx        

     5  Extended        42 SFS             86  NTFS volume set da  Non-FS data   

     6  FAT16           4d QNX4.x          87 NTFS volume set db  CP/M / CTOS /.

     7  HPFS/NTFS       4e QNX4.x 2nd part 88  Linuxplaintext de  Dell Utility  

     8  AIX             4f QNX4.x 3rd part 8e  Linux LVM       df BootIt        

     9  AIX bootable    50 OnTrack DM      93  Amoeba          e1 DOS access    

     a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3 DOS R/O       

     b  W95 FAT32       52 CP/M            9f  BSD/OS          e4 SpeedStor     

     c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs       

     e  W95 FAT16 (LBA) 54  OnTrackDM6      a5 FreeBSD         ee  GPT           

     f  W95 Ext'd (LBA) 55  EZ-Drive        a6 OpenBSD         ef  EFI (FAT-12/16/

    10  OPUS            56 Golden Bow      a7  NeXTSTEP        f0 Linux/PA-RISC b

    11  HiddenFAT12    5c  Priam Edisk     a8 Darwin UFS      f1  SpeedStor     

    12  Compaqdiagnost 61  SpeedStor       a9 NetBSD          f4  SpeedStor     

    14  HiddenFAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2 DOS secondary 

    16  HiddenFAT16    64  Novell Netware  af  HFS/ HFS+      fb  VMware VMFS   

    17  HiddenHPFS/NTF 65  Novell Netware  b7 BSDI fs         fc  VMware VMKCORE

    18  ASTSmartSleep  70  DiskSecure Mult b8  BSDI swap       fd Linux raid auto

    1b  HiddenW95 FAT3 75  PC/IX           bb Boot Wizard hid fe  LANstep       

    1c  HiddenW95 FAT3 80  Old Minix       be Solaris boot    ff  BBT           

    1e  HiddenW95 FAT1

    Hex code (type L to list codes):82

    Changed system type of partition1 to 82 (Linux swap / Solaris)

    --注意这里更改磁盘分区的ID类型,如果不更在,在系统重启时会根据ID来判断磁盘的类型,那样在使用时就会出现错误。

     

    Command (m for help): w

    The partition table has been altered!

     

    Calling ioctl() to re-read partition table.

     

    WARNING: Re-reading the partition table failed witherror 16: Device or resource busy.

    The kernel still uses the old table. The new tablewill be used at

    the next reboot or after you run partprobe(8) orkpartx(8)

    Syncing disks.

    [root@rhce ~]#

     

     

    --格式化swap分区:

    [root@rhce /]# mkswap /dev/sdb1

    Setting up swapspace version 1, size = 1060252 KiB

    no label, UUID= bc913e6b-209a-49a7-b561-9b8c57294681

     

    [root@rhce /]# mkswap –L swap-disk/dev/sdc1

     

    一个设置了Lable,一个没设置。我们在添加/etc/fstab时,可是用LABLE名称,或者使用UUID来配置。 具体如上。

     


    Disk /dev/sdb: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

    Sector size (logical/physical): 512 bytes / 512bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x65edb587

     

       DeviceBoot      Start         End      Blocks  Id  System

    /dev/sdb1               1         132    1060258+  82  Linux swap / Solaris

     

     

    Disk /dev/sdc: 5368 MB, 5368709120 bytes

    181 heads, 40 sectors/track, 1448 cylinders

    Units = cylinders of 7240 * 512 = 3706880 bytes

    Sector size (logical/physical): 512 bytes / 512bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x00000000

     

       DeviceBoot      Start         End      Blocks  Id  System

    /dev/sdc1               1         291    1053400   82  Linux swap / Solaris

     

    注意: 使用blkid 查看类型已经变成了swap:

    [root@rhce ~]# blkid

    /dev/sda1: UUID="935f7fb2-2ef4-486f-ae4e-265eaf9f580f"TYPE="ext4"

    /dev/sda2:UUID="43343402-9188-4cdc-9c79-0e36ab737517" TYPE="swap"

    /dev/sda3:UUID="7e49fb2c-6fd8-461a-95d9-65d1f3994160" TYPE="ext4"

    /dev/sdb1:UUID="bc913e6b-209a-49a7-b561-9b8c57294681" TYPE="swap"

    /dev/sdc1:LABEL="swap-disk"UUID="799b4379-ca59-4508-ad04-2d18847b3fd9" TYPE="swap"

    [root@rhce ~]#

     

    这里的类型已经改变,我们可以尝试手工的启动swap

    [root@rhce ~]# swapon /dev/sdc1

    [root@rhce ~]# swapon -s

    Filename                                Type            Size    Used   Priority

    /dev/sda2                               partition       3071992 0       -1

    /dev/sdb1                               partition       1060248 0       -2

    /dev/sdc1                               partition       1053392 0       -3

     

    这里可以直接启用swap

     

     

    我们这里把/dev/dbb1和/dev/sdc1都添加/etc/fstab 文件,在重启一下看看。 添加内容如下:

    UUID=bc913e6b-209a-49a7-b561-9b8c57294681 swap                    swap    defaults        0 0

    LABEL=swap-disk        swap    swap    defaults        0 0

     

    重启系统后查看:

    [root@rhce ~]# swapon -s

    Filename                                Type            Size    Used   Priority

    /dev/sda2                               partition       3071992 0       -1

    /dev/sdb1                               partition       1060248 0       -2

    /dev/sdc1                               partition       1053392 0       -3

     

    --对/dev/sdb1 进行测试:

    [root@rhce ~]# swapoff /dev/sdb1

    [root@rhce ~]# swapon -s

    Filename                                Type            Size    Used   Priority

    /dev/sda2                               partition       3071992 0       -1

    [root@rhce ~]# swapon /dev/sdb1

    [root@rhce ~]# swapon -s

    Filename                                Type            Size    Used   Priority

    /dev/sda2                               partition       3071992 0       -1

    /dev/sdb1                               partition       1060248 0       -2

     

     

     

    2.5 SWAP 分区的删除

     

        Swapoff 文件之后,删除掉对应的空间,在从/etc/fstab删除对应的记录即可。

     

     

     

     

     

    ---------------------------------------------------------------------------------------

    版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

    Skype:    tianlesoftware

    QQ:       tianlesoftware@gmail.com

    Email:    tianlesoftware@gmail.com

    Blog:     http://blog.csdn.net/tianlesoftware

    Weibo:    http://weibo.com/tianlesoftware

    Twitter:  http://twitter.com/tianlesoftware

    Facebook: http://www.facebook.com/tianlesoftware

    Linkedin: http://cn.linkedin.com/in/tianlesoftware


    展开全文
  • LINUX磁盘参数设置

    千次阅读 2013-07-01 17:56:54
    其中涉及到LINUX内核中的若干脏页和内核的参数,现转载如下: 一、2.6内核下 /proc/sys/vm/dirty_ratio 这个参数控制文件系统的文件系统写缓冲区的大小,单位是百分比,表示系统内存的百分比,表示当写缓冲使用到...
  • linux 释放机器缓存

    2019-03-28 19:53:02
    linux 清理缓存 free -m 查看内存使用情况 sync 将缓存的内容立即写进磁盘 echo 3 > /proc/sys/vm/drop_caches echo的参数: 0 – 不释放 1 – 释放页缓存 2 – 释放dentries和inodes 3 – 释放所有缓存 ...
  • linux系统中分为用户空间和内核空间,用户空间中有一个缓存区,用来暂时存放输入输出数据,等缓存区被放满了,再写入磁盘中,由于磁盘得读写速度和次数有限,这样做是为了提高读写效率和减少磁盘IO的读写次数。...
  • linux 磁盘cache参数设置

    千次阅读 2019-07-03 14:25:24
    这个参数控制文件系统的文件系统写缓冲区的大小,单位是百分比,表示系统内存的百分比,表示当写缓冲使用到系统内存多少的时候,开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的...
  • linux缓存写入磁盘完成(同步)

    千次阅读 2019-10-18 13:17:18
    《Unix环境高级编程》中提到函数sync,fsync,fdatasync对缓存磁盘写入数据做了解释: 当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其...
  • Android内存优化之磁盘缓存

    千次阅读 2015-06-23 13:37:18
    前言: 在上一篇文章中介绍了内存缓存,内存缓存的优点就是很快,但是它又有缺点: 空间小,内存缓存不可能很大;内存紧张时可能被清除;在应用退出时就会消失,做不到...在Android中用到的磁盘缓存大多都是基于Dis
  • Linux页高速缓存和页回写

    千次阅读 2018-03-19 10:11:26
    页高速缓存(cache)是Linux内核实现磁盘缓存。它主要用来减少对磁盘I/O操作。是通过把磁盘中的数据缓存到 物理内存中,把对磁盘的访问变为对物理内存的访问。 磁盘高速缓存有两个重要因素:第一,访问磁盘的速度要...
  • Linux下清除缓存

    千次阅读 2018-06-02 10:37:47
    一、强制把系统缓存写入文件sync和fsync函数, fflush和fsync的联系传统的UNIX实现在内核中设有缓冲存储器,大多数磁盘I / O都通过缓存进行。当将数据写到文件上时,通常该数据先由内核复制到缓存中,如果该缓存尚未...
  • Linux系统磁盘管理基础版

    千次阅读 2021-05-17 21:59:11
    Linux系统磁盘管理基础版 一、磁盘管理命令 1、df命令 查看系统挂载情况和大小 df -a 显示所有文件系统(包含特殊的proc) df -h 常见单位显示大小 df -T 显示挂载的文件系统类型 2、du命令 读取文件大小 ...
  • Linux使用的缓存

    2010-04-20 09:14:00
    6.7.1 Linux使用的缓存不管在硬件设计还是软件设计中,高速缓存是获得高性能的常用手段。Linux 使用了多种和内存管理相关的高速缓存。1. 缓冲区高速缓存:缓冲区高速缓存中包含了由块设备使用的数据缓冲区。这些...
  • LINUX使用的缓存,缓冲区高速缓存

    千次阅读 2013-10-18 21:37:12
    Linux使用的缓存 不管在硬件设计还是软件设计中,高速缓存是获得高性能的常用手段。Linux 使用了多种和内存管理相关的高速缓存。 1.缓冲区高速缓存:  缓冲区高速缓存中包含了由块设备使用的数据缓冲区。这些...
  • 磁盘读写参数设置 现象: 在Android 4.2.1 中遇到 turn on USB Storage (打开MSC)时,eMMC ,SDIO, USB 数据读写慢的问题。 系统启动后,# cat /proc/sys/vm/dirty_ratio, 为20 在turn on USB Storage后...
  • Linux如何清理缓存

    2020-04-17 17:50:14
    使用sodu su进入root权限 echo 1 > /proc/sys/vm/drop_caches ...跑完程序后,系统会保存很多缓存以及缓冲,使用 free -m 命令可以看到系统的被占用情况 输入以上四个命令后,再次查看,发现内存被...
  • LINUX磁盘IO性能监测分析

    千次阅读 2012-09-26 12:43:11
    LINUX磁盘IO性能监测分析 2011-08-16 18:... 这两天发现一台测试用的服务器经常负载很高,但cpu和内存消耗却很少,很是奇怪,经过诊断发现是由于大容量的测试数据导致高并发下的磁盘IO消耗比较大,由于缓存是小文件
  • Linux页高速缓存与回写机制分析

    千次阅读 2014-10-27 19:31:19
    页高速缓存是linux内核实现的一种主要磁盘缓存,它主要用来减少对磁盘的IO操作,具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。为什么要这么做呢?一,速度;二临时局部...
  • LINUX页高速缓存和页回写

    千次阅读 2012-02-06 22:19:30
    页高速缓存是linux内核实现的一种主要磁盘缓存,它主要用来减少对磁盘的IO操作,具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。为什么要这么做呢? 一,速度,访问磁盘的...
  • linux下proc里关于磁盘性能的参数

    万次阅读 2011-01-10 13:07:00
    linux下proc里关于磁盘性能的参数
  • Linux磁盘优化方法

    千次阅读 2014-12-11 18:26:12
    默认,linux倾向于从物理内存映射到硬盘缓存,保持硬盘缓存尽可能大。未用的页缓存会被放进swap区。 数值为0,将会避免使用swapping 100,将会尽量使用swapping 少用swapping会增加程序的响应速度;多用...
  • linux定时清缓存cache,避免cache过多导致oom内存溢出,适用于嵌入式系统内存紧张的方案
  • Linux I/O优化 磁盘读写参数设置

    千次阅读 2018-06-01 14:10:34
    Linux I/O优化 磁盘读写参数设置关于页面缓存的信息,可以用cat /proc/meminfo 看到。其中的Cached 指用于pagecache的内存大小(diskcache-SwapCache)。随着写入缓存页,Dirty 的值会增加。一旦开始把缓存页写入...
  • Linux系统磁盘空间不足解决办法

    千次阅读 2020-05-25 11:09:43
    在使用Linux系统较长时间之后,尤其是运行占内存较大的软件之后会产生磁盘空间不足的情况,仅仅依靠删除文件和清空回收站难以根本解决问题,多番尝试之后整理了以下方法,不是研究原理,仅尝试效果,如有错误欢迎...
  • linux测试磁盘读写IO速度的方法

    千次阅读 2013-06-02 21:52:19
    运维工作中,有时会遇到类似于IO特别高,但不能判定是IO瓶颈还是软件参数...这是一个是用来获取ATA/IDE硬盘的参数的命令,是由早期Linux IDE驱动的开发和维护人员 Mark Lord开发编写的( hdparm has been written by M

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 93,371
精华内容 37,348
关键字:

linux参数磁盘缓存

linux 订阅