麒麟系统需手动设置swap缓解内存不足:先用free -h确认状态,再mkdir -p /usr/swap创建官方推荐目录;可用dd(兼容性强)或fallocate(仅ext4/xfs)创建swap文件,严格chmod 0600、mkswap、swapon启用,并写入/etc/fstab实现开机自动挂载。

麒麟操作系统运行内存密集型程序时出现卡顿、响应迟缓或提示“内存不足”,说明物理内存已接近耗尽,必须手动设置虚拟内存(Swap)来扩展缓冲空间,否则系统可能触发OOM Killer强制终止进程,甚至持续抖动无法正常交互。
确认当前状态并创建专用目录
以root身份打开终端,执行free -h查看Swap行——若Total为0或明显小于物理内存(如物理内存32G而Swap仅2G),说明需扩容。立即执行mkdir -p /usr/swap创建目录——这一步不能跳过,【/usr/swap是Kylin V10官方推荐路径,其他路径可能导致fstab挂载失败】。
用dd命令创建Swap文件(兼容性最强)
该方法适用于所有Kylin V10版本(含SP1/SP2/V11),尤其适合虚拟机、老旧磁盘或不确定文件系统类型的环境。
第一步:生成16GB Swap文件:dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=16384。注意bs=1M比bs=4K更稳定,避免因块大小不匹配导致写入中断甚至文件损坏。
第二步:严格设置权限:chmod 0600 /usr/swap/swapfile。权限不对会导致mkswap报错“Permission denied”,且存在安全风险——普通用户读取该文件可能泄露内存残留数据。
第三步:格式化并启用:mkswap /usr/swap/swapfile && swapon /usr/swap/swapfile。
第四步:验证生效:swapon --show,确认输出中type列为file、size为16.0G、state为active。
用fallocate快速创建Swap文件(仅限ext4/xfs)
比dd快数倍,但要求目标分区支持fallocate操作,否则会报错“Operation not supported”。
本文档主要讲述的是Android 操作系统的介绍;Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
先检查文件系统类型:df -T /usr | tail -1 | awk '{print $2}',输出必须是ext4或xfs才能继续。
创建24GB Swap文件:fallocate -l 24G /usr/swap/swapfile2。
设置权限并启用:chmod 0600 /usr/swap/swapfile2 && mkswap /usr/swap/swapfile2 && swapon /usr/swap/swapfile2。
配置开机自动挂载(必须完成否则重启失效)
编辑fstab文件:vim /etc/fstab。
在文件末尾新增一行:/usr/swap/swapfile swap swap defaults 0 0。注意路径必须与你创建的文件完全一致,不能写成/swapfile或/usr/swap/swapfile2;空格不可替换为制表符,字段顺序不能错,第5、6位数字必须是0 0。
保存退出后,运行mount -a测试语法——无任何输出即表示成功;若有报错(如“wrong fs type”),说明路径写错或文件未mkswap。
重启系统,再次执行free -h,确认Swap行的total值与你设定的大小一致,且state为active。
动态扩容现有Swap文件
当业务增长导致原Swap不够用,可在线扩容,无需删除重建。
方法一:fallocate直接扩展(推荐)
① 停用当前Swap:swapoff /usr/swap/swapfile
② 扩展至32GB:fallocate -l 32G /usr/swap/swapfile
③ 重设权限:chmod 0600 /usr/swap/swapfile
④ 重新格式化并启用:mkswap /usr/swap/swapfile && swapon /usr/swap/swapfile
方法二:dd追加(兼容性更强)
先卸载:swapoff /usr/swap/swapfile
再追加8GB:dd if=/dev/zero of=/usr/swap/swapfile bs=1M seek=16384 count=8192 conv=notrunc
后续仍需执行chmod 0600→mkswap→swapon三步。










