logo NodeSeekbeta

优化KVM小内存机——更换“cloud”内核

本人并不是十分精通linux,写下这篇文章原因属个人经验总结。可能会有些纰漏与问题,烦请各位大佬指出,本人会及时做出改正,谢谢!

前言:

Linux内核有很多种类,有for pc,也有for cloud 。其中Cloud内核相比于普通内核,去掉一些不必要的功能依赖与参数:如声卡打印机等功能,并专门为云计算进行优化,减少了内核的体积与占用。

一般来说,如AWS、Azure、Oracle cloud 等大厂 往往使用了为云优化的内核,而诸如cc,vir,vastnode等小厂 大概率使用了普通内核

经过我的测试,对手上的vir、cc、vastnode和crunchbits更换为cloud内核(都使用Debian系统)

其中:

  • cloudclone减少了3%的内存占用

  • virmach减少了5%的内存占用,

  • vastnode几乎没有变化,

  • crunchbits减少了50m的内存占用。

注意:

  • 更换内核可能会导致不开机等情况,请酌情考虑是否操作

  • 如果您使用的是诸如Oracle cloud、Azure、AWS等大型云服务器提供商,不需要更换内核,往往他们都提供的是使用cloud内核的镜像

  • 建议低配置KVM虚拟化小鸡,如1h 384m 10g 的,可以尝试更换”cloud“内核,大机就不需要折腾了

教程:(以amd64架构、debian系统的crunchbits为例)

  1. 更新package

    apt update && apt dist-upgrade

  2. 确认当前的内核

    dpkg -l|grep linux-image

    若显示“linux-image-******-amd64”则为普通内核

    若显示” linux-image-******-cloud-amd64”则为为云优化的内核,不需要执行下面步骤

    如图中所示,“linux-image-6.1.0-11-amd64”为最新内核,请记忆“6.1.0-11”用于替换后文的******

  3. 查找可用内核

    apt-cache search linux-image | grep cloud

  4. 安装Cloud内核

    apt install linux-image-*****-cloud-amd64

    apt install linux-image-cloud-amd64

  5. 更新grub

    update-grub

  6. 重启

    reboot

  7. 验证是否成功

    uname -r
    带有“cloud”字样,即成功

*8. 卸载旧内核以及配置文件
请注意,请在确定安装内核成功后执行
apt remove linux-image-******-amd64
sudo apt purge $(dpkg -l | awk '/^rc/ { print $2 }')
*此处选做,目的释放硬盘空间

本人测试机

  • AWS光帆 2h 512m 原生cloud内核
  • VIR 1h 384m 原生pc内核
  • clouclone 1h 512m 原生pc内核
  • vastnode 1h 1g 原生pc内核
12
  • 支持大佬,这就去试试 xhj006

  • 不过好像dd脚本默认也是装的pcs内核 xhj017

  • 好东西 去试试的

  • 马克。学习一下

  • 马克。学习一下

  • @lzy2005 #0
    楼主, 这个分享是更换OS内核, 操作上比较硬核了, 尤其针对低配置的小鸡! xhj003
    目前很多开LXC-NAT的小鸡大多在用Alpine,但过于小众且社区资源相对比较少, 很多小白用户玩不转!
    教程里更换cloud内核的内容, 如果能 xhj001

    • 如果能补充一下与DD脚本的搭配?
    • 如果更换cloud内核失败的补救措施?
    • 教程内容最后的"本人测试机"中, 【clouclone 1h 512m 原生pc内核】和 【vastnode 1h 1g 原生pc内核】好像忘记贴图了?
  • @Kdkdk #6 DD脚本直接用这个内核可能会因缺少某些必要驱动而失联,还是先用普通内核开机了再尝试更换比较好。
    更换失败了可以在Grub选单选择原来的普通内核开机,但前提是没有卸载原来的内核,否则只能用rescure mode重装回去。

  • @nus #7
    嗯嗯嗯, 关于DD的说明一语中的, 再结合提到的补救措施, 如果能有让小白用户可以轻松驾驭的方式/方法就会比较完美! xhj010
    考虑到非技术系的小白用户基数和群体比例还是很大的! xhj001
    尤其比如目前好多在甲骨文,Azure和AWS这些大厂的小鸡上, 乐此不疲 & 流连忘返(蹲守抢到的或者花银子购入)的小白用户,比较容易盲从网上大量的各类DD/一键脚本, 但也正式因为很多DD脚本/一键脚本的测试不完备, 考虑的应用场景不够全面, 导致很多小鸡在更换内核/DD/部署各种所需环境时被搞到"崩掉", 又不知道如何补救, 小鸡彻底失联 xhj010
    (尤其甲骨文, 除了官方审计封号以外, 因自己更换内核/OS之类的操作导致"丢失"小鸡也是占很大比例)

  • @nus #7
    谢谢老哥帮忙回复
    @Kdkdk #6
    为了防止boom,故把卸载旧内核这一步骤安排在最后,方便回滚,并设定为可选操作,我已经修改好教程注明这一地方,防止误删导致出事

    然后我会尝试的去添加grub选择内核救援这一教程

    另外缺的图补上了

    顺便一提 关于lxc-ovz这种机,个人认为重装到alpine3.14应该是为数不多的选择,开机占用3m,比3.18版本还要低。然后我曾经写过一键安装xu!的脚本放在论坛内板里,方便不熟悉alpine的朋友使用,但是因为论坛版规更新,已经变成只有我可见的了 yct002

    顺便问问能不能加点鸡腿 yct003

  • @Kdkdk #8
    然后就是大厂机器应该不需要这个步骤,这个我也会写上

12

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72267位seeker

🎉欢迎新用户🎉