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.表空间 ■ 详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...
随机推荐
- Numerical Sequence(hard version),两次二分
题目: 题意: 已知一个序列: 112123123412345123456123456712345678123456789123456789101234567891011... 求这个序列第k个数是多 ...
- MobileNetV1/V2/V3简述 | 轻量级网络
MobileNet系列很重要的轻量级网络家族,出自谷歌,MobileNetV1使用深度可分离卷积来构建轻量级网络,MobileNetV2提出创新的inverted residual with line ...
- Python-字符串内容检测
str.isnumeric():检测字符串是否只由数字组成 str.isalpha():检测字符串是否只由字母组成 str.islower():检测字符串中所有的字母是否都为小写 str.isuppe ...
- java 基本语法(八) 数组(一) 数组的概述
* 1.数组的理解:数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名, * 并通过编号的方式对这些数据进行统一管理. * * 2.数组相关的概念: * >数组名 * ...
- 01-flask旅行网系统功能设计
应用flask框架实现一个介绍旅游景区及旅游攻略的网站,一个旅行网包括前台和后台两部分,前台部分用户使用,后台部分管理员使用,系统开发坏境如下: 虚拟环境:virtualenv 数据库:MySQL 开 ...
- JMeter-一个接口的返回值作为输入传给其他接口
背景: 在用JMeter写接口case,遇到一种情况,接口1查看列表接口,接口2查看详情接口,接口2需要传入接口1列表的第一条数据的id 解决方案: 首先放一下总体截图 具体步骤 1-新建一个Thre ...
- 使用redis完成秒杀系统原理
假设秒杀商品数为100,list名称为winner_user 参考视频教程:https://www.imooc.com/video/15167
- 从连接器组件看Tomcat的线程模型——BIO模式
在高版本的Tomcat中,默认的模式都是使用NIO模式,在Tomcat 9中,BIO模式的实现Http11Protocol甚至都已经被删除了.但是了解BIO的工作机制以及其优缺点对学习其他模式有有帮助 ...
- 在 vue 中使用 WebSocket
<template> <div class="hello"> <h1>{{ msg }}</h1> <h1>{{ res ...
- 6.ALOHA协议
动态媒体接入控制/多点接入特点:信道并非在用户通信时固定分配给用户. 一.纯ALOHA协议 纯 ALOHA协议思想:不监听信道,不按时间槽发送,随机重发.想发就发 二.时隙ALOHA协议 时隙 ALO ...