【服务器】Ubuntu虚拟内存设置

news/2024/9/22 18:24:53

引子
最近服务器内存老是爆掉,64G的内存对于四五个人同时使用还是有点勉强,上网查询了一下虚拟内存的教程,本博客记录一下方法。

swap内存设置

假设你想将swap文件放在/mnt/data/mem目录下,以下是详细的步骤:

创建并启用Swap文件

  1. 创建目录(如果目录不存在)

    sudo mkdir -p /mnt/data/mem
    
  2. 创建一个64GB的swap文件

    sudo fallocate -l 64G /mnt/data/mem/swapfile
    
    t=64
    64+0 records in
    64+0 records out
    68719476736 bytes (69 GB, 64 GiB) copied, 262.527 s, 262 MB/s
    

    如果fallocate命令不可用,可以使用dd命令:

    sudo dd if=/dev/zero of=/mnt/data/mem/swapfile bs=1G count=64
    
  3. 设置正确的权限

    sudo chmod 600 /mnt/data/mem/swapfile
    
    Setting up swapspace version 1, size = 64 GiB (68719472640 bytes)
    no label, UUID=c3dec71e-d8ef-4aa7-9501-7694112fc4c4
    
  4. 将文件格式化为swap空间

    sudo mkswap /mnt/data/mem/swapfile
    
  5. 启用swap文件

    sudo swapon /mnt/data/mem/swapfile
    
  6. 验证swap是否启用

    sudo swapon --show
    
    NAME                   TYPE SIZE USED PRIO
    /swapfile              file   2G   2G   -2
    /mnt/data/mem/swapfile file  64G   0B   -3
    

    或者:

    free -h
    

持久化Swap文件

为了在系统重启后仍然保留这个swap文件,需要将其添加到/etc/fstab文件中:

  1. 备份/etc/fstab文件

    sudo cp /etc/fstab /etc/fstab.bak
    
  2. 编辑/etc/fstab文件

    sudo nano /etc/fstab
    
  3. 在文件末尾添加以下内容

    /mnt/data/mem/swapfile none swap sw 0 0
    
  4. 保存并退出编辑器

调整Swappiness值(可选)

Swappiness参数控制系统交换的频率,范围是0到100。值越高,系统越频繁地使用swap。默认值通常是60,可以根据需求调整:

  1. 检查当前swappiness值

    cat /proc/sys/vm/swappiness
    
  2. 设置新的swappiness值(例如,设置为10)

    sudo sysctl vm.swappiness=10
    
  3. 使该设置在重启后仍然有效

    sudo nano /etc/sysctl.conf
    

    在文件末尾添加:

    vm.swappiness=10
    
  4. 保存并退出编辑器

完成以上步骤后,你的Ubuntu系统应该已经成功配置了位于/mnt/data/mem目录下的64GB的虚拟内存。

swappiness推荐

在配置系统的swappiness参数时,主要取决于你对系统性能的需求以及具体的使用场景。Swappiness参数控制了Linux内核如何使用交换空间(swap)的频率。它的值范围是从0到100:

  • 值为0时,内核将尽量避免使用交换空间。
  • 值为100时,内核将非常频繁地使用交换空间。

推荐的Swappiness设置

对于你的系统配置(64GB物理内存和64GB交换空间),以下是一些推荐:

  1. 桌面系统或开发环境
    如果你主要用于桌面应用或开发环境,通常希望尽量减少交换空间的使用以保持系统响应速度。推荐将swappiness设置为较低的值,例如:

    sudo sysctl vm.swappiness=10
    
  2. 服务器或内存紧张的环境
    如果你的系统运行在服务器环境中,或者经常需要处理大量数据并且内存使用接近最大值,适当增加swappiness值可以帮助系统更好地管理内存。推荐值可以设置在30到60之间:

    sudo sysctl vm.swappiness=30
    
  3. 混合用途
    如果你的系统有多种用途(如同时运行桌面应用和服务器任务),可以选择一个中间值,例如:

    sudo sysctl vm.swappiness=20
    

调整和持久化Swappiness

  1. 临时调整swappiness

    sudo sysctl vm.swappiness=20
    
  2. 使swappiness值在重启后仍然有效
    编辑/etc/sysctl.conf文件:

    sudo nano /etc/sysctl.conf
    

    在文件末尾添加:

    vm.swappiness=20
    
  3. 保存并退出编辑器

验证Swappiness

你可以通过以下命令验证当前的swappiness值:

cat /proc/sys/vm/swappiness

监控和调整

请注意,最佳的swappiness设置可能需要一些实验和监控。你可以在实际使用中观察系统的性能和内存使用情况,并根据需要进行调整。

总结:

  • 桌面系统或开发环境:推荐swappiness=10
  • 服务器或内存紧张的环境:推荐swappiness=3060
  • 混合用途:推荐swappiness=20

通过以上方法,你可以找到一个平衡点,使你的系统在性能和内存管理之间达到最佳状态。

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

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

相关文章

作业7

task1. 点击查看代码 // 将图书信息写入文本文件data1.txt // 再从文件中读取图书信息,打印输出到屏幕上,并显示行号#include <stdio.h>#define N 80 #define M 100typedef struct {char name[N]; // 书名 char author[N]; // 作者 } Book;// 函数声明 void func1()…

使用cloudflare-works搭建自己docker加速源

在网上看到了许多教程,基本上部署都是手动的,docker镜像都要手动输入选择重新部署。要么都是些基本镜像仓库。 视频地址:【CloudFlare搭建doker加速源。都这么长时间了,你的docker还是跑不通吗?】 https://www.bilibili.com/video/BV1F533eHEsB/?share_source=copy_web&a…

AI 大模型企业应用实战(06)-初识LangChain

LLM大模型与AI应用的粘合剂。 1 langchain是什么以及发展过程 LangChain是一个开源框架,旨在简化使用大型语言模型构建端到端应用程序的过程,也是ReAct(reason+act)论文的落地实现。2022年10月25日开源 54K+ star 种子轮一周1000万美金,A轮2500万美金 11个月里累计发布200多…

创新实现(九)——博客处理

博客部分 当用户需要针对OJ上的比赛以及题目进行相关讨论的时候,OJ平台给大家一个博客平台供大家交流讨论。博客部分中利用blogs.php文件进行最近前10个博客的显示,用户可以利用右上角的按钮查看自己的博客情况以及自己写一个博客。 博客总览blogs.php文件用于生成一个博客总…

面向对象大作业总结(三)

一.前言:本次博客是对第七到八次大作业进行总结。我认为第七次大作业相比于同一道题来说,并没有进行太大的改变,因为它不需要考虑每个元件左右两端到底电位状态如何,也就是在前两次的基础上增加了一些并联电路,这个时候我们只要在MainLine类里新增并联以及串联电路的判断就…

java使用@Controller注解跳转到thmyleaf页面时候报错

报错如下###### 当我使用RestController时候接口可以得到返回的对象↓但是查看RestController和Controller的区别之后:也就是说@RestController返回的是一个对象,@Controller默认情况下,方法的返回值会被解析为一个视图名称,并寻找与该名称匹配的视图进行渲染。这意味着返回…

Centos下安装ffmpeg

源安装第一种方式:首先需要安装yum源: 这个源安装的ffmpeg版本是3.4yum install epel-release yum install -y https://mirrors.ustc.edu.cn/rpmfusion/free/el/rpmfusion-free-release-7.noarch.rpm然后可以安装ffmpegyum install -y ffmpeg ffmpeg-devel第二种方式: 换一个…

6.23

恼瑞平洛谷的题单系统( 我本来把不太懂的题都丢到首页的做题计划里了 但是嫌那玩意看着太烦 (因为不会) 就想放到个人题单里面结果这玩意 基本信息 和 题目编排 两栏的保存键是不互通的 我以为在 基本信息 里点保存能作用到 题目编排 里 然后我题就没了,这下不用担心不会做…