当前位置: 首页 > news >正文

linux下使用swap分区扩展内存

swap分区是什么?

Swap分区是硬盘上的一个特殊区域,被操作系统用作虚拟内存。当系统的物理内存(RAM)被全部使用时,操作系统会将一部分数据移动到swap分区,以释放RAM上的空间。这个过程被称为"交换"(swapping),或者"页面交换"。

Swap分区的主要作用是:

  1. 当RAM不足时提供额外的内存空间:如果你正在运行很多大型应用程序,或者你的系统RAM不足,操作系统会利用swap分区提供额外的内存空间。

  2. 使得更大的应用程序可以运行:即使物理内存不足以装载整个程序,有了swap分区,大型程序仍然可以运行,因为不常用的部分可以被交换到swap分区。

  3. 支持休眠功能:在休眠模式下,操作系统会将当前的系统状态(包括所有打开的应用程序和它们的状态)保存到swap分区,然后关闭电源。当电脑重新启动时,这些信息会被重新加载到内存中,恢复到休眠前的状态。

需要注意的是,虽然swap分区可以在一定程度上扩展系统的内存,但它的速度远不及物理内存。因为硬盘的读写速度比RAM慢得多,所以频繁的交换操作会降低系统性能。因此,尽管有swap分区作为备用,但增加物理内存仍然是提高系统性能的最有效方法。

如何创建swap分区?我想创建一个8g的交换分区怎么创建?

在Linux系统中,你可以通过以下步骤来创建一个8GB的swap分区:

  1. 创建一个swap文件。我们将创建一个名为swapfile的8GB文件。打开终端,然后使用dd命令:
sudo dd if=/dev/zero of=/swapfile bs=1G count=8

这个命令会创建一个8GB的文件/swapfileif=/dev/zero表示输入文件是/dev/zero(一个提供无限数量的零的特殊文件),of=/swapfile表示输出文件是/swapfilebs=1G表示以1GB为单位进行复制,count=8表示复制8次。

  1. 设置正确的权限。为了防止其他用户读取swap文件中可能包含的敏感信息,我们应该设置正确的权限:
sudo chmod 600 /swapfile
  1. 把文件设置为swap文件。使用mkswap命令:
sudo mkswap /swapfile
  1. 启用swap。使用swapon命令:
sudo swapon /swapfile
  1. 使swap在重启后依然有效。打开/etc/fstab文件:
sudo nano /etc/fstab

然后在文件的末尾添加以下行:

/swapfile none swap sw 0 0

这样,每次系统启动时,都会自动启用swap。

请注意,这些命令需要管理员权限,所以我们在每个命令前面都加了sudo。如果你已经以root用户登录,就不需要sudo

创建swap分区时,应确保硬盘上有足够的空间。此外,虽然我们在这里创建的是一个swap文件,但在某些情况下,你可能希望创建一个swap分区。创建swap分区需要重新分配硬盘空间,这通常在安装操作系统时完成。

如何提高交换分区的利用率?

在Linux系统中,swappiness参数决定了系统将多大程度上依赖swap分区。swappiness的值可以从0到100,值越大,系统使用swap的越积极。

默认情况下,swappiness的值通常设置为60。如果你希望系统更积极地使用swap,可以增加swappiness的值。但是,如果你的系统有大量的物理内存,或者你的硬盘速度较慢,过度依赖swap可能会降低系统性能。

要查看当前的swappiness值,可以使用以下命令:

cat /proc/sys/vm/swappiness

要临时改变swappiness值(例如,将其设置为80),可以使用以下命令:

sudo sysctl vm.swappiness=80

这个改变在重启后不会保留。要永久改变swappiness值,需要编辑/etc/sysctl.conf文件。你可以使用你喜欢的文本编辑器打开它,例如:

sudo nano /etc/sysctl.conf

然后在文件的末尾添加以下行:

vm.swappiness=80

然后保存并关闭文件。下次启动时,新的swappiness值将生效。

请注意,调整swappiness值可能会影响系统性能和硬盘的寿命(特别是对于SSD硬盘)。在改变swappiness值之前,你应该充分理解其含义,并根据你的具体需求和硬件配置进行决定。

相关文章:

linux下使用swap分区扩展内存

swap分区是什么? Swap分区是硬盘上的一个特殊区域,被操作系统用作虚拟内存。当系统的物理内存(RAM)被全部使用时,操作系统会将一部分数据移动到swap分区,以释放RAM上的空间。这个过程被称为"交换&quo…...

实现sleep函数

作用:让线程休眠,等到指定时间在重新唤起。 基于Date实现: 以上的代码不会让线程休眠,而是通过高负荷计算使cpu无暇处理其他任务。缺点是在sleep的过程中其他所有的任务都会被暂停,包括dom的渲染。sleep的过程中程序会…...

汽车销量可视化分析

目录 一.分析的背景、目的、意义 1、背景 2、目的 3、意义 二.数据来源 三.图表分析 1、汽车品牌销量柱状图 2、中国汽车销量柱状图 3、汽车销量前10排行柱状图 4、汽车厂商销量折线图 ​编辑5、汽车销量词云图 6、汽车车型销量 7、汽车价格分布雷达图 8、汽车分…...

代码随想录算法训练营DAY8 | 字符串(1)

一、LeetCode 344 反转字符串 题目链接&#xff1a; 344.反转字符串https://leetcode.cn/problems/reverse-string/ 思路&#xff1a;双指针法交换。 class Solution {public void reverseString(char[] s) {int n s.length;int left 0, right n-1;while(left < right){c…...

如何更改Outlook阅读邮件时的默认字体?

如果收到的邮件中未指定字体&#xff0c;outlook默认使用宋体显示。 如果觉得不好看&#xff0c;可以进行更改。但不是在outlook中更改&#xff0c;outlook中只是修改编辑器中的字体&#xff0c;和纯文本邮件浏览的字体&#xff0c;不能更改未指定字体的HTML邮件的显示字体。 …...

【C++基础入门】三、运算符(算术运算符、赋值运算符、比较运算符、逻辑运算符)

三、运算符 作用&#xff1a;用于执行代码的运算 本章我们主要讲解以下几类运算符&#xff1a; 运算符类型作用算术运算符用于处理四则运算赋值运算符用于将表达式的值赋给变量比较运算符用于表达式的比较&#xff0c;并返回一个真值或假值逻辑运算符用于根据表达式的值返回…...

ES7.17由于IP变化导致的故障及恢复

背景 1. k8s 升级&#xff0c;导致环境中的ES集群&#xff08;7.17版本&#xff09;重启 2. 集群由于在公有云环境&#xff0c;IP不固定&#xff08;重启后IP可能发生变化&#xff09;&#xff0c;通过 svc 进行访问 curl xxx-master-svc:9200/_cat/health 3. 由多个sts一…...

uniapp H5 touchstart touchend 切换背景会失效,或者没用

uniapp H5 touchstart touchend 切换背景会失效&#xff0c;或者没用 直接上代码 &#xff08;使用 class 以及 hover-class来设置样式&#xff09; class 设置默认的背景图或者样式 hover-class 来设置按下的背景图 或者样式 抬起 按下 <view class"mp_zoom_siz…...

【word visio绘图】关闭visio两线交叉的跳线(跨线)

【visio绘图】关闭visio两线交叉的跳线&#xff08;跨线&#xff09; 1 如何在Visio绘图中关闭visio两线交叉的跳线&#xff08;跨线&#xff09;第一步&#xff1a;打开Visio并创建您的图形第二步&#xff1a;绘制您的连接线第三步&#xff1a;关闭跳线第四步&#xff1a;手动…...

meson、ninja编译dpdk

解压目录meson编译dpdk meson buildmeson编译dpdk debug版 meson setup --buildtypedebug debugbuildmeson编译使用静态库&#xff0c;编译example meson .. --prefix/usr/local --buildtypedebugoptimized --default-librarystatic -Dexamplesallninja编译 ninjaninja安装…...

diff命令详解

diff是Unix系统的一个很重要的工具程序。 它用来比较两个文本文件的差异&#xff0c;是代码版本管理的基石之一。你在命令行下&#xff0c;输入&#xff1a; $ diff < 变动前的文件 > < 变动后的文件 >; diff就会告诉你&#xff0c;这两个文件有何差异。它的显示结…...

Backtrader 文档学习- Broker - Slippage

Backtrader 文档学习- Broker - Slippage 1.概述 回测无法保证真实的市场条件。无论市场模拟有多好&#xff0c;在真实市场条件下都可能发生滑点。这意味着&#xff1a; 请求的价格可能无法与真实市场的价格匹配 集成的回测broker支持滑点。以下参数可以传递给broker &#…...

三子棋游戏小课堂

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 今天的主菜是&#xff0c;C语言实现的三子棋小游戏&#xff0c; 所属专栏&#xff1a; C语言知识点 主厨的主页&#xff1a;Chef‘s blog 前言&…...

golang开源的可嵌入应用程序高性能的MQTT服务

golang开源的可嵌入应用程序高性能的MQTT服务 什么是MQTT&#xff1f; MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的、开放的消息传输协议&#xff0c;设计用于在低带宽、高延迟或不可靠的网络环境中进行通信。MQTT最初由IBM开发&#xf…...

uniapp微信小程序-请求二次封装(直接可用)

一、请求封装优点 代码重用性&#xff1a;通过封装请求&#xff0c;你可以在整个项目中重用相同的请求逻辑。这样一来&#xff0c;如果 API 发生变化或者需要进行优化&#xff0c;你只需在一个地方修改代码&#xff0c;而不是在每个使用这个请求的地方都进行修改。 可维护性&a…...

UE4 C++ 结构体

先在UCLASS()前写入&#xff1a; USTRUCT(BlueprintType) struct FMyStruct //必须以"F"开头 {GENERATED_BODY() //必须添加“GENERATED_BODY()”UPROPERTY(EditAnywhere, BlueprintReadWrite, Category "MyStruct1")int32 Health;UPROPERTY(EditAnywher…...

软件工程知识梳理0-概述

学好软件工程就必须理解软件工程到底是干什么的&#xff0c;为什么需要软件工程&#xff0c;以及怎么干的&#xff01;只有理解了软件工程的本质&#xff0c;才能更好的理解软件工程中各种工程手段和方法的目的。 个人开发模式 —> 小作坊开发模式 —> 软件工程开发模式 …...

贪吃蛇---C语言---详解

引言 C语言已经学了不短的时间的&#xff0c;这期间已经开始C和Python的学习&#xff0c;想给我的C语言收个尾&#xff0c;想起了小时候见过别人的老人机上的贪吃蛇游戏&#xff0c;自己父母的手机又没有这个游戏&#xff0c;当时成为了我的一大遗憾&#xff0c;这两天发现C语…...

Airflow原理浅析

⭐️ airflow基本原理 Apache Airflow 是一个开源的工作流自动化工具&#xff0c;它用于调度和管理复杂的数据工作流。Airflow 的原理基于有向无环图&#xff08;DAG&#xff09;的概念&#xff0c;它通过编写和组织任务的有向图来描述工作流程。 以下是 Apache Airflow 的一…...

uniapp 使用canvas 画海报,有手粘贴即可用

html部分 <view click"doposter">下载海报</view> <canvas canvas-id"myCanvas" type2d style"width: 370px; height: 550px;opcity:0;position: fixed;z-index:-1;" id"myCanvas" />js 部分 drawBackground() {c…...

突破试用限制:开源脚本实现IDM无限使用的完整解决方案

突破试用限制&#xff1a;开源脚本实现IDM无限使用的完整解决方案 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 一、问题引入&#xff1a;IDM用户的痛点与解决…...

AUC 的两种等价定义:从排序概率到 ROC 曲线的统一理解

一、AUC 的本质&#xff1a;一个排序概率1. 问题设定假设我们面对的是一个二分类 / 排序问题&#xff1a;每个样本 &#xfffd;&#xfffd; 有真实标签 &#xfffd;&#xfffd;∈0,1模型给出一个连续预测分数 &#xfffd;&#xfffd;∈&#xfffd;分数越大&#xff0c;模…...

2026年OpenClaw怎么部署?京东云零基础2分钟安装及百炼APIKey配置流程

2026年OpenClaw怎么部署&#xff1f;京东云零基础2分钟安装及百炼APIKey配置流程。OpenClaw&#xff08;曾用名Clawdbot&#xff09;是一款轻量化、可扩展的开源AI智能体执行框架&#xff0c;支持自然语言指令驱动、多模型灵活切换与全场景任务自动化。对于新手而言&#xff0c…...

Delphi网络编程实战:UDP通信与多线程网络优化详解

前两篇文章分别讲解了Delphi中基于Indy组件的TCP点对点通信、HTTP/HTTPS接口交互&#xff0c;覆盖了可靠连接、Web对接两大常用场景。本篇将深入讲解UDP通信&#xff0c;同时补充多线程网络编程、数据传输防护、常见故障排查等进阶内容&#xff0c;补齐Delphi网络开发的核心模块…...

深入RK3588 NPU架构:从NVDLA远亲到CNN加速器的设计取舍与性能真相

RK3588 NPU架构深度解构&#xff1a;CNN加速器的设计哲学与性能边界 当一块指甲盖大小的芯片宣称能提供6 TOPS的AI算力时&#xff0c;我们不禁要问&#xff1a;这数字背后隐藏着怎样的工程智慧与妥协&#xff1f;RK3588的NPU模块正引发这样的思考——它既非纯粹的学术创新&…...

ChatGPT_JCM大型应用架构:处理复杂需求的前端解决方案

ChatGPT_JCM大型应用架构&#xff1a;处理复杂需求的前端解决方案 【免费下载链接】ChatGPT_JCM 项目地址: https://gitcode.com/gh_mirrors/ch/ChatGPT_JCM ChatGPT_JCM是一个基于前端技术构建的大型AI应用解决方案&#xff0c;专为处理复杂交互需求和提供流畅用户体验…...

用C#和ONNX Runtime搞定车牌识别:从模型部署到双层车牌分割的实战避坑

C#与ONNX Runtime实战&#xff1a;车牌识别系统开发全流程与双层车牌处理精要 车牌识别技术已经从实验室走向了各行各业&#xff0c;从停车场管理到交通执法&#xff0c;再到智慧城市建设&#xff0c;这项技术正在改变我们与车辆的交互方式。作为一名长期奋战在计算机视觉一线的…...

Qwen3-14B惊艳效果展示:RTX 4090D上流畅运行14B模型的真实体验

Qwen3-14B惊艳效果展示&#xff1a;RTX 4090D上流畅运行14B模型的真实体验 1. 开箱即用的高性能体验 当我第一次在RTX 4090D上启动这个Qwen3-14B私有部署镜像时&#xff0c;最直接的感受就是"快"。从执行启动命令到WebUI界面完全加载&#xff0c;整个过程不到2分钟…...

Ostrakon-VL扫描终端实战教程:像素特工式零售图像识别部署指南

Ostrakon-VL扫描终端实战教程&#xff1a;像素特工式零售图像识别部署指南 1. 像素特工终端介绍 想象你是一位未来世界的零售侦探&#xff0c;手持高科技扫描仪在商店里穿梭。Ostrakon-VL扫描终端就是你的数字助手&#xff0c;它能帮你"看"懂货架上的每一个细节。这…...

【力扣100题】09.反转链表

一、题目描述 给定单链表的头节点 head&#xff0c;反转链表并返回反转后的链表。 示例 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]输入&#xff1a;head [] 输出&#xff1a;[]二、核心思路 关键观察…...