【深度学习】Ubuntu增加Swap交换空间大小

本文详细介绍了如何在Ubuntu系统中扩大Swap交换空间的方法。通过创建一个32GB的Swap文件,并将其激活,最终Swap空间从原来的2GB增加到34GB。此外,还介绍了如何使Swap设置永久生效。
部署运行你感兴趣的模型镜像

前言:

        做Ubuntu系统时,选择了默认空间分配方案,Swap空间仅2G,而你的内存有16G,分给Swap空间至少为内存的1倍,最好是内存值的2倍,系统相当卡顿,重做系统后,费力部署的环境怎么又需要重新部署,头痛!

        不要重做系统,来来来,Follow Me!

一、查看本机Swap交换空间的内存大小

命令如下

$ free -m

可以看到本机的Swap空间为2047M左右,即2G空间。

下面我们将其扩大32G

二、创建Swap文件

$ sudo -i

输入密码后,切换root。

$ mkdir /swap

建立swap文件夹

$ cd /swap/

进入到swap文件夹

$ sudo dd if=/dev/zero of=swapfile bs=32M count=1k

建立swapfile,大小为bs*count = 32M * 1k = 32G

$ sudo mkswap -f swapfile

将生成的文件转换为Swap文件

三、激活Swap文件

$ sudo swapon swapfile

$ free -m

激活Swap文件,并重新查看Swap空间 内存

可以看到Swap空间内存从2G变为34G = 我们扩大的32G+原始的2G。

添加成功!

四、设置为永久Swap

未做此步骤,重启之前的设置都失效!!!!

sudo gedit /etc/fstab

更改swap路径。

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during installation
UUID=b726da21-83a0-497b-b3eb-a09f16403d60 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=C0BE-3630  /boot/efi       vfat    umask=0077      0       1
/swap/swapfile                                 swap            swap    sw              0       0

五、扩展

如果需要卸载这个 swap 文件,可以进入建立的 swap 文件目录。执行下列命令。
$ sudo swapoff swapfile
如果需要一直保持这个 swap ,可以把它写入 /etc/fstab 文件。
$ /swap/swapfile /swap swap defaults 0 0

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

<think>好的,用户想了解在Ubuntu系统中如何配置和优化内存以进行深度学习任务。我需要结合提供的引用内容,给出具体的建议。首先,引用[1]提到安装Ubuntu时要分配足够的内存,尤其是搭配固态硬盘更好。这说明存储空间的分配和硬件选择对性能有影响。 接下来,引用[2]和[3]涉及Anaconda环境和深度学习框架的配置。内存优化可能包括环境管理,比如使用虚拟环境避免资源浪费。此外,在训练模型时,调整数据加载方式和批处理大小也能减少内存占用。 用户可能需要知道如何监控内存使用情况,比如使用htop或nvidia-smi工具。此外,调整交换空间swap)也是一种优化方法,尤其是在物理内存不足时。 还要考虑CUDA和cuDNN的配置是否合理,正确配置GPU驱动可以提升内存利用率。另外,使用内存友好的库如PyTorch的DataLoader或者启用混合精度训练可能有效。 需要提醒用户注意系统本身的内存管理设置,比如透明大页(THP)和swappiness参数的调整。最后,确保引用的内容被正确标注,比如引用[1]关于分配内存的建议,引用[3]关于测试环境的步骤。</think>### Ubuntu系统深度学习内存配置与优化方法 #### 一、硬件层配置 1. **内存分配建议** 在安装Ubuntu时需预留充足物理内存,建议为系统分配至少16GB内存(显存建议8GB以上)。双系统用户需在磁盘分区阶段为`/swap`交换分区分配物理内存的1.5-2倍空间[^1],例如: ```bash # 查看当前swap信息 sudo swapon --show ``` 2. **存储优化** 将数据集存储在NVMe固态硬盘中,通过`/etc/fstab`挂载时添加`noatime`参数减少元数据写入: ```bash UUID=xxxx-xxxx /data ext4 defaults,noatime 0 0 ``` #### 二、系统层优化 1. **内存管理工具** 使用`htop`或`vmstat`监控内存使用: ```bash sudo apt install htop htop ``` 2. **GPU显存优化** 安装NVIDIA驱动时启用`performance`模式: ```bash sudo nvidia-smi --persistence-mode=1 sudo nvidia-smi -pm 1 ``` 3. **交换空间增强** 创建ZRAM压缩交换设备(适用于内存<32GB的设备): ```bash sudo apt install zram-config systemctl restart zram-config ``` #### 三、框架层优化 1. **TensorFlow/PyTorch配置** 在代码中显式设置内存增长策略: ```python # TensorFlow示例 import tensorflow as tf gpus = tf.config.experimental.list_physical_devices('GPU') if gpus: try: for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True) except RuntimeError as e: print(e) ``` 2. **数据加载优化** 使用`DALI`或`TensorFlow Dataset API`的并行加载: ```python # PyTorch示例 dataset = torch.utils.data.DataLoader(..., num_workers=4, pin_memory=True) ``` 3. **混合精度训练** 启用AMP自动混合精度: ```python # PyTorch示例 scaler = torch.cuda.amp.GradScaler() with torch.cuda.amp.autocast(): outputs = model(inputs) loss = criterion(outputs, labels) scaler.scale(loss).backward() scaler.step(optimizer) scaler.update() ``` #### 四、环境配置验证 通过引用[3]的测试方法验证配置: ```bash conda activate deeplearning python ~/pytorch_test.py # 检查显存分配情况 nvidia-smi --query-gpu=memory.used --format=csv # 实时监控 ```
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值