ubuntu开启zram彻底解决高I/O引起的卡顿,复制文件无比流畅

2024-05-05 01:28

本文主要是介绍ubuntu开启zram彻底解决高I/O引起的卡顿,复制文件无比流畅,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


环境: Ubuntu 22.04.3 LTS

ZRAM 的原理是:

  1. 将一块内存区域作为虚拟的块设备,
  2. 压缩页面交换数据,
  3. 存储在内存中,
  4. 释放物理内存空间
  5. 可用的物理内存就能随之变多

开启/加载 zRAM 模块

sudo modprobe zram num_devices=1
lsmod  | grep zram

安装zram-config

sudo apt install zram-config

加载zram模块

sudo modprobe zram

更新initramfs以加载zram模块(可选)

sudo update-initramfs -u

使用sudo命令启用zram-config服务:

sudo systemctl enable zram-config

使用sudo命令启动zram-config服务:

sudo systemctl start zram-config

重启zram-config服务以应用更改:(释放内存)

sudo service zram-config restart

修改swappiness参数

sudo vim /etc/sysctl.conf

末尾添加

vm.swappiness = 180

应用新的swappiness设置:

sudo sysctl -p /etc/sysctl.conf

启用 ZRAM 内核模块

echo "zram" | sudo tee /etc/modules-load.d/zram.conf
echo "options zram num_devices=1" | sudo tee /etc/modprobe.d/zram.conf

使其立即生效

sudo modprobe zram

配置 zram0 设备

查看默认压缩算法,带括号就是默认的

cat /sys/block/zram0/comp_algorithm

查看zram大小

cat /sys/block/zram0/disksize

配置持久化

lz4hc 为压缩算法
2G 为zram大小,推荐大小为物理内存的一半

echo 'KERNEL=="zram0", ATTR{comp_algorithm}="lz4hc", ATTR{disksize}="2G", TAG+="systemd"' | sudo tee  /etc/udev/rules.d/99-zram.rules

然后重载模块

sudo modprobe zram

将 zram0 设备配置为 Swap

sudo mkswap /dev/zram0
sudo swapon /dev/zram0

开机自启

sudo vim /etc/systemd/system/zram.service

添加内容

[Unit]
Description=ZRAM
BindsTo=dev-zram0.device
After=dev-zram0.device[Service]
Type=oneshot
RemainAfterExit=true
ExecStartPre=/sbin/mkswap /dev/zram0
ExecStart=/sbin/swapon -p 2 /dev/zram0
ExecStop=/sbin/swapoff /dev/zram0[Install]
WantedBy=multi-user.target

重载配置文件

systemctl daemon-reload
sudo systemctl enable zram

最后重启服务器

reboot

查看zram设备

ls /dev/zram*   

查看已加载的 ZRAM 模块

lsmod | grep zram

显示已启用的交换空间

swapon --show

查看zram0设备

lsblk

调整优先级

目的是让zram优先使用

先关闭swap

sudo swapoff -a

再开启swap

 sudo swapon -a

查看

swapon --show

输出信息

vagrant@ubuntu:~$ swapon --show
NAME       TYPE      SIZE USED PRIO
/dev/zram0 partition 982M   0B    5
/swap.img  file        2G   0B   -2

-2:表示这个交换空间被标记为不活跃的,也就是说,这个交换空间不会被默认使用

5:这是一个正整数优先级,具有默认的优先级。当系统需要进行交换时,会按照优先级的顺序逐个使用这些交换空间。

测压

安装stress工具

sudo apt install stress

测试

stress --vm 1 --vm-bytes 2G --timeout 60s

这将启动一个stress进程,它会尝试分配2GB的内存并保持该状态持续60秒

因为我的物理内存是2G,所以我使用2G测试,当zram耗尽时,就会启用swap

可以另外开一个窗口,使用top命令查看系统状态

top

ZRAM 分析

zramctl --output-all

这篇关于ubuntu开启zram彻底解决高I/O引起的卡顿,复制文件无比流畅的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/960518

相关文章

Conda虚拟环境的复制和迁移的四种方法实现

《Conda虚拟环境的复制和迁移的四种方法实现》本文主要介绍了Conda虚拟环境的复制和迁移的四种方法实现,包括requirements.txt,environment.yml,conda-pack,... 目录在本机复制Conda虚拟环境相同操作系统之间复制环境方法一:requirements.txt方法

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

一文详解PostgreSQL复制参数

《一文详解PostgreSQL复制参数》PostgreSQL作为一款功能强大的开源关系型数据库,其复制功能对于构建高可用性系统至关重要,本文给大家详细介绍了PostgreSQL的复制参数,需要的朋友可... 目录一、复制参数基础概念二、核心复制参数深度解析1. max_wal_seChina编程nders:WAL

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

ubuntu系统使用官方操作命令升级Dify指南

《ubuntu系统使用官方操作命令升级Dify指南》Dify支持自动化执行、日志记录和结果管理,适用于数据处理、模型训练和部署等场景,今天我们就来看看ubuntu系统中使用官方操作命令升级Dify的方... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。