引子
最近服务器内存老是爆掉,64G的内存对于四五个人同时使用还是有点勉强,上网查询了一下虚拟内存的教程,本博客记录一下方法。
swap内存设置
假设你想将swap文件放在/mnt/data/mem
目录下,以下是详细的步骤:
创建并启用Swap文件
-
创建目录(如果目录不存在):
sudo mkdir -p /mnt/data/mem
-
创建一个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
-
设置正确的权限:
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
-
将文件格式化为swap空间:
sudo mkswap /mnt/data/mem/swapfile
-
启用swap文件:
sudo swapon /mnt/data/mem/swapfile
-
验证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
文件中:
-
备份
/etc/fstab
文件:sudo cp /etc/fstab /etc/fstab.bak
-
编辑
/etc/fstab
文件:sudo nano /etc/fstab
-
在文件末尾添加以下内容:
/mnt/data/mem/swapfile none swap sw 0 0
-
保存并退出编辑器。
调整Swappiness值(可选)
Swappiness
参数控制系统交换的频率,范围是0到100。值越高,系统越频繁地使用swap。默认值通常是60,可以根据需求调整:
-
检查当前swappiness值:
cat /proc/sys/vm/swappiness
-
设置新的swappiness值(例如,设置为10):
sudo sysctl vm.swappiness=10
-
使该设置在重启后仍然有效:
sudo nano /etc/sysctl.conf
在文件末尾添加:
vm.swappiness=10
-
保存并退出编辑器。
完成以上步骤后,你的Ubuntu系统应该已经成功配置了位于/mnt/data/mem
目录下的64GB的虚拟内存。
swappiness推荐
在配置系统的swappiness
参数时,主要取决于你对系统性能的需求以及具体的使用场景。Swappiness
参数控制了Linux内核如何使用交换空间(swap)的频率。它的值范围是从0到100:
- 值为0时,内核将尽量避免使用交换空间。
- 值为100时,内核将非常频繁地使用交换空间。
推荐的Swappiness
设置
对于你的系统配置(64GB物理内存和64GB交换空间),以下是一些推荐:
-
桌面系统或开发环境:
如果你主要用于桌面应用或开发环境,通常希望尽量减少交换空间的使用以保持系统响应速度。推荐将swappiness
设置为较低的值,例如:sudo sysctl vm.swappiness=10
-
服务器或内存紧张的环境:
如果你的系统运行在服务器环境中,或者经常需要处理大量数据并且内存使用接近最大值,适当增加swappiness
值可以帮助系统更好地管理内存。推荐值可以设置在30到60之间:sudo sysctl vm.swappiness=30
-
混合用途:
如果你的系统有多种用途(如同时运行桌面应用和服务器任务),可以选择一个中间值,例如:sudo sysctl vm.swappiness=20
调整和持久化Swappiness
值
-
临时调整
swappiness
值:sudo sysctl vm.swappiness=20
-
使
swappiness
值在重启后仍然有效:
编辑/etc/sysctl.conf
文件:sudo nano /etc/sysctl.conf
在文件末尾添加:
vm.swappiness=20
-
保存并退出编辑器。
验证Swappiness
值
你可以通过以下命令验证当前的swappiness
值:
cat /proc/sys/vm/swappiness
监控和调整
请注意,最佳的swappiness
设置可能需要一些实验和监控。你可以在实际使用中观察系统的性能和内存使用情况,并根据需要进行调整。
总结:
- 桌面系统或开发环境:推荐
swappiness=10
- 服务器或内存紧张的环境:推荐
swappiness=30
到60
- 混合用途:推荐
swappiness=20
通过以上方法,你可以找到一个平衡点,使你的系统在性能和内存管理之间达到最佳状态。
标签:swappiness,mem,sudo,mnt,swap,Ubuntu,服务器,data,虚拟内存 From: https://www.cnblogs.com/starlitnightly/p/18263897