平常使用的这台笔记本是16核的,屏幕是oled,我装了最新的ubuntu系统,感觉用的挺顺手,唯一的问题是这个笔记本的内存是焊在主板上的,而且只有16g,没法扩展,开两个vscode,过一会就会死机。
今天突然想到,系统有个交换空间,使用硬盘扩展内存用的,要是扩大这个交换空间,是不是就能暂时解决问题呢。使用free -h 看了下,目前的交换空间是4g,确实有点小了。
问了下ai,说完全可以,并且给出了修改步骤,有十几步,繁琐,问有工具能直接修改吗,ai给我直接生成一个修改脚本。试了下,将交换空间修改到24g,真的成功了,现在开了3个vscode,再开了十几个网页,虽然cpu狂飙,但至少不会死机了。
ai果然是生产力工具,这要是自己折腾,估计得找好久资料。没个半天都搞不定。他却不到一秒就完成了。可以预见,ai对生产力的帮助将是成千上万倍的提升。人类知识的进化果然是指数级别的。
将以下脚本拷贝到 resize_swap.sh文件中,chmod +x resize_swap.sh 修改为可执行文件,使用 ./resize_swap.sh 24G 就能将交换空间修改为24g。
#!/bin/bash # A simple script to resize the swapfile on Ubuntu. # Usage: sudo ./resize_swap.sh 16G
# --- Configuration --- SWAP_FILE_PATH="/swap.img" # --- End Configuration ---
# Ensure the script is run as root if [ "$(id -u)" -ne 0 ]; then echo "这个脚本必须以 root 权限运行 (sudo)!" exit 1 fi
# Check if a size argument is provided if [ -z "$1" ]; then echo "用法: sudo $0 <新大小>" echo "例如: sudo $0 16G" exit 1 fi
NEW_SWAP_SIZE=$1
echo "--- 准备将交换空间大小调整为 $NEW_SWAP_SIZE ---"
# 1. 检查并关闭现有的交换文件 if swapon --show | grep -q "$SWAP_FILE_PATH"; then echo "1. 正在关闭现有的交换文件: $SWAP_FILE_PATH ..." swapoff "$SWAP_FILE_PATH" else echo "1. 未发现活动的交换文件 $SWAP_FILE_PATH,跳过关闭步骤。" fi
# 2. 删除旧的交换文件 if [ -f "$SWAP_FILE_PATH" ]; then echo "2. 正在删除旧的交换文件..." rm "$SWAP_FILE_PATH" fi
# 3. 创建新的交换文件 echo "3. 正在创建大小为 $NEW_SWAP_SIZE 的新交换文件..." fallocate -l "$NEW_SWAP_SIZE" "$SWAP_FILE_PATH" if [ $? -ne 0 ]; then echo "创建文件失败!请检查磁盘空间是否足够。" exit 1 fi
# 4. 设置正确的权限 echo "4. 正在设置文件权限 (600)..." chmod 600 "$SWAP_FILE_PATH"
# 5. 格式化为 swap echo "5. 正在将文件格式化为 swap..." mkswap "$SWAP_FILE_PATH"
# 6. 启用新的交换文件 echo "6. 正在启用新的交换文件..." swapon "$SWAP_FILE_PATH"
# 7. 更新 /etc/fstab 文件以实现永久生效 FSTAB_ENTRY="$SWAP_FILE_PATH none swap sw 0 0" if grep -q "swapfile" /etc/fstab; then echo "7. 正在更新 /etc/fstab 中的现有条目..." # 使用 sed 命令替换所有包含 "swapfile" 的 swap 行 sed -i '/swapfile/d' /etc/fstab fi echo "8. 正在向 /etc/fstab 添加新条目..." echo "$FSTAB_ENTRY" >> /etc/fstab
echo "--- 操作完成!---" echo "新的交换空间信息:" swapon --show echo "内存信息:" free -h
|