zoukankan      html  css  js  c++  java
  • linux的swap相关

    linux的系统采用的内存方案一般都是 物理内存+swap。物理内存供日常使用,swap用来救急。

    但在实际使用的过程中,发现有时候物理内存还没被完全占用的情况下,已经开始使用swap了。而这时候,由于I/O瓶颈问题,会导致性能的降低,这就需要我们进行一下调整,能用物理内存的情况下尽量不要使用swap。

    1.内核参数的调整。

    有个参数,名为vm.swappiness,值的范围大概是0-100,0表示尽量使用物理内存,100表示尽量使用swap,而我们的目的是尽量使用物理内存。

    kernel的文档(https://www.kernel.org/doc/Documentation/sysctl/vm.txt)中有如下说明:

    swappiness

    This control is used to define how aggressive the kernel will swap
    memory pages.  Higher values will increase agressiveness, lower values
    decrease the amount of swap.  A value of 0 instructs the kernel not to
    initiate swap until the amount of free and file-backed pages is less
    than the high water mark in a zone.

    The default value is 60.

    此时我们就将值设为0。

    1) 在 /etc/sysctl.conf 中添加一行:

    vm.swappiness=0

    2) 执行命令:sysctl -p

    3) 验证是否修改成功:sysctl vm.swappiness

    2.尽管我们修改了此值,但是在swap中已经有内容了,使用free命令查看swap已经被占用了一些了,那么现在我们想把swap中的内容挪到物理内存中。

    已知的一种方法是先将swap关闭,让内核自动完成内容迁移,再把swap打开。

    操作方法如下:

    1) 查看swap所在的分区:swapon -s

    例如是 /dev/sda2

    2) 关闭swap分区:swapoff /dev/sda2

    3) 重新打开swap分区:swapon -a

    4) 验证内存占用情况:free -h

    以上记录了linux对swap进行调整的常用操作,可能文章中提到的方法并不是最优的,但是总归算是一种有效的解决方案。更深层次的内容还需要大量参考内核文档。

  • 相关阅读:
    bzoj1208 宠物收养所treap/splay/set
    Angular 下的 function
    argunlar 1.0.1 【数据绑定】
    argunlar 1.0.0 【hello,world】
    JavaScript编写风格指南 (三)
    JavaScript编写风格指南 (二)
    JavaScript编写风格指南 (一)
    AngularJS开发指南:表达式
    HTML5 移动开发(移动设备检测及对HTML5的支持)
    HTML5 移动开发(CSS3设计移动页面样式)
  • 原文地址:https://www.cnblogs.com/vanwoos/p/7878071.html
Copyright © 2011-2022 走看看