Linux进阶篇:linux操作系统一个神奇的分区:swap交换分区

news2025/1/20 3:47:07

linux操作系统一个神奇的分区:swap交换分区

1 Swap交换分区概念

Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
在这里插入图片描述

2 查看Swap分区大小

查看Swap分区的大小以及使用情况,一般使用free命令即可,如下所示,Swap大小为2015M,目前没有使用Swap分区
在这里插入图片描述
另外我们还可以使用swapon命令查看当前swap相关信息:例如swap空间是swap partition,Swap size,使用情况等详细信息
在这里插入图片描述

3 Swap分区大小设置

按照官方推荐设置了一个很大的Swap分区,但是我发现其实这个Swap几乎很少用到,其实是浪费了磁盘空间。所以如果根据系统实际情况和内存的负荷综合考虑,其实应该按照第二个参考标准设置为8G即可。当然这个只是个人的一些认知。
可以作为一个参考:
4G以内的物理内存,SWAP 设置为内存的2倍。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。

4 关闭交换分区

在这里插入图片描述
永久修改swappiness参数的方法就是在配置文件/etc/sysctl.conf里面修改vm.swappiness的值,然后重启系统
在这里插入图片描述

5 Swap分区空间什么时候使用

系统在什么情况或条件下才会使用Swap分区的空间呢? 其实是Linux通过一个参数swappiness来控制的。当然还涉及到复杂的算法。
物理内存使用到多少后才会使用Swap交换空间,根据我以往遇到过的情况来说,真没发现有什么固定值,有时候发现物理内存使用到60%-70%,交换分区就已经沾满了,有时候发现物理内存都沾满了,交换分区只启用一点点,有没有大神指点一下,这里我理解的不太清除。

6 Swap交换分区对性能的影响

我们知道Linux可以使用文件系统中的一个常规文件或独立分区作为Swap交换空间,相对而言,交换分区要快一些。但是和RAM比较而言,Swap交换分区的性能依然比不上物理内存,目前的服务器上RAM基本上都相当充足,那么是否可以考虑抛弃Swap交换分区,是否不需要保留Swap交换分区呢?个人感觉还是针对需要安装的服务来决定最好。
有不对的地方希望不吝赐教,欢迎在评论区留言,分享你的看法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1587718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序 django+nodejs电影院票务售票选座系统324kd

小程序Android端运行软件 微信开发者工具/hbuiderx uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。 前端:HTML5,CSS3 VUE 后端:java(springbootssm)/python(flaskdja…

网盘——显示在线用户

1、查看在线用户 客户端发送查看请求(只发送用户的名字),服务器将数据库中在线的用户查询出来并发送给客户端,客户端接收在线用户信息并作显示。 1.1、查看数据库的数据,在这里需要使用socket,所以我们在…

springboot相关报错解决

Caused by: java.lang.ClassNotFoundException: 目录 Caused by: java.lang.ClassNotFoundException: org.springframework.context.event.GenericApplicationListener spring-boot-dependencies:jar:2.1.9.RELEASE was not found org.springframework.context.event.Generi…

界面设计【1】-项目的UI设计css

引言: 本篇博客对简单的css html界面设计做了简要介绍 这篇博客主要就是介绍了做横向项目中,CSS界面设计与优化。 界面设计【1】-项目的UI设计css 1. 什么是css?2. css编程demo3. 可视化效果 1. 什么是css? CSS是层叠样式表(Cascading S…

大型语言模型有什么用?

大型语言模型有什么用? 大型语言模型识别、总结、翻译、预测、生成文本和其他内容。 AI 应用程序正在总结文章、撰写故事和进行长时间对话——而大型语言模型正在承担繁重的工作。 大型语言模型或 LLM 是一种深度学习算法,可以根据从海量数据集中获得…

【PHP程序设计(高阶版)】——PHP操作MySQL教程

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

Linux C应用编程:MQTT物联网

1 MQTT通信协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传 输)是一种基于客户端-服务端架构的消息传输协议,如今,MQTT 成为了最受欢迎的物联网协议,已广泛应用于车联网、智能家居、即时聊…

TikTok怎么开通ads账户

一、TikTok的两种主流玩法 1、付费流量 蓝V认证TikTokAds(广告消耗达到3w美金可申请蓝V认证) 可以快速引流到独立站 2、免费流量 自己运营种草号、开直播 二、TikTok Ads如何开户? 开通广告账户 首先国内是无法自己申请TikTok Ads的&a…

精彩回顾 | 「AI 驱动增长,研发数智化升级」分享沙龙成功举办

AI 应用元年,人工智能技术将如何助力企业发展新质生产力,构建增长动能? 日前,LigaAI 与深圳市企业联合会、西云数据联合举办了「AI 驱动增长,研发数智化升级」技术专题沙龙。本次活动围绕「AI」应用实践,邀…

【QingHub】EMQX单节点一键部署

EMQX 简介 EMQX是全球最具扩展性的开源MQTT 代理,具有高性能,可在 1 个集群中连接 1 亿多个 IoT 设备,同时保持每秒 100 万条消息的吞吐量和亚毫秒级的延迟。 EMQX 支持MQTT、HTTP、QUIC、WebSocket等多种开放标准协议。它 100% 符合MQTT 5.…

电商技术揭秘十九:电商平台的智能化与自动化技术

相关系列文章 电商技术揭秘一:电商架构设计与核心技术 电商技术揭秘二:电商平台推荐系统的实现与优化 电商技术揭秘三:电商平台的支付与结算系统 电商技术揭秘四:电商平台的物流管理系统 电商技术揭秘五:电商平台…

Spring Web MVC的入门学习(二)

本篇接着Spring Web MVC的入门学习(一)-CSDN博客来继续学习Spring MVC。 一、从请求中获取Header 1、传统获取 header 获取Header也是从 HttpServletRequest 中获取。 代码: import jakarta.servlet.http.HttpServletRequest; import jakar…

社交网络的未来图景:探索Facebook的发展趋势

随着科技的不断进步和社会的快速变迁,社交网络作为连接人与人之间的重要纽带,扮演着日益重要的角色。而在众多社交网络中,Facebook作为老牌巨头,一直在探索着新的发展路径,引领着社交网络的未来图景。本文将深入探索Fa…

linux学习:栈(汉诺塔游戏)

第一根上面套着 64 个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地 把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能 搬一个,而…

【vue】v-model 双向数据绑定

:value&#xff1a;单向数据绑定v-model&#xff1a;双向数据绑定 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

Maven创建项目

目录 1.创建项目 2.从Maven Repository: Search/Browse/Explore (mvnrepository.com)链接&#xff0c;下载API 3.1.0 3.在main文件内创建webapp文件夹&#xff0c;再webapp文件夹内创建WEB-INF文件夹&#xff0c;在WEB-INF文件夹内创建web.xml 4.网络编程 5.打包 6.部署 …

Leetcode二十三题:合并K个升序链表【22/1000 python】

“合并K个升序链表”&#xff0c;这是一道中等难度的题目&#xff0c;经常出现在编程面试中。以下是该问题的详细描述、解题步骤、不同算法的比较、代码示例及其分析。 问题描述 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中…

vue快速入门(十九)使用动态类绑定实现TabBar动态样式

注释很详细&#xff0c;直接上代码 上一篇 新增内容 vue绑定动态样式根据点击事件获取当前点击部分序号 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"width…

开源模型应用落地-chatglm3-6b-function call-入门篇(六)

一、前言 每个模型都有自己的限制&#xff0c;有些情况下它们无法满足复杂的业务需求。但是&#xff0c;可以通过一个外置函数的方式&#xff0c;例如&#xff1a;"Function Call"&#xff0c;让开发者能够更加灵活地利用大型语言模型&#xff0c;帮助开发者在特定场…

《QT实用小工具·十九》回车跳转到不同的编辑框

1、概述 源码放在文章末尾 该项目实现通过回车键让光标从一个编辑框跳转到另一个编辑框&#xff0c;下面是demo演示&#xff1a; 项目部分代码如下&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : p…