我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何在Redis中使用swap空间

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何在Redis中使用swap空间

这篇文章将为大家详细讲解有关如何在Redis中使用swap空间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

   swap空间对于操作系统来说比较重要,当我们使用操作系统的时候,如果系统内存不足,常常会将一部分内存数据页进行swap操作,以解决临时的内存困境。swap空间由磁盘提供,对于高并发场景下,swap空间的使用会严重降低系统性能,因为它引入了磁盘IO操作。

   在Linux中,提供了free命令来查询操作系统的内存使用情况,free 命令的结果中也包含了swap相关的情况,例如下面的结果中:

[root@VM-0-14-centos ~]# free -ht       total    used    free   shared buff/cache  availableMem:      1.8G    1.3G     72M    692K    433M    283MSwap:      0B     0B     0BTotal:     1.8G    1.3G     72M

我们可以看到swap的值都是0,说明当前的内存是没有配置swap空间的,目前的操作系统的内存是足够的,通常情况下swap一行的used列应该是0B比较好,它证明你的操作系统内存充足,没有发生swap空间的交换操作。

实时查看swap的使用

Linux中还为我们封装了vmstat这个命令来查看系统的相关性能指标,其中也包含swap空间,其中和swap有关的指标是si和so,分别代表swap in和swap out,我们看看vmstat的执行结果:

[root@VM-0-14-centos ~]# vmstatprocs -----------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

查看执行进程占用swap的情况

在Linux操作系统中,/proc/pid/smaps这个文件记录了当前进程所对应的内存映像信息,这个信息对于查询指定进程的swap使用情况很有帮助。下面以一个Redis实例进行说明:

[root@VM-0-14-centos ~]# ps -ef|grep redis  root   1711   1 0 Jul20 ?    00:20:15 class="lazy" data-src/redis-server 127.0.0.1:21243root   2370   1 0 Jul20 ?    00:20:18 class="lazy" data-src/redis-server 127.0.0.1:21244root   2371   1 0 Jul20 ?    00:20:13 class="lazy" data-src/redis-server 127.0.0.1:21263root   7815 5781 0 23:39 pts/3  00:00:00 grep --color=auto redisroot   14804   1 0 Jul20 ?    00:20:39 redis-server *:6379我们以14804这个redis进程为例[root@VM-0-14-centos ~]# cat /proc/14804/smaps | grep SwapSwap:         0 kBSwap:         0 kBSwap:         0 kB.....Swap:         0 kBSwap:         0 kBSwap:         0 kB

通常情况下,Linux服务器不会等到所有物理内存都被使用完再使用swap空间,它引入swapiness这个变量来决定操作系统使用swap空间的倾向程度,它的取值是0~100,值越大,表示操作系统使用swap的可能性越高,反之则越低。swapiness变量值存在于系统配置文件/proc/sys/vm/swappiness 和/etc/sysctl.conf中,其前面的文件在重启之后,就失效了,只有将这个值写入后面的文件,才能长久的保存下去。

[root@VM-0-14-centos ~]# cat /proc/sys/vm/swappiness 30

写入/etc/sysctl.conf的方法如下:

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

关于如何在Redis中使用swap空间就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何在Redis中使用swap空间

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在Redis中使用swap空间

这篇文章将为大家详细讲解有关如何在Redis中使用swap空间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 swap空间对于操作系统来说比较重要,当我们使用操作系统的时候,如果系统内存
2023-06-14

如何在redis中开辟空间

在Redis中开辟空间可以通过以下步骤进行:1. 安装Redis:首先需要在计算机上安装Redis数据库。你可以从Redis官方网站上下载并安装Redis。2. 启动Redis服务器:安装完成后,打开命令行或终端窗口,使用以下命令启动Red
2023-09-04

在Linux系统上如何增加swap交换空间

本篇文章给大家分享的是有关在Linux系统上如何增加swap交换空间,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在Linux系统中增加服务器swap交换空间大小是为了防止应用
2023-06-28

在php中如何使用命名空间

这篇文章主要介绍了在php中如何使用命名空间,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hyp
2023-06-14

如何用Shell脚本实现监控swap空间使用情况和查看占用swap的进程

本篇内容主要讲解“如何用Shell脚本实现监控swap空间使用情况和查看占用swap的进程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用Shell脚本实现监控swap空间使用情况和查看占用
2023-06-09

怎么在Linux系统上使用交换文件扩展swap空间

本篇内容主要讲解“怎么在Linux系统上使用交换文件扩展swap空间”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Linux系统上使用交换文件扩展swap空间”吧!想像一种情景,当我们的L
2023-06-12

Sentinel如何在Redis中使用

今天就跟大家聊聊有关Sentinel如何在Redis中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、sentinel monitor用法:sentinel monitor m
2023-06-14

redis在java中如何使用

本文介绍了在Java中使用Redis的方法,包括建立连接、设置和获取键值、使用不同数据类型、事务处理、管道操作和订阅功能。此外,文中也提到了使用Redis的最佳实践,如连接池、批量命令、键过期时间和实例监控。通过本文,读者可以全面了解如何在Java应用程序中集成Redis,以提高性能和可扩展性。
redis在java中如何使用
2024-04-02

redis如何在java中使用

本教程详细介绍了如何在Java中使用RedisAPI,包括连接到服务器、存储和检索值、使用数据结构(列表、集合、哈希表、有序集合)、发布和订阅消息、事务、管道以及高级功能(Lua脚本、连接池、哨兵监控、集群模式)。通过这些功能,Java开发者可以轻松地将Redis集成到他们的应用程序中,构建健壮且可扩展的解决方案。
redis如何在java中使用
2024-04-02

Redis如何在Spring中使用

本篇文章为大家展示了Redis如何在Spring中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Eclipse工程结构如下图为我的示例工程的结构图,采用Maven构建。其中需要集成Spring,
2023-05-30

如何在HTML中使用空格

本篇内容介绍了“如何在HTML中使用空格”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用 实现空格在 HTML 中使用 可以实现一
2023-07-06

如何在CentOS中检查磁盘空间使用情况

要在CentOS中检查磁盘空间使用情况,可以使用以下命令:使用df命令查看整个系统的磁盘空间使用情况:df -h使用du命令查看指定目录的磁盘空间使用情况:du -h /path/to/directory使用lsblk命令查看系统的磁盘分区
如何在CentOS中检查磁盘空间使用情况
2024-04-25

C++中如何使用名字空间

本篇文章为大家展示了C++中如何使用名字空间,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++名字空间更多是用来避免类名的冲突,这在小的项目中可能看不出来,因为头文件和源文件比较少,类名冲突的概率
2023-06-17

在Android应用中如何释放空间

这篇文章将为大家详细讲解有关在Android应用中如何释放空间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在网上搜索找到两种方法:if (Build.VERSION.SDK_INT >=
2023-05-31

使用Redis Data Reveal(rdr)查看Redis中key占用内存空间

项目响应速度要求比较高,全部使用Redis缓存这也导致缓存。需要分析各种键占用内存情况进行优化。redisclient虽然可以很方便的对redis进行操作,但不能查看对应key占用的内存情况,也无法对占用内存的key进行统计分析。我简单的了解一下市面上的可以查
使用Redis Data Reveal(rdr)查看Redis中key占用内存空间
2019-01-29

如何在Java8中使用Optional判空

本篇文章给大家分享的是有关如何在Java8中使用Optional判空,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、导语在没有用Optional判空之前,你是否也像下面的代码
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录