- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Redis swap空间(虚拟内存)的使用详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
。
swap空间对于操作系统来说比较重要,当我们使用操作系统的时候,如果系统内存不足,常常会将一部分内存数据页进行swap操作,以解决临时的内存困境。swap空间由磁盘提供,对于高并发场景下,swap空间的使用会严重降低系统性能,因为它引入了磁盘IO操作.
在Linux中,提供了free命令来查询操作系统的内存使用情况,free 命令的结果中也包含了swap相关的情况,例如下面的结果中:
1
2
3
4
5
|
[root@VM-0-14-centos ~]
# free -ht
total used
free
shared buff
/cache
available
Mem: 1.8G 1.3G 72M 692K 433M 283M
Swap: 0B 0B 0B
Total: 1.8G 1.3G 72M
|
我们可以看到swap的值都是0,说明当前的内存是没有配置swap空间的,目前的操作系统的内存是足够的,通常情况下swap一行的used列应该是0B比较好,它证明你的操作系统内存充足,没有发生swap空间的交换操作.
。
Linux中还为我们封装了vmstat这个命令来查看系统的相关性能指标,其中也包含swap空间,其中和swap有关的指标是si和so,分别代表swap in和swap out,我们看看vmstat的执行结果:
1
2
3
4
|
[root@VM-0-14-centos ~]
# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd
free
buff cache si so bi bo
in
cs us sy
id
wa st
4 0 0 73712 84464 362016 0 0 7 26 7 1 1 1 98 0 0
|
。
在Linux操作系统中,/proc/pid/smaps这个文件记录了当前进程所对应的内存映像信息,这个信息对于查询指定进程的swap使用情况很有帮助。下面以一个Redis实例进行说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@VM-0-14-centos ~]
# ps -ef|grep redis
root 1711 1 0 Jul20 ? 00:20:15 src
/redis-server
127.0.0.1:21243
root 2370 1 0 Jul20 ? 00:20:18 src
/redis-server
127.0.0.1:21244
root 2371 1 0 Jul20 ? 00:20:13 src
/redis-server
127.0.0.1:21263
root 7815 5781 0 23:39 pts
/3
00:00:00
grep
--color=auto redis
root 14804 1 0 Jul20 ? 00:20:39 redis-server *:6379
我们以14804这个redis进程为例
[root@VM-0-14-centos ~]
# cat /proc/14804/smaps | grep Swap
Swap: 0 kB
Swap: 0 kB
Swap: 0 kB
.....
Swap: 0 kB
Swap: 0 kB
Swap: 0 kB
|
通常情况下,Linux服务器不会等到所有物理内存都被使用完再使用swap空间,它引入swapiness这个变量来决定操作系统使用swap空间的倾向程度,它的取值是0~100,值越大,表示操作系统使用swap的可能性越高,反之则越低。swapiness变量值存在于系统配置文件/proc/sys/vm/swappiness 和/etc/sysctl.conf中,其前面的文件在重启之后,就失效了,只有将这个值写入后面的文件,才能长久的保存下去.
1
2
|
[root@VM-0-14-centos ~]
# cat /proc/sys/vm/swappiness
30
|
写入/etc/sysctl.conf的方法如下:
1
|
echo
vm.swappiness={value} >>
/etc/sysctl
.conf
|
Redis在不同版本下,对于swapiness的建议配置也不一样,通常情况下,swapness的值可以设置为:0、1、60、100这几个.
其中:
设置为60是默认值, 。
设置为100则操作系统会主动使用swap空间, 。
设置成为0的话,在Linux3.4以及更早的Linux版本中,内存不够时,倾向使用swap而不是OOM killer,在Linux3.5以及之后的版本中,倾向使用OOM Killer而不是swap空间 。
设置为1的话,在Linux3.5以及后续版本中,内存不够用的时候,倾向于使用swap空间,而不是OOM Killer 。
多说一句:OOM kill是指Linux发现操作系统不可用的时候,也就是Out Of Memory的时候,强制杀死一些非内核进程,来保证有足够的可用内存进行分配。一般OOM的日志记录在系统日志/var/log/message中 。
以上就是Redis swap空间的使用示例的详细内容,更多关于Redis swap空间的资料请关注我其它相关文章! 。
最后此篇关于Redis swap空间(虚拟内存)的使用详解的文章就讲到这里了,如果你想了解更多关于Redis swap空间(虚拟内存)的使用详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
全称“Java Virtual Machine statistics monitoring tool”(statistics 统计;monitoring 监控;tool 工具) 用于监控虚拟机的各种运
主要是讲下Mongodb的索引的查看、创建、删除、类型说明,还有就是Explain执行计划的解释说明。 可以转载,但请注明出处。  
1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发。 2>循环服务器和并发服务器
详解 linux中的关机和重启命令 一 shutdown命令 shutdown [选项] 时间 选项: ?
首先,将json串转为一个JObject对象: ? 1
matplotlib官网 matplotlib库默认英文字体 添加黑体(‘SimHei')为绘图字体 代码: plt.rcParams['font.sans-serif']=['SimHei'
在并发编程中,synchronized关键字是常出现的角色。之前我们都称呼synchronized关键字为重量锁,但是在jdk1.6中对synchronized进行了优化,引入了偏向锁、轻量锁。本篇
一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配置拿到的是Connection对象。  
实例如下: ? 1
1. MemoryCahe NetCore中的缓存和System.Runtime.Caching很相似,但是在功能上做了增强,缓存的key支持object类型;提供了泛型支持;可以读缓存和单个缓存
argument是javascript中函数的一个特殊参数,例如下文,利用argument访问函数参数,判断函数是否执行 复制代码 代码如下: <script
一不小心装了一个Redis服务,开了一个全网的默认端口,一开始以为这台服务器没有公网ip,结果发现之后悔之莫及啊 某天发现cpu load高的出奇,发现一个minerd进程 占了大量cpu,googl
今天写这个是为了 提醒自己 编程过程 不仅要有逻辑 思想 还有要规范 代码 这样可读性 1、PHP 编程规范与编码习惯最主要的有以下几点: 1 文件说明 2 funct
摘要:虚拟机安装时一般都采用最小化安装,默认没有lspci工具。一台测试虚拟网卡性能的虚拟机,需要lspci工具来查看网卡的类型。本文描述了在一个虚拟机中安装lspci工具的具体步骤。 由于要测试
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统
目录 算术运算符 基本四则运算符 增量赋值运算符 自增/自减运算符 关系运算符 逻
如下所示: ? 1
MapperScannerConfigurer之sqlSessionFactory注入方式讲解 首先,Mybatis中的有一段配置非常方便,省去我们去写DaoImpl(Dao层实现类)的时间,这个
Linux的网络虚拟化是LXC项目中的一个子项目,LXC包括文件系统虚拟化,进程空间虚拟化,用户虚拟化,网络虚拟化,等等,这里使用LXC的网络虚拟化来模拟多个网络环境。 本文从基本的网络设备讲
? 1
我是一名优秀的程序员,十分优秀!