Swap分区通常被称为交换分区,这块儿分区位于硬盘的某个位置,当系统内存(物理内存)不够用的时候,如果开启了交换分区,部分内存里面暂时不用的数据就会Swap out(换出)到这块儿分区;当系统要使用这部分数据的时候,存储在Swap分区的数据就会Swap in(换入)到内存当中。

简而言之,Swap分区就类似于内存的后备内存(只是做了下缓冲)

一、swap的大小设置建议(源自redhat官方):

1. 内存<=2GB, Swap分区设置3倍内存大小

2. 2GB<=内存<=8GB, Swap分区设置2倍内存大小

3. 8GB<=内存<=64GB, Swap分区设置1.5倍且4G以上内存大小

4. 64GB<=内存, Swap分区设置4G以上内存大小

如果你不喜欢记上述条件,那么一般Swap分区设置内存2倍就可以

二、swap分区常用操作

例子:一个4c8g的机器,给其创建一个16g的swap分区。

2.1 创建步骤:

1. 创建swap交换区硬盘存储用的空白文件。

#这里bs是块大小,bs*count就是我们要创建的swap空文件大小

dd if=/dev/zero of=/swap bs=1024M count=8

2.使用mkswap格式化文件为swap文件系统

#-f 使用文件作为swap交换区

mkswap -f /swap

3.启用刚才创建的swap文件

swapon /swap

4.设置开机自动启用swap文件交换区(否则重启后swap分区会消失,这里会自动挂载):

vim /etc/fstab,添加如下内容

#启动即启用swap

/swap swap swap defaults 0 0

5.关闭swap分区,可以使用swapoff命令关闭swap。

1)关闭swap 分区

swapoff /swap

2)确认swap分区关闭成功

 swapoff

6. 调整swap分区大小

1)关闭swap 分区

swapoff /swap

2)确认swap分区关闭成功

 swapoff

        3)   删除swap分区

 rm -rf /swap

       然后按照1~4步骤,重新创建和挂载开启swap分区即可

7. 确认swap分区是否真的开启

free -m或则top,能够看到swap分区的大小。

三、swap分区与性能测试

swap分区一般是在系统内存不足的时候才会发生换入换出,我们知道swap分区是硬盘上的一块儿区域,所以性能上肯定不如真实的物理内存, 那么在实际的性能测试过程中,我们都要注意哪几点呢?

1) swap分区开始被使用(top命令观察)

这时候说明系统的内存不足了,一般的性能测试不建议压测到大量使用swap分区(自行控制压测tps),如果大量使用swap分区,我们可能会看到wa(io等待)有些高,这个时候整个机器系统效率不会很高。

2)压测场景

很多实时性比较高,且耗内存的程序在设计性能测试case的时候,需要分开启swap分区和不开启swap分区两种场景进行测试,这种一般需要和开发沟通测试场景。

3)swap分区的性能

由于swap分区是硬盘的一部分,可想而知,硬盘的档次也会决定了swap分区的性能,比如ssd的硬盘的的swap分区性能就比普通硬盘要好,所以这个在性能测试上也要考虑真正在生产环境部署的时候我们使用哪类硬盘作为swap分区(包括程序的大量IO性能),以确定一个性能参数。

欢迎访问我的简书主页。在简书,不仅仅是技术,我们一起读书成长,财务自由,心灵自由。

简书:https://www.jianshu.com/u/f9bd28315d53

Swap常用操作与性能测试的更多相关文章

  1. Java实例 Part4:数组及其常用操作

    目录 Part4:数组及其常用操作 Example01:将二维数组的行列交换 Example02:使用选择排序法对数组进行排序 Example03:使用冒泡排序法对数组进行排序 Example04:使 ...

  2. Stream常用操作以及原理探索

    Stream常用操作以及原理 Stream是什么? Stream是一个高级迭代器,它不是数据结构,不能存储数据.它可以用来实现内部迭代,内部迭代相比平常的外部迭代,它可以实现并行求值(高效,外部迭代要 ...

  3. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  4. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

  5. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

  6. Mongodb学习笔记三(Mongodb索引操作及性能测试)

    第三章 索引操作及性能测试 索引在大数据下的重要性就不多说了 下面测试中用到了mongodb的一个客户端工具Robomongo,大家可以在网上选择下载.官网下载地址:http://www.robomo ...

  7. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  8. nodejs配置及cmd常用操作

    一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...

  9. Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理

    摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■  详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...

随机推荐

  1. POJ3040贪心

    题意:作为创纪录的牛奶生产的奖励,农场主约翰决定开始给Bessie奶牛一个小的每周津贴.FJ有一套硬币N种(1≤N≤20)不同的面额,每枚硬币是所有比他小的硬币面值的倍数,例如1美分硬币.5美分硬币. ...

  2. APP开发---后台设计

    想了好久才准备写博客的,希望能对我自己和大家都有帮助! 话不多说,直接正题! ------------------------------------------------------------- ...

  3. 基于web的图书管理系统设计与实现

    原文链接:基于web的图书管理系统设计与实现 系统演示链接:点击这里查看演示 01 系统简述     图书管理系统就是利用计算机,结合互联网对图书进行结构化.自动化管理的一种软件,来提高对图书的管理效 ...

  4. 迎难而上ArrayList,源码分析走一波

    先看再点赞,给自己一点思考的时间,思考过后请毫不犹豫微信搜索[沉默王二],关注这个长发飘飘却靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有技术大佬整理 ...

  5. Illegal instant due to time zone offset transition (Asia/Shanghai)_夏令时问题

    项目报错信息: Connot parse "1991-04-14",illegal instant due to time zone offset transition(Asia/ ...

  6. 3个月不发工资,拖延转正?2天跳槽软件测试成功,9.5k他不香吗!

    今天聊到的小哥哥很悲催又很神奇,身处武汉的他,正好赶上了疫情,不仅长达3个月没有发工资,拖延转正,还要降薪,三重打击,实名悲催. 不破不立,试用期80%再打8折,怎么跳槽工资都得比这高,果然,仅仅两天 ...

  7. 测试人员应该掌握的oracle知识体系

    闲来无事,总结了一下,软件测试人员应该掌握的基本的oracle数据库知识体系 1.安装 1.1 oracle安装 1.2 oracle升级 1.3 oracle补丁 2.管理 2.1数据库创建(dbc ...

  8. 小谢第37问:关于websocket推送进度,本地保存进度条,然后跳出页面进入后再显示的问题

    1.主要技术点:sessionStorage 会话存储进度 这里在使用之前,顺便说一下cookie.sessionStorage.localStorage 共同点:都是保存在浏览器端,且同源的. 区别 ...

  9. JAVA面向对象:三大特征 封装讲解

    一.JAVA封装 1.封装的理解 封装是 JAVA 面向对象思想的 一 种特性,也是一种信息隐蔽的技术 2.封装的原则 将类中的某些信息隐藏起来,来防止外部程序直接访问,通过类中的方法实现对隐藏的信息 ...

  10. 大型Java进阶专题(八)设计模式之适配器模式、装饰者模式和观察者模式

    前言 ​ 今天开始我们专题的第八课了.本章节将介绍:三个设计模式,适配器模式.装饰者模式和观察者模式.通过学习适配器模式,可以优雅的解决代码功能的兼容问题.另外有重构需求的人群一定需要掌握装饰者模式. ...