文档章节

浅谈linux性能调优之二:优化swap分区

我爱吃葱花
 我爱吃葱花
发布于 2014/08/11 15:13
字数 1113
阅读 108
收藏 0
点赞 0
评论 0
    先说说什么是swap分区以及它的作用?     
    Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序 使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢 复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。

         分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错误。
         如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请求数量衍生 出多个服务进程(或线程),如果Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。
         通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍。但根据不同的应用,应有 不同的配置:如果是小的桌面系统,则只需要较小的Swap空间,而大的服务器系统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服 务器,随着访问量的增加,对Swap空间的要求也会增加,具体配置参见各服务器产品的说明。
         另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘IO的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式 操作于所有的Swap,这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处 于等待状态,效率很低。用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢。这说明,瓶颈在IO上,依靠提高CPU的速度是解决不了问题的
        
         看了这么多,再想想有时在论坛中的有的人说的他们的内存很大而没必要使用swap分区,别人10台机器能解决的问题,我们若合理使用swap分区,使用8台机器能解决的问题,何乐而不为呢 ?
        下面来看看红帽官方的建议:
    图1
 

浅谈linux性能调优之二:优化swap分区 - 了了 - 了了的博客

 
        下面说说swap分区的优化:
             1.首先,做到尽量使用分区而非文件,记住除非万不得已
             2.当然也可能是空间太小,那么就自己添加swap分区
             3.特别注意的的是使用分区号较小的分区(我在‘浅谈linux性能优化之一:分区策略’中强调过)
             4.分布到不同设备上可以实现轮循
             5.若真的有多个swap分区,也可以指定优先级,意思也就是优先使用性能较好的分区
                   注意在配置文件/etc/fstab中的书写:(数字越大,优先级越高,也可以使用swapon -p 来指定)
                       /dev/hda1 swap swap defaults,pri=10 0 0
                       /dev/hda5 swap swap defaults,pri=5 0 0
             6.一个重要的参数:
                [root@desktop31 ~]# sysctl -a | grep vm.swa
                  vm.swappiness = 60  
                 linux内核调优过程有几个特殊的值,包括这个,不是具体的百分比,而是一个期望值,在这里越接近0尽量使用cache,越接近100尽量使用swap,只是个趋向值
             7.两个一般不调节的值:
            vm.swap_token_timeout = 300   时间间隔
            vm.page-cluster = 3           一次性写入swap的页面数2^3*4K  = 32K


本文转载自:http://my.oschina.net/sharelinux/blog/143318

共有 人打赏支持
我爱吃葱花
粉丝 28
博文 116
码字总数 34663
作品 0
海淀
数据库管理员
浅谈linux性能调优之一:磁盘分区策略

对于服务器而言,不管是windows系统,linux系统,分区情况影响系统性能.磁盘分区之后再格式化成某一格式的系统文件,最后在存储用户或系统数据,数据所在分区容易读到数据则响应速度越快.当然也...

OscerSong ⋅ 2013/07/07 ⋅ 2

浅谈linux性能调优之一:磁盘分区策略

对于服务器而言,不管是windows系统,linux系统,分区情况影响系统性能.磁盘分区之后再格式化成某一格式的系统文件,最后在存储用户或系统数据,数据所在分区容易读到数据则响应速度越快.当然也...

我爱吃葱花 ⋅ 2014/08/11 ⋅ 0

linux系统调优-存储(内存、硬盘)

首先一个基本概念: 存储系统存储速度的快->慢: 内存->闪存->磁盘 因为内存的价格限制以及操作系统支持的限制,我们只能从磁盘这块来看,可见磁盘正是存储系统的最大瓶颈所在。 **下面具体提...

疯狂的单纯酱 ⋅ 2015/08/21 ⋅ 0

Optimizing MySQL Configuration |优化MySQL配置(一)

优化MySQL配置 彼得·扎伊采夫 Percona首席执行官 Percona MySQL的大学社区 议程 MySQL 配置文件优化基础知识 配置MySQL的工具 介绍部分重要的变量选项 关于MySQL 配置文件需要掌握的内容 默...

艾斯_韩 ⋅ 2016/07/27 ⋅ 0

浅谈linux性能调优之三:分区格式化之前的考虑

上篇:浅谈linux性能调优之二:优化swap分区http://my.oschina.net/sharelinux/blog/143318 有这么一种特殊情况可能在生产环境下发生:系统的某个ext3文件分区,当用户往此分区上写文件时,提...

OscerSong ⋅ 2013/07/09 ⋅ 2

Linux文件系统性能优化 (转)

由于各种的I/O负载情形各异,Linux系统中文件系统的缺省配置一般来说都比较中庸,强调普遍适用性。然而在特定应用下,这种配置往往在I/O性能方面不能达到最优。因此,如果应用对I/O性能要求较...

jbaowei2000 ⋅ 2017/01/16 ⋅ 0

JVM性能调优实践——JVM篇

前言 在遇到实际性能问题时,除了关注系统性能指标。还要结合应用程序的系统的日志、堆栈信息、GClog、threaddump等数据进行问题分析和定位。关于性能指标分析可以参考前一篇JVM性能调优实践...

lijingyao8206 ⋅ 05/24 ⋅ 0

Centos7 add delete Swap exchange partitions

导读 Linux 将物理内存分为内存段,叫做页面。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放对于页面的内存。物理内存和交换空间的总大小是可用的虚拟内存...

问题终结者 ⋅ 05/21 ⋅ 0

Linux必问面试题,云计算面试题及答案

×××教育总结了很多云计算面试题及答案,一起来看一下吧! 1.生产场景如何对linux系统进行合理规划分区? 分区的根本原则是简单、易用、方便批量管理。根据服务器角色定位建议如下: ①单机...

长沙千锋 ⋅ 04/25 ⋅ 0

linux内核机制常识

数据库系统通常是企业的核心应用,因此针对运行 MySQL 的 Linux 系统通常需要进行一些特殊的优化。 本人非 MySQL 大牛,本文不涉及 MySQL 参数优化,仅对 Linux 系统优化进行一些总结。 CPU ...

fangyiya ⋅ 2017/04/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

C++内存映射文件居然是这样?!

内存映射文件大家都时不时听过,但它到底是个什么?赶紧来看看吧 内存映射文件到底是干嘛的呢?让我们先来思考下面几个问题: 如果您想读的内容大于系统分配的内存块怎么办?如果您想搜索的字...

柳猫 ⋅ 24分钟前 ⋅ 0

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 今天 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 今天 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部