Ubuntu设置Swap分区

 我来答
华源网络
2022-07-10 · TA获得超过5578个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:144万
展开全部

前几天尝试用一台新的服务器进行开发,运行两个Node进程后CPU占用率直接上升到100%,开始以为是Node版本问题,切换版本后仍存在这个问题,使用 top 命令查看运行中进程,发现一个名为 kswapd0 的进程占用极高的CPU,这个进程的作用其实是在内存不足时将暂时用不到的数据转存到虚拟内存(Swap分区),而刚好我的服务器没有设置Swap分区,才导致CPU占用率过高,看来问题的原因找到了,接下来只需要设置Swap分区即可。

如果没有任何输出,表明系统没有配置swap

确保有足够的空间创建Swap分区

以上命令会在根目录创建大小为1G的文件,大小可根据需要进行调整,一般取和内存一般大小

验证是否创建成功

修改分区文件的权限,只允许 root 用户进行读取

将其标记为swap分区

启用分区,允许系统开始使用

再次检查系统分区

如果输出类似

表示分区已经创建成功

目前已经在当前会话的启用的swap分区,但是如果系统重新启动,分区就会消失,我们可以通过修改 /etc/fstab 的配置来使分区持久化

swappiness 参数配置系统使用swap分区的频率,数字越小,系统对swap的依赖越小,如果设置为接近0的数字,那么内核只有在绝对必要情况下才会将数据交换到磁盘。应为和硬盘交换数据比RAM慢的多,所以这个数字越小,通常会让系统加快

查看当前swappiness

临时修改swappiness

永久修改(推荐)

/etc/sysctl.conf

增大 vfs_cache_pressure 的值会让系统倾向于删除缓存中inode和dentry信息,进而导致系统频繁访问文件系统,我们可以通过输入以下内容将其设置为更保守的设置,例如50:

只在当前会话生效

永久修改(推荐)

/etc/sysctl.conf

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
名片
2024-10-28 广告
Altair HyperWorks是一套功能强大的集成化CAE(计算机辅助工程)软件平台,由Altair公司开发。它涵盖了结构分析、流体动力学、优化、多体动力学、电磁场仿真等多个领域,提供了丰富的仿真工具和优化算法。HyperWorks以其... 点击进入详情页
本回答由名片提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式