首页 > 系统相关 >【服务器】Ubuntu虚拟内存设置

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

时间:2024-06-23 20:58:25浏览次数:24  
标签:swappiness mem sudo mnt swap Ubuntu 服务器 data 虚拟内存

引子
最近服务器内存老是爆掉,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

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

标签:swappiness,mem,sudo,mnt,swap,Ubuntu,服务器,data,虚拟内存
From: https://www.cnblogs.com/starlitnightly/p/18263897

相关文章

  • Ubuntu下统计项目的代码行数-cloc工具
    先安装cloc工具:sudoaptinstallcloc然后在项目的根目录下执行:cloc.得到如下内容:-------------------------------------------------------------------------------Languagefilesblankcommentcode---------------......
  • windows服务器上用nginx转发到iis中的网站
    windows服务器上用nginx转发到iis中的网站2024年6月23日测试通过前提:华为云1核心2G内存1M带宽服务器¥40/年,还没有备案,80端口用不了,在安全组里把81端口打开了,同时记得登录云服务器里把WINDOWS的防火墙关闭或者放行81端口想法:windows服务器里下载nginxwindows版本,然后所有请求......
  • OpenWrt 无法通过 ssh 免密码方式访问 git 服务器的原因及解决方案
    问题原因openssh-keygen和openssh-client非OpenWrt默认安装的包ssh-keygen生成的私钥PRIVATEKEY不是600权限,而是644权限,权限太开放会导致SSH拒绝使用它解决方案安装相关包opkgupdateopkginstallopenssh-client openssh-keygen生成密钥对ssh-keygen......
  • 服务器阵列数据库修复
    故障描述HP存储,存储空间由8块450GBSAS的硬盘组成,其中7块硬盘组成一个RAID5的阵列,剩余1块做成热备盘使用。RAID5阵列中出现2块硬盘损坏,而此时只有一块热备盘成功激活,因此导致RAID5阵列瘫痪,上层LUN无法正常使用。raid数据恢复故障分析没有检测到磁盘有物理故障与坏道,可能由于......
  • 惠普塔式服务器数据恢复
    惠普塔式服务器,5块1000GB的SAS硬盘组成raid5磁盘阵列服务器检测:硬盘掉线服务器崩溃,其中一块硬盘掉线很久,现又有一块硬盘掉线。故障分析:服务器底层数据检测发现数据并没有明显的同步痕迹。将服务器内的硬盘按照顺序编号并贴好标签后取出服务器盘位,对物理硬盘进行故障检测和数......
  • 服务器进水多块硬盘同时掉线
    服务器数据恢复环境:服务器存储+多台存储阵列柜;硬盘;服务器故障情况:机房漏水导致服务器中的8块硬盘同时掉线,服务器崩溃。服务器故障检测:机房内一组存储机柜未开机,得知:由于机房天花板渗水导致这台机柜上层的两台服务器出现故障,其中一台经过检修后正常工作,但另外一台服务器则完......
  • IBM服务器数据恢复
    服务器数据恢复背景:一台X3850服务器,这台服务器在运行过程中突然崩溃,服务器崩溃前从未进行过维护,不清楚硬件状况,服务器操作系统为linux,运行oracle数据库。经检测,初步判定该服务器上共有5块硬盘,其中4块硬盘组成riad5磁盘阵列,1块硬盘位热备盘,其中raid5磁盘阵列中有2块硬盘先后离线,......
  • 服务器硬盘磁头损坏,盘片划伤数据恢复
    服务器硬盘故障:Dell服务器,raid阵列上有一块硬盘出现故障,经过检测发现硬盘问题,后续在无尘台开盘处理,发现盘片损伤严重;初步判断也存在硬件故障。服务器硬盘数据恢复过程:1、发现开盘的盘面有规则的同心圆状划痕,这是典型的磁头出现故障而划伤盘面的情况,这种情况后期会很难完成数据......
  • 服务器sql server 数据恢复
    linux服务器故障,连接了一台存储,文件系统为xfs文件系统。使用xfs_repair试图对文件系统进行修复但修复失败,linux服务器中所有数据因此丢失。服务器数据恢复解决方案:为了不损毁丢失数据盘里的数据,数据恢复的第一步必须对原始存储空间开进行镜像备份工作,数据备份完成后开始逐步确......
  • 服务器raid5数据恢
    一台使用NTFS文件系统的服务器;7块硬盘组成了一组raid5磁盘阵列。 服务器故障检测:raid5磁盘阵列磁盘故障离线导致服务器瘫痪。掉线磁盘只添加新的硬盘,并没有将掉线的3块磁盘从阵列中拔掉。服务器数据恢复过程:1、对所有硬盘镜像备份后,分析服务器raid结构。故障服务器中的硬盘......