惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
GbyAI
GbyAI
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
C
Cyber Attacks, Cyber Crime and Cyber Security
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
Spread Privacy
Spread Privacy
P
Proofpoint News Feed
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MyScale Blog
MyScale Blog
T
Tor Project blog
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
P
Privacy & Cybersecurity Law Blog
MongoDB | Blog
MongoDB | Blog
Simon Willison's Weblog
Simon Willison's Weblog
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
小众软件
小众软件
G
GRAHAM CLULEY
P
Privacy International News Feed
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
人人都是产品经理
人人都是产品经理
S
Schneier on Security
Scott Helme
Scott Helme
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
T
The Exploit Database - CXSecurity.com
Recent Announcements
Recent Announcements
E
Exploit-DB.com RSS Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
U
Unit 42
The Register - Security
The Register - Security
S
Securelist
Martin Fowler
Martin Fowler
Project Zero
Project Zero
大猫的无限游戏
大猫的无限游戏
Cisco Talos Blog
Cisco Talos Blog

博客园 - sheldon_blogs

Android设备搭建本地RTSP服务器(基于live555) Android上玩转TUN设备及rtsp传输 Android14 RK3588平台内核异常中断占用CPU问题排查 Android平台移植stress-ng工具及使用 Android OTA的两种方式:Non-A/B(recovery)和A/B系统升级 Android设备之间UVC Gadget bulk模式无法正常打开问题 Android的USB网络共享功能 Android开放配件 (AOA) 协议 Android(S)系统属性服务详解 Android12 双屏异显/异触流程分析 Android Webview 调试总结 RK3588 Android12 编译打包私有ext4格式vendor.img并挂载到新增vendor_private分区 C++提取字符串中的整数 Android UVC Camera H.265帧序错乱问题 RK3588 Android12 一个固件兼容多个板型方案 全志A133 Android10 Display框架实践 Android编译脚本添加kernel编译选项传入宏定义 UAC实例分析-USB音响 Android USB之复合设备(gadget)详解
Linux修改Swap分区大小及使用优先级
sheldon_blogs · 2024-08-05 · via 博客园 - sheldon_blogs

    Swap是Linux系统中的一种虚拟内存,用于在物理内存不足时扩展可用内存。当系统的物理内存不足以满足所有运行进程的需求时,操作系统会将不常用的数据存储在Swap分区中。在某些情况下,可能需要增加Ubuntu系统上的Swap大小,以提供更多的可用内存。以下将介绍调整Swap分区大小和使用优先级的方法。 

一、修改Swap分区大小步骤:

1.检查当前系统上的Swap情况。如下命令将显示当前系统上已启用的Swap分区及其大小,如果没有显示任何输出,则表示系统当前没有启用Swap。

2.要增加Swap大小,首先需要创建一个Swap文件。例如,要创建一个大小为16GB的Swap文件,可以使用以下命令:

sudo fallocate -l 16G /swapfile

3.创建Swap文件后,需要设置适当的权限以确保只有特权用户可以访问该文件。使用以下命令设置Swap文件的权限:

sudo chmod 600 <swapfile>  //注:<swapfile>是指上面创建的swapfile文件的路径

4.在设置Swap文件之前,需要对其进行格式化。使用以下命令对Swap文件进行格式化:

5.格式化Swap文件后,可以将其启用为系统的Swap分区。使用以下命令启用Swap文件:

要使系统在启动时自动加载Swap文件,需要将其添加到/etc/fstab文件中。打开/etc/fstab文件,并在文件末尾添加以下行:

<swapfile>   none   swap   sw   0   0

6.运行以下命令来验证Swap设置:

在增加Swap大小时,请注意以下几点:

  • 选择合适的Swap大小:根据系统的需求和可用硬盘空间,选择适当的Swap大小。一般来说,Swap的大小应该是物理内存的1到2倍,但也可以根据具体情况进行调整。
  • 确保硬盘空间足够:在创建Swap文件之前,请确保系统硬盘有足够的可用空间。Swap文件的大小将占用相应的磁盘空间。
  • 考虑硬盘类型:对于使用固态硬盘(SSD)的系统,Swap文件的创建和使用可能对硬盘寿命产生一定影响。在这种情况下,可以考虑将Swap分区创建在机械硬盘上,以减少对SSD的写入。
  • 考虑Swap使用频率:Swap是虚拟内存,其性能远不及物理内存。因此,过多地依赖Swap可能会导致系统性能下降。如果系统频繁使用Swap,可能需要考虑增加物理内存来改善性能。
  • 定期监控Swap使用情况:建议定期监控Swap的使用情况,以确保系统正常运行。可以使用free -h命令查看系统的内存和Swap使用情况。

二、调整Swap分区使用优先级:

    调整Swap分区后,如果发现即便物理内存用光了但虚拟内存的使用率还是上不来,则需要通过修改swappiness的值来提高Swap分区的使用优先级,调整范围为0-100,值越大交换分区越优先使用,如果需要优先使用内存 则调低swappiness的值即可。ubuntu系统中swappiness默认60,centos中默认10,所以在centos中swap内存的使用率是很低的。

具体调整swappiness值的方法如下:

1.查看当前swappiness值:

cat /proc/sys/vm/swappiness

2.临时修改swappiness值(重启后还原默认值):

方法(1):sudo sysctl vm.swappiness=10
方法(2):echo 10 > /proc/sys/vm/swappiness

3.永久修改swappiness默认值(重启生效):

#编辑该文件:
sudo gedit /etc/sysctl.conf

#在文档的最后加上:
vm.swappiness=10

swappiness值及对应策略说明:

swappiness值
SWAP策略
Vm.swappiness=0 这会导致linux系统几乎禁用SWAP,除非出现outofMemory的情况
vm.swappiness=1 这是除禁止SWAP之外的最保守的SWAP策略
vm.swappiness=10 通常在内存空间非常充足时,为了提高整体性能,会将值更改为10,以便有效降低SWAP使用频次
vm.swappiness=60 默认值,属于中庸策略
vm.swappiness=100 系统会及其激进地进行SWAP,这会严重影响整体性能