Swap常用操作与性能测试
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性能),以确定一个性能参数。
欢迎访问我的简书主页。在简书,不仅仅是技术,我们一起读书成长,财务自由,心灵自由。
Swap常用操作与性能测试的更多相关文章
- Java实例 Part4:数组及其常用操作
目录 Part4:数组及其常用操作 Example01:将二维数组的行列交换 Example02:使用选择排序法对数组进行排序 Example03:使用冒泡排序法对数组进行排序 Example04:使 ...
- Stream常用操作以及原理探索
Stream常用操作以及原理 Stream是什么? Stream是一个高级迭代器,它不是数据结构,不能存储数据.它可以用来实现内部迭代,内部迭代相比平常的外部迭代,它可以实现并行求值(高效,外部迭代要 ...
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
- Mac OS X常用操作入门指南
前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右) =鼠标左键 control+按下 ...
- Mongodb学习笔记三(Mongodb索引操作及性能测试)
第三章 索引操作及性能测试 索引在大数据下的重要性就不多说了 下面测试中用到了mongodb的一个客户端工具Robomongo,大家可以在网上选择下载.官网下载地址:http://www.robomo ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
- nodejs配置及cmd常用操作
一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...
- Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理
摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■ 详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...
随机推荐
- LeetCode 哈希表 380. 常数时间插入、删除和获取随机元素(设计数据结构 List HashMap底层 时间复杂度)
比起之前那些问计数哈希表的题目,这道题好像更接近哈希表的底层机制. java中hashmap的实现是通过List<Node>,即链表的list,如果链表过长则换为红黑树,如果容量不足(装填 ...
- 简单了解一下 Swagger
一.Swagger 1.什么是 Swagger ? Swagger 是一个规范和完整的框架,用于生成.描述.调用以及可视化的 Restful 风格的 Web 服务. 简单的理解:是一款 REST AP ...
- QQ群消息监听并将消息存储到SQLite数据库中
目录 一.前言 二.效果图 1.插件界面 2.SQLite数据库 3.QQ群消息 三.准备工作 1.CQA软件 2.CQA-SDK易语言版本 3.易语言破解版 4.使用到的相关模块 四.开始撸代码 五 ...
- day59 pip安装django出错解决方案
在虚拟环境下,输入 pipinstall django ==2.2,安装django,可能会出现超时问题 这里的报错是网络问题,解决方案有如下三种 (1)多试几次,网络好就装上了 (2)Cmd输入 ...
- C#学习与个人总结
本学期的C#相对来说,自我学习方法大有收获.但自律性.自我约束能力,我是否达到预期的最好效果,这个很难说出口.本学期在图书馆借了一本MySql.微机原理的书看了看,记了一些笔记.感觉知识有一些相同,有 ...
- MCU 51-4 独立按键&编码按键
独立按键: 按键的按下与释放是通过机械触点的闭合与断开来实现的,因机械触点的弹性作用,在闭合与断开的瞬间均有一个抖动的过程,抖动必须清除. 按键按下一次,数码管数值加1: #include<re ...
- VTK根据三维坐标点集生成点云
一个简单的利用VTK根据三维坐标点集生成点云的例子,仅供参考. 一.环境:vtk-8.1 & vs2013(需自行配置vtk的环境) 二.我所读取的三维坐标点集为txt格式文件,每个点的x,y ...
- nodejs之EventEmitter实现
Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列. Node.js 里面的许多对象都会分发事件:一个 net.Server 对象会在每次有新连接时触发一个事件, 一个 fs. ...
- 集训作业 洛谷P1017 进制转换
这个题的题目真的太恶心了. 重点是他的题目描述和他的目标没啥关系. 和最终目的有关系的只有这么一句话:”输出此负进制数及其基数,若此基数超过10,则参照16进制的方法处理.“ 我们通过看这句话可以发现 ...
- P1469 找筷子
摘要:有n根(n为奇数)长短不一的筷子,里面可以凑成(n-1)/2双筷子,只剩下一根不能凑对,问那根不能凑对的筷子有多长. 乍听起来好像不难,桶是一个好东西,可是一看数据:对于100%的数据,N< ...